CN110176058B - 一种基于草图和卷积曲面的沉浸式快速建模方法 - Google Patents

一种基于草图和卷积曲面的沉浸式快速建模方法 Download PDF

Info

Publication number
CN110176058B
CN110176058B CN201910340774.1A CN201910340774A CN110176058B CN 110176058 B CN110176058 B CN 110176058B CN 201910340774 A CN201910340774 A CN 201910340774A CN 110176058 B CN110176058 B CN 110176058B
Authority
CN
China
Prior art keywords
skeleton
density
vertex
user
rendering
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910340774.1A
Other languages
English (en)
Other versions
CN110176058A (zh
Inventor
朱雨真
唐祥峻
金小刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201910340774.1A priority Critical patent/CN110176058B/zh
Publication of CN110176058A publication Critical patent/CN110176058A/zh
Application granted granted Critical
Publication of CN110176058B publication Critical patent/CN110176058B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种基于草图和卷积曲面的沉浸式快速建模方法,包括:(1)在Unity3D环境下,用户佩戴沉浸式虚拟现实设备,选择要绘制的骨架的类型,确定要绘制的骨架的定位点,绘制出骨架形状;(2)使用卷积曲面解析解生成光滑卷积曲面模型,在GPU中完成势能值计算和有效骨架的裁剪,生成密度图;(3)步骤(2)生成的密度图传递给marching cube程序,获取三角面片的顶点及其属性,渲染完成建模;所述顶点及其属性包括顶点位置、拓扑关系和法向量。本发明使用户可以通过绘制出不同的骨架形状来创建出不同的卷积曲面造型,组合这些形状以创建出独一无二的三维模型。

Description

一种基于草图和卷积曲面的沉浸式快速建模方法
技术领域
本发明涉及计算机图形学及虚拟现实技术领域,具体涉及一种基于草图和卷积曲面的沉浸式快速建模方法。
背景技术
近年来,随着计算机技术的发展以及各类显示设备的普及,三维模型为人们跨越真实与虚拟、联结数字与实体、实现创想与创造提供了更多的可能,因而得到了越来越多的应用,如被用于产品设计、环境设计、文化娱乐、医疗健康等各种领域。
当下的市场对三维模型的需求量越来越大,然而,创建三维模型却并不容易。目前市场上的三维模型大致通过以下两种方式创建:使用商业化的三维建模软件来进行建模,或是使用仪器来直接扫描实体以得到三维模型。然而,这些方法大多要求用户具有一定的软件使用技术或是拥有一些专业的模型扫描设备。如何让缺乏相关知识的普通使用者也能够简单地创建出属于自己的独一无二的模型是一个值得探讨的问题。
考虑到虚拟现实技术在近年里的迅猛发展以及在不同领域尤其是艺术创作领域的良好发挥,虚拟现实技术可以被应用到三维建模的过程中来。然而考察市面上已有的与建模相关的虚拟现实软件,它们大多都存在一定的缺陷:例如Google的Tilt Brush,用户可以使用该软件绘制出丰富多彩的笔刷形状,最终得到一个像是三维模型的场景,然而实际上用户绘制出的只是一些不连续的面片,这些面片无法拼接成一个完整的模型;而使用专业的VR环境下的建模软件Gravity Sketch虽然能创建出符合用户的复杂模型,但该软件的操作面板与效果调节十分复杂和专业化,没有受过专门训练的用户很难轻易地上手该软件;至于仅在学术论文中被提及的Brush2Model,它更像是一个用于学术测试的程序,用户交互不是非常友好,因此不方便新手的学习和使用。
发明内容
针对本领域存在的不足之处,本发明提供了一种基于草图和卷积曲面的沉浸式快速建模方法,使用本方法,用户可以通过绘制出不同的骨架形状来创建出不同的卷积曲面造型,组合这些形状以创建出独一无二的三维模型。
一种基于草图和卷积曲面的沉浸式快速建模方法,包括:
(1)在Unity3D环境下,用户佩戴沉浸式虚拟现实设备,选择要绘制的骨架的类型,确定要绘制的骨架的定位点,绘制出骨架形状;
(2)使用卷积曲面解析解生成光滑卷积曲面模型,在GPU中完成势能值计算和有效骨架的裁剪,生成密度图;
(3)步骤(2)生成的密度图传递给marching cube程序,获取三角面片的顶点及其属性,渲染完成建模;所述顶点及其属性包括顶点位置、拓扑关系和法向量。
所述骨架的类型包括线骨架、面骨架和点骨架。
步骤(2)中,在GPU中完成势能值计算和有效骨架的裁剪的具体方法为:使用ComputeShader,根据不同的骨架类型调用对应的着色器核函数;ComputeShader中的id用于区分空间中的位置。
步骤(3)所述渲染的具体步骤为:使用Unity3D的Append类型的缓冲区存储三角面片,利用copycount函数获取写入所述缓冲区的次数,即为三角面片个数,三角面片个数乘以三为顶点数;通过Unity3D的DrawProceduralIndirect函数选择对应的着色器程序,并将顶点数发送给着色器程序,着色器程序根据顶点总数为每次渲染分配编号,根据编号从所述缓冲区中对应位置获取顶点及其属性,相邻三个编号的顶点自然构成一个三角面片,进行渲染,完成建模。
用户对线骨架和面骨架的位置和方向在确认前进行预览和修改时,生成的密度数据保存在临时纹理里,确认时,临时纹理里的密度数据经过矩阵变化后叠加到密度图上再进行步骤(3)。
线骨架和/或面骨架的撤销过程为在密度图上减去相应的线骨架和/面骨架生成的密度。
设置备用密度图,记录构建点骨架前的密度信息;撤销点骨架时,将所述备用密度图记录的密度信息作为撤销后的密度图的密度信息,用于渲染。
用户保存时,从Append类型的缓冲区中将三角形顶点及其属性读取回内存,处理得到顶点数组及其对应的索引数组,得到网格数据,完成模型保存。
所述网格数据就是模型数据,主要的属性内容包括顶点坐标,法线,纹理坐标,三角形绘制序列等。
用户保存时,所述密度图读取回内存,存储在数组中,再通过json文件形式保存。
本发明与现有技术相比,主要优点包括:
(1)采用GPU并行计算来加速空间势能的计算,使得等值面的提取,卷积曲面的生成速度变快。
(2)通过佩戴头戴式设备,用户可以在虚拟现实环境中直接操纵手中的控制器绘制出自己想要的三维模型的骨架,完成沉浸式的建模。
(3)设计了用户友好型UI面板,用户可以实现多种与建模过程相关的操作,创建出更加复杂的模型。
附图说明
图1为用户使用本发明时的流程示意图。
具体实施方式
下面结合附图及具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。下列实施例中未注明具体条件的实验方法,通常按照常规条件,或按照制造厂商所建议的条件。
用户使用本发明的基于草图和卷积曲面的沉浸式快速建模方法的流程如图1所示,包括以下步骤:
(1)在Unity3D环境下,用户佩戴沉浸式虚拟现实设备,首先在程序的启动页面使用手柄选择新建画布,然后选择要绘制的骨架的类型,确定要绘制的骨架的定位点,绘制出骨架形状。
骨架的类型包括线骨架、面骨架和点骨架。
(2)使用卷积曲面解析解生成光滑卷积曲面模型,在GPU中完成势能值计算和有效骨架的裁剪,生成密度图。
在GPU中完成势能值计算和有效骨架的裁剪的具体方法为:使用ComputeShader,根据用户输入的不同,进行点骨架、线骨架、面骨架的区分,分别调用不同的着色器核函数;对于空间中的每个位置,用ComputeShader中的id进行区分,所有操作并行计算,并将结果存放在一张密度图中。
(3)步骤(2)生成的密度图传递给marching cube程序,获取三角面片的顶点及其属性,渲染完成建模;所述顶点及其属性包括顶点位置、拓扑关系和法向量。
步骤(3)渲染的具体步骤为:使用Unity3D的Append类型的缓冲区存储三角面片,利用copycount函数获取写入所述缓冲区的次数,即为三角面片个数,三角面片个数乘以三为顶点数;通过Unity3D的DrawProceduralIndirect函数选择对应的着色器程序,并将顶点数发送给着色器程序,着色器程序根据顶点总数为每次渲染分配编号,根据编号从所述缓冲区中对应位置获取顶点及其属性,相邻三个编号的顶点自然构成一个三角面片,进行渲染,完成建模。
用户可以对输入的骨架进行进一步的调整,如:改变骨架的位置,旋转骨架的方向。
在卷积曲面生成之后,用户对线骨架和面骨架的位置和方向在确认前进行预览和修改时,生成的密度数据保存在临时纹理里,临时纹理会执行步骤(3)的过程,使用户能够看到渲染结果。
用户确认时,临时纹理里的密度数据经过矩阵变化后叠加到密度图上再进行步骤(3)。
为了能够设计更为复杂的形状,用户可以通过旋转模型来得到新的观察和绘制角度,也可以撤销绘制步骤进行新的绘制。重复步骤(1)~(3),配合对骨架的位置和方向的调整,可以绘制更多的组件部分,新的组件会与原模型自然地融合为一个整体。
同时,绘制骨架的笔刷除了基本的绘制模式外,还有擦除模式:与绘制模式类似,在使用擦除模式时用户也需要选择绘制的骨架类型,也需要确定相应的骨架定位点,不同的是,擦除模式下的骨架绘制对密度图造成的影响与绘制模式下对密度图造成的影响是刚好相反的,这样就可以抵消绘制时的操作了,类似于铅笔书写与橡皮擦擦除的关系。
为了平衡用户需求和程序占用内存情况,撤销分成两种情况。
对于线骨架和面骨架,只记录用户的操作,在撤销过程中,根据用户操作重新演算得到该操作造成的新的密度,让原先叠加在密度图上的密度减去这个新的密度,使结果恢复成上一步。即,线骨架和/或面骨架的撤销过程为在密度图上减去相应的线骨架和/面骨架生成的密度。
对于点骨架,由于用户可以进行连续操作,通过不停释放点来构成一条平滑曲线,这里的撤销应该撤销用户该笔画的所有点,因此使用一张备用密度图,用户在构建点骨架之前,我们记录当前密度信息,在用户绘制完曲线释放点骨架后,进行撤销,记录的密度信息就会代替当前密度信息,程序最终渲染出用户绘制点骨架之前的结果。即,设置备用密度图,记录构建点骨架前的密度信息;撤销点骨架时,将所述备用密度图记录的密度信息作为撤销后的密度图的密度信息,用于渲染。
用户完成设计后,可以选择保存模型;保存好的模型可以被读取出来继续绘制。
用户保存时,从Append类型的缓冲区中将三角形顶点及其属性读取回内存,处理得到顶点数组及其对应的索引数组,得到网格数据,完成模型保存。
用户保存时,所述密度图读取回内存,存储在数组中,再通过json文件形式保存。
用户保存的模型会根据保存的时间被自动命名,并存储在程序附带的确定路径的文件夹中。当用户选择加载已经绘制好的模型时,程序会自动从保存模型的文件夹中读取所有的模型名字,并按照时间顺序排列。用户用右手手柄发出的射线选中要加载的模型的名字,程序窗口中会出现该模型的预览。用户再用射线选中模型预览的窗口,即可进入该模型的编辑场景。
此外应理解,在阅读了本发明的上述描述内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

Claims (1)

1.一种基于草图和卷积曲面的沉浸式快速建模方法,包括:
(1)在Unity3D环境下,用户佩戴沉浸式虚拟现实设备,选择要绘制的骨架的类型,确定要绘制的骨架的定位点,绘制出骨架形状;所述骨架的类型包括线骨架、面骨架和点骨架;
(2)使用卷积曲面解析解生成光滑卷积曲面模型,在GPU中完成势能值计算和有效骨架的裁剪,生成密度图;
在GPU中完成势能值计算和有效骨架的裁剪的具体方法为:使用ComputeShader,根据不同的骨架类型调用对应的着色器核函数;ComputeShader中的id用于区分空间中的位置;
(3)步骤(2)生成的密度图传递给marching cube程序,获取三角面片的顶点及其属性,渲染完成建模;所述顶点及其属性包括顶点位置、拓扑关系和法向量;
步骤(3)所述渲染的具体步骤为:使用Unity3D的Append类型的缓冲区存储三角面片,利用copycount函数获取写入所述缓冲区的次数,即为三角面片个数,三角面片个数乘以三为顶点数;通过Unity3D的DrawProceduralIndirect函数选择对应的着色器程序,并将顶点数发送给着色器程序,着色器程序根据顶点总数为每次渲染分配编号,根据编号从所述缓冲区中对应位置获取顶点及其属性,相邻三个编号的顶点自然构成一个三角面片,进行渲染,完成建模;
用户对线骨架和面骨架的位置和方向在确认前进行预览和修改时,生成的密度数据保存在临时纹理里,确认时,临时纹理里的密度数据经过矩阵变化后叠加到密度图上再进行步骤(3);
线骨架和/或面骨架的撤销过程为在密度图上减去相应的线骨架和/面骨架生成的密度;
设置备用密度图,记录构建点骨架前的密度信息;撤销点骨架时,将所述备用密度图记录的密度信息作为撤销后的密度图的密度信息,用于渲染;
用户保存时,从Append类型的缓冲区中将三角形顶点及其属性读取回内存,处理得到顶点数组及其对应的索引数组,得到网格数据,完成模型保存;
用户保存时,所述密度图读取回内存,存储在数组中,再通过json文件形式保存。
CN201910340774.1A 2019-04-25 2019-04-25 一种基于草图和卷积曲面的沉浸式快速建模方法 Active CN110176058B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910340774.1A CN110176058B (zh) 2019-04-25 2019-04-25 一种基于草图和卷积曲面的沉浸式快速建模方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910340774.1A CN110176058B (zh) 2019-04-25 2019-04-25 一种基于草图和卷积曲面的沉浸式快速建模方法

Publications (2)

Publication Number Publication Date
CN110176058A CN110176058A (zh) 2019-08-27
CN110176058B true CN110176058B (zh) 2020-12-11

Family

ID=67690082

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910340774.1A Active CN110176058B (zh) 2019-04-25 2019-04-25 一种基于草图和卷积曲面的沉浸式快速建模方法

Country Status (1)

Country Link
CN (1) CN110176058B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112764538A (zh) * 2021-01-13 2021-05-07 杭州师范大学 一种vr环境下基于手势交互的空间能力提升方法
CN113902871A (zh) * 2021-09-29 2022-01-07 浙江大学 一种基于体骨架卷积曲面的沉浸式快速建模方法
CN115330938B (zh) * 2022-08-05 2023-06-20 北京航空航天大学 一种基于投影密度图采样的草图生成三维点云的方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101577008A (zh) * 2009-05-21 2009-11-11 浙江大学 一种快速且精确的大理石纹釉生成方法
CN101833777B (zh) * 2010-03-23 2012-08-22 浙江大学 基于数学函数的实时的大理石纹釉图案生成方法
WO2015006224A1 (en) * 2013-07-08 2015-01-15 Vangogh Imaging, Inc. Real-time 3d computer vision processing engine for object recognition, reconstruction, and analysis
US20180342098A1 (en) * 2015-12-25 2018-11-29 Intel Corporation Unified environmental mapping framework
CN106981096B (zh) * 2017-02-13 2019-12-06 上海大学 一种vr环境中基于卷积曲面逼近的建模方法
CN108346177B (zh) * 2018-01-15 2020-09-08 浙江大学 一种基于Unity3D的虚拟陶瓷设计方法
CN108717723B (zh) * 2018-04-19 2019-06-11 浙江大学 一种基于草图实现形状保持的树木变形动画方法
CN109523854A (zh) * 2018-11-15 2019-03-26 大连理工大学 一种液压元件虚拟拆装的方法
CN109272800A (zh) * 2018-11-16 2019-01-25 北京华电天仁电力控制技术有限公司 一种基于Unity3D的电厂仿真培训方法
CN109636889B (zh) * 2018-11-19 2020-09-08 南京大学 一种基于动态缝合带的大规模三维地形模型渲染方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Interaction Between Virtual Scene Based on Kinect and Unity3D;Hou-ju Zhang等;《IEEE Xplore》;20171218;第91-93页 *

Also Published As

Publication number Publication date
CN110176058A (zh) 2019-08-27

Similar Documents

Publication Publication Date Title
Arora et al. Symbiosissketch: Combining 2d & 3d sketching for designing detailed 3d objects in situ
Gregory et al. intouch: Interactive multiresolution modeling and 3d painting with a haptic interface
GB2555698B (en) Three-dimensional model manipulation and rendering
CN110176058B (zh) 一种基于草图和卷积曲面的沉浸式快速建模方法
JP7343963B2 (ja) 画像を入力とする関数を学習するためのデータセット
US8914259B2 (en) Passive associativity in three-dimensional (3D) modeling
Ijiri et al. Seamless integration of initial sketching and subsequent detail editing in flower modeling
US10394221B2 (en) 3D printing using 3D video data
JP2016119077A (ja) 制御点のグリッドによって定義される3dモデリングされた物体
Harper Mastering Autodesk 3ds Max 2013
Nazzaro et al. geoTangle: interactive design of geodesic tangle patterns on surfaces
CN110276818A (zh) 用于自动合成内容感知填充的交互式系统
Sun et al. Texture brush: an interactive surface texturing interface
Liu et al. EasyToy: plush toy design using editable sketching curves
US11625900B2 (en) Broker for instancing
Fu et al. Easyvrmodeling: Easily create 3d models by an immersive vr system
US8334869B1 (en) Method and apparatus for modeling 3-D shapes from a user drawn curve
Baechler et al. Blender 3D By Example: A project-based guide to learning the latest Blender 3D, EEVEE rendering engine, and Grease Pencil
Lotter Taking Blender to the Next Level: Implement advanced workflows such as geometry nodes, simulations, and motion tracking for Blender production pipelines
Venter et al. Unreal Engine 5 Character Creation, Animation, and Cinematics: Create custom 3D assets and bring them to life in Unreal Engine 5 using MetaHuman, Lumen, and Nanite
JP5481751B2 (ja) 隠蔽処理プログラム、可視化処理方法及び装置
Chen et al. QuickCSGModeling: Quick CSG operations based on fusing signed distance fields for VR modeling
Wang Robust Geometry Kernel and UI for Handling Non-orientable 2-Mainfolds
Halač A Complete Guide to Character Rigging for Games Using Blender
CN113902871A (zh) 一种基于体骨架卷积曲面的沉浸式快速建模方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant