一种虚拟场景与模型的快速渲染方法与流程

文档序号:11433484阅读:516来源:国知局
一种虚拟场景与模型的快速渲染方法与流程

本发明涉及虚拟现实技术领域,涉及一种虚拟场景与模型的快速渲染方法,尤其涉及在虚拟场景中,提高仿真环境与三维模型的综合渲染速度与效率的方法。

技术背景

虚拟现实(virtualreality,简称vr)是一种构建并可体验、交互的虚拟仿真系统,综合计算机图形学、实时图像处理、精密传感器及人机接口等多项学科。逼真的场景与模型给人以身临其境的体验。目前多应用于游戏、影视、动画、军事等领域。

当前,模型的渲染一般基于独立软件处理,如autodesk公司的3dmax、maya,maxoncomputer公司的cinema4d等。渲染开发人员除了丰富的软件应用经验,还需具备图形学、计算几何等多门学科知识。因此,渲染相关技术人员的知识领域广、培训周期长、技术水平良莠不齐。

在企业技术与产品的开发中,美术(负责渲染)和技术(负责开发程序)一般分为两个部门。由于客观条件和个人能力的情况,两个部门难以实现相互交叉的协同开发模式。同时,在不同项目的开发过程中,多项目之间的渲染素材不能及时共享与利用,造成重复工作。

目前的模型渲染,多数以照片作为主图材料。因此每个项目均需要现场拍摄、实物拆解、照片处理等多个环节,占据项目开发周期的大段时间。尤以后期的烘焙效率较低,耗时较长。

在虚拟现实软件产品完成之后,会对项目进行定期更新或在出现较为明显的渲染方面缺陷的时候,需要进行局部的修改。当前的常规处理情况是针对源工程进行改动后重新发布。因此,项目方需要招聘专门人员进行更新,增加运维成本。

渲染效果是虚拟现实产品用户体验的第一感观;渲染效率是加快产品开发进度的重要因素。在保证良好渲染效果的基础上,提高渲染效率是必不可少的内容。上述问题也是虚拟现实产品在开发过程中遇到的亟待解决的共性问题。



技术实现要素:

针对现有虚拟现实产品开发的技术难点与不足,本发明实现了一种虚拟场景及模型快速渲染的方法。

本发明的虚拟场景与模型的快速渲染方法包括以下步骤:

获得待渲染虚拟场景与模型的渲染要求以及预先建立的标准材质库,其中,标准材质库保存有基于不同材料、不同渲染效果、不同构件的材质以及贴图素材;

根据所述渲染要求和标准材质库,创建包含场景参数、模型与材质对应关系的可读写文件,加载后从所述的标准材质库中选择与待渲染模型相对应的材质;

根据渲染要求设置并调整场景参数,根据所选材质对模型进行渲染和材质参数调节,完成满足既定渲染要求的场景与模型渲染;

根据所述待渲染模型的渲染要求,在单个模型对应多个材质时,对多个材质在三维模型表面直接进行三维在场uv贴图;

根据所述待渲染模型的渲染要求,通过手绘轨迹生成高光效果及其对应材质,并进行模型的高光效果渲染。

优选的,本发明通过以下方法构建标准材质库:

根据材料属性,构建基于不同材料类型的贴图与材质库,可根据材料名称检索材质,并可修改材质参数;

根据同一模型的不同渲染要求,构建常见、已有和特定三种渲染效果的材质库,可根据渲染效果检索材质,并可修改材质参数;

根据常用构件模型,创建预制物体,并绑定贴图与材质,可根据预制物体名称检索材质。

进一步的,所述的标准材质库中材质的参数可采用标准模板着色器调整,调整参数后创造的材质根据用户需求保存为标准材质或个性材质:具体步骤为:

根据模型材料和渲染效果,从标准材质库中选取合适的材质贴图;

对于标准材质库所未包含的特定的渲染需求或者优化渲染效果,通过标准模板着色器的参数调节面板对所选取的材质贴图进行参数修改,创建对应于渲染需求或者渲染效果的材质,根据用户需求将所创建的材质贴图保存为标准材质或个性材质;所述的由用户创建或修改的标准材质和个性材质可由所创建的用户设置访问权限。

优选的,所述的标准材质库设有访问权限,使用者的权限类别包括:

公有权限,可访问、使用标准材质库中除私有材质库的材质,对标准材质库的所有使用者开放;

私有权限,在公有权限的基础上,拥有私有权限者可访问、使用私有材质库内的材质,对标准材质库的个人、具体项目和特定集体开放。

优选的,所述的创建并加载包含场景参数、模型与材质对应关系的可读写文件,从所述的标准材质库中选择与待渲染模型相对应的材质的步骤为:

创建可读写文件,根据所述待渲染模型的渲染要求编辑待渲染场景参数、待渲染模型与材质的对应关系;

加载并解析填有所述包含主要场景参数与对应关系的可读写文件,并从标准材质库中检索到待渲染模型相对应的材质。

优选的,所述的对多个材质在三维模型表面直接进行三维在场uv贴图包括以下步骤:

获取待渲染模型的三维表面mesh网格;

根据所述待渲染模型的渲染要求,选择其中一个对应材质;

通过在场的即时拖拽、位置捕捉、边界变形方式完成所选材质在三维模型表面mesh网格上的区域定位;

通过在场的缩放、平铺、旋转方式针对所选材质在三维模型表面mesh网格上的渲染区域进行适应性调整;

根据所述待渲染模型的渲染要求,完成所选材质在指定渲染区域中的表面映射;

根据所述待渲染模型的渲染要求,依次完成所有材质的区域定位、适应调整和表面映射;

将所有待渲染模型对应的材质合并为一个材质,并完成待渲染模型的渲染。

优选的,所述的通过手绘轨迹生成高光效果及其对应材质,并进行模型的高光效果渲染包括以下步骤:

根据所述待渲染模型的渲染需求,设置绘笔的填充颜色、渐变方向、边界柔和度参数;

实时获得用户输入的手绘轨迹,并通过区域填充和插值拟合算法进行轨迹参数处理;

根据绘笔参数和处理后的轨迹参数,生成满足渲染要求的高光材质;

将所述生成的高光材质赋予模型,完成手工添加高光和阴影,处理单色非高光物体模型表面的非均匀光效、模型表面大面积的斑点分布式光效、多光源重叠阴影光效;

所述的高光效果包括高光和通过调整绘笔参数不同而所得的阴影、光斑、渐变色及其组合光效。

本发明还公开了一种虚拟场景与模型的快速渲染装置,所述装置包括:

标准材质库,用于获得待渲染虚拟场景与模型的渲染要求以及待渲染模型的材质;所述的标准材质库保存有基于不同材料、不同渲染效果、不同构件的材质以及贴图素材;

材质选择模块,用于根据所述待渲染模型的材质,通过加载记载有待渲染模型与材质对应关系的可读写文件,从预先建立的标准材质库中选择与渲染要求相对应的材质,

渲染模块,用于根据待渲染场景与模型的渲染要求,利用所选材质对待渲染模型进行渲染;

标准模板着色器及其参数调节面板,用于创建标准材质库内的材质,以及根据当前渲染效果和渲染要求通过参数调节面板对材质参数进行调整,以满足渲染效果;

三维在场uv贴图模块,用于在单个模型对应多个材质的情况时,对多个材质在三维模型表面直接进行在场uv贴图,以完成满足既定渲染要求的渲染;

手绘特效模块,用于根据渲染要求通过手绘轨迹生成高光效果及其对应材质,并进行模型的高光效果渲染。

优选的,所述标准材质库包括标准材质库创建子模块、材质创建子模块和权限访问子模块,所述的标准材质库创建子模块包括基于材料属性材质创建子模块、基于渲染要求材质创建子模块和基于预制物体材质创建子模块;

所述的基于材料属性材质创建子模块,根据材料属性,构建基于不同材料类型的贴图与材质库,可根据材料名称检索材质,并可修改材质参数;

所述的基于渲染要求材质创建子模块,根据同一模型的不同渲染要求,构建常见、已有和特定三种渲染效果的材质库,可根据渲染效果检索材质,并可修改材质参数;

所述的基于预制物体材质创建子模块,根据常用构件模型,创建预制物体,并绑定贴图与材质,可根据预制物体名称检索材质;

所述的材质创建子模块采用基于标准模板着色器创建标准材质或个性材质,包括:

材质贴图选择子单元,根据模型材料和渲染效果,选取合适的材质贴图;

材质创建子单元,用于创建标准材质,还包括对于标准材质库所未包含的渲染需求或者优化渲染效果,通过标准模板着色器的参数调节面板对所选取的材质进行参数修改,创建对应于渲染需求或者渲染效果的材质,根据用户需求将所创建的材质贴图保存为标准材质或个性材质;

所述的权限访问子模块用于根据权限等级管理标准材质库的访问与使用。

优选的,所述的材质选择模块包括:

可读写文件(材质功能表)创建模块,根据渲染要求创建待渲染模型与所需材质的对应关系,并由可读写文件(材质功能表)记载材质信息与主要参数;

可读写文件(材质功能表)加载模块,加载填有所述对应关系的可读写文件;

可读写文件(材质功能表)解析模块,解析所述可读文件并检索到相应的材质,将材质选择结果发送给渲染模块;

可读写文件(材质功能表)编辑模块,用于根据初步渲染效果或用户需求编辑可读写文件中的信息,并由可读写文件加载模块重新加载。

所述的材质选择模块还包括虚拟场景的参数设定。通过可读写文件记载的参数设置场景内对象的参数,完成场景渲染。

优选的,所述的三维在场uv贴图模块包括:

区域定位单元,通过在场的即时拖拽、位置捕捉、边界变形方式完成所选材质在三维模型表面mesh网格上的区域定位;

贴图调整单元,通过在场的缩放、平铺、旋转方式针对所选材质在三维模型表面mesh网格上的渲染区域进行适应性调整;

表面映射单元,根据所述待渲染模型的渲染要求,完成所选材质在指定渲染区域中的表面映射;

材质合并单元,将所有待渲染模型对应的材质合并为一个材质,并完成待渲染模型的渲染。

优选的,所述的手绘高光模块包括:

参数设置单元,根据所述待渲染模型的渲染需求,设置绘笔的填充颜色、渐变方向、边界柔和度参数;

手绘轨迹获取和处理单元,实时获得用户输入的手绘轨迹,并通过区域填充和插值拟合算法进行轨迹参数处理;

高光材质生成单元,根据绘笔参数和处理后的轨迹参数,生成满足渲染要求的高光材质;

高光材质渲染单元,将所述生成的高光材质赋予模型,完成手工添加高光和阴影,处理单色非高光物体模型表面的非均匀光效、模型表面大面积的斑点分布式光效、多光源重叠阴影光效。

与已有的技术方法相比,在大幅提高虚拟场景及模型渲染效率的基础上,本发明的其他优越性如下:

高效性。本发明提出创建一个基于不同材料、不同渲染效果、不同预制构件的标准材质库,即使用即访问,以及通过标准模板着色器的参数调节优化渲染效果,提高虚拟场景与模型渲染的材质库的丰富度与方便性,从而提高渲染效率。

开放性。本发明可支持外部编辑文本(可读写文件形式的材质功能表)实现并完成渲染,加强了渲染过程中的可操作性,能及时进行调整和修改;非脚本交互的渲染素材可从源程序中分离,可实现在程序发布之后进行渲染效果的调整和修改。本发明由用户所创建的标准材质和个性材质根据用户需求添加进入标准材质库,并可设置访问权限。

自动化。渲染主程序可根据加载后的材质功能表进行自动快速渲染,能对可读写文件形式的材质功能表内容进行加载、解析、编辑并可通过标准模板着色器参数调节面板进行参数调节已获得更好的渲染效果。

工具集成。本发明在vr开发平台(如unity3d,unrealengine4等)内实现三维在场uv贴图以及手绘高光的渲染方法,实现开发工具的单一集成,提高开发效率。

轻量化。渲染素材及材质等资源可存放在云端服务器,减少软件开发包与安装包的空间容量。在使用过程中,即时使用即时加载,检测未使用时立即销毁。

可持续性。在虚拟现实产品开发项目积累中,保留、改进良好的渲染素材并纳入基础材质库,淘汰劣质素材,可加快后期项目进度并提高产品质量。

附图说明

图1为个性材质库创建示意图。

图2为材质功能表示例图。

图3为模板化渲染流程示例图。

图4为三维在场uv贴图实现流程图。

图5为边界变形示意图。

图6为非均匀缩放示意图。

图7为手绘特效实现流程图。

图8为圆形基本形状参数示意图。

图9为绘笔直线轨迹插值示意图。

图10为绘笔转折轨迹插值示意图。

具体实施方式

下面结合说明书附图对本发明作进一步说明。

本发明的技术方案主要分为模板化渲染、三维在场uv贴图和手绘特效三个发明内容。

1.1模板化渲染

模板化渲染由标准材质库、材质选择模块和渲染模块组成。

所述标准材质库包括标准材质库创建子模块、材质创建子模块和权限访问子模块等功能模块。标准材质库(以下简称材质库)是由不同材料类型、不同渲染要求和不同预制构件的渲染素材以及材质组成,可进行查询、检索以及参数调节。也可以此库素材为基础,经参数调节创建个性材质。

所述的标准材质库创建子模块,包括基于材料属性材质创建子模块、基于渲染要求材质创建子模块和基于预制物体材质创建子模块。标准材质库内的材质从材质参数是否可调的角度可分为通用材质和特殊材质,其中材料属性创建子模块、渲染要求创建子模块用于创建通用材质,预制物体创建子模块用于创建特殊材质。通用材质参数内容包括高光、反射、透明等。特殊材质一般是无需参数化或固定参数化的材质,可直接应用于某一类物体,例如常用螺栓、全透玻璃等。也就是说,通用材质可以在渲染模块中根据渲染要求通过标准模板着色器参数调节面板进行参数调节。标准模板着色器参数有材质贴图,法向贴图,含高光、反射、透明、折射等光效参数和含显隐、遮挡、描边、雾化、滤镜等其他参数。标准材质库内的材质从是否由用户编辑所得的角度可分为标准材质和个性材质。其中,由标准材质经参数调节所得的材质。标准材质库内的材质从访问权限的角度可分为公有权限材质和私有权限材质。公有权限材质面向所有用户支持访问与使用,私有权限材质仅对拥有私有权限者支持访问与使用。也包括,私有权限者可访问与使用公有权限材质。

所述的基于材料属性材质创建子模块,根据材料属性,构建基于不同材料类型的贴图与材质库,可根据材料名称检索材质,并可修改材质参数;

所述的基于渲染要求材质创建子模块,根据同一模型的不同渲染要求,构建常见和特定渲染效果的材质库,可根据渲染效果检索材质,并可修改材质参数;

所述的基于预制物体材质创建子模块,根据常用构件模型,创建预制物体,并绑定贴图与材质,可根据预制物体名称检索材质;

所述的材质创建子模块采用基于标准模板着色器创建标准材质(除基于预制构件的特殊材质),包括:

材质贴图选择子单元,根据模型材料和渲染效果,选取合适的材质贴图;

材质创建子单元,根据标准材质库所未包含的特定的渲染需求或者优化渲染效果,通过标准模板着色器的统一光效参数调节面板(与标准模板着色器的内容一一对应,包含主图、主色、高光、反射等参数)进行参数修改,并将最优参数对应的材质保存在标准材质或个性材质。个性材质由所创建的用户设置访问权限。如图1所示,当数量不止一个的同一类物体公用同一个材质时,一个或其中若干个的该类物体的渲染效果要求为a效果,而剩余其他该类物体的渲染效果要求为b效果,则b效果下的材质为个性材质。由这些材质组成的材质库描述为个性材质库。个性材质一般仅在某一个特定项目中或某一用户使用,可根据创建个性材质的用户设置访问权限决定是否可以用于其他项目或者其他用户。个性材质库的建立是面向模型渲染多样性的一个中间过程,由标准材质库内的标准材质经标准模板着色器的参数调节面板调节参数所得。所述的权限访问子模块用于根据权限等级管理标准材质库的使用。公有权限面向所有用户支持访问与使用公有权限材质,私有权限仅对拥有私有权限者支持访问与使用私有权限材质。也包括,私有权限者可访问与使用公有权限材质。

材质选择模块是基础材质库与渲染模块之间的衔接桥梁,其实现功能的可读写文件为材质功能表(以下简称材质表),材质表是一种可读写文件,以一种固定格式的规范语言实现虚拟场景内3d模型及其场景与材质库内材质之间的匹配关系及参数接口,其格式可以为txt、excel等。其主要实现两个功能:一是标的对象及其材料属性;二是材质检索,多种检索方式并存。检索方式以基于材料类型检索为主。在其他特殊情况下,可以以预制构件的标准材质或直接指定材质实现基础材质库的检索。实现材质检索功能的语言规范的思想如图2所示:功能表obj_00所在行,可根据材料类型检索;obj_01所在行,在当前物体材料未能知晓、不可描述和常规通用物体的情况下,可根据预制构件直接检索;obj_03所在,当采用特殊材质的情况下,可直接检索该名字的材质进行渲染。上述示例中,对象名称是指待渲染的模型对象;对象类型以该对象在虚拟场景的作用划分,可大致分为对象(obj)、灯光(lgt,见图4中lgt_01所在行)、天空(sky)、地形(pla)、人物(actor)等;材料类型即为对象的材料种类,诸如不锈钢金属m、光滑塑料p等(可通过基础材质库查看);预制构件是指材质可用于待渲染对象的对应的模型,即待渲染物体与预制构件的材质相同;材质名称是指待渲染对象指定的材质名称;配置参数是通用材质模板中各项参数设定值(图2中配置参数列数据仅为示意,非实际参数值)。

材质选择模块由四个子模块组成,分别为:可读写文件(材质功能表)创建模块、加载模块、解析模块和编辑模块;

可读写文件创建模块,根据渲染要求创建待渲染模型与材质的对应关系,并由可读写文件记载材质信息与主要参数;

可读写文件加载模块,加载填有所述对应关系的可读写文件;

可读写文件解析模块,解析所述可读文件并检索到相应的材质,将材质选择结果发送给渲染模块;

可读写文件编辑模块,用于根据初步渲染效果或用户需求编辑可读写文件中的信息,并由可读写文件加载模块重新加载。

所述的材质选择模块还包括虚拟场景的参数设定。通过可读写文件记载的参数设置场景内对象(如灯光、天空、地形等)的参数,完成场景渲染。例如灯光及其阴影参数,有灯光类型(如方向光、点光、区域光等)、强度、颜色、方向等;阴影参数有色强、偏移量、边界柔和度、阴影开关等。

渲染模块有三部分内容,分别是通用操作函数库、通用材质模板、参数调节面板。通用操作函数库主要有材质表的加载、用户基本操作、项目参数、材质处理(加载、复制、调参、销毁等)等信息;通用材质模板是标准材质库对应标准模板着色器的程序描述,使得用户可通过参数化接口调节材质特征;参数调节面板是调节与通用材质模板之间的交互,包含主色、高光、反射等参数的面板。

模板化渲染解决方案的实现流程首先构建完备的标准材质库,保证标准材质使用的着色器均相同。然后在项目开发中,过程可细分为以下步骤。

1)根据项目需求创建材质功能表。根据材质功能表的语言规范编辑待渲染场景的对象参数和待渲染模型与材质的对应关系。

2)加载材质功能表。首先,根据材质表中的内容,设置场景参数,并检索指定的物体并快速添加对应材质。在完成所有场景与模型的渲染后,对场景内多个对象或整个虚拟场景中的材质进行自动合并以及存在光影关系(高亮、倒影、反射等)模型的材质进行烘焙。当虚拟场景中多个物体均为静态物体,即项目中全过程未对这些物体进行操作,如墙体、顶灯、支座等,则可对这些物体的网格和材质进行合并,以减少材质数量。

3)调节材质参数。该过程包含有场景参数调节和材质参数调节。场景参数调节主要包括有阴影、倒影、灯光(环境光)等参数调节。以阴影为例,当快速自动渲染效果中的阴影边界轮廓不够清晰时,可通过该项参数进行定向调节,以期达到更为清晰轮廓的阴影。在完成调节后,渲染模块对该项参数调整后影响的光影关系对应模型的材质重新进行烘焙。材质参数调节的基础是采用统一的标准模板着色器,因此可以针对渲染参数进行统一的修改与优化。标准模板着色器包含有高光、反射、显影、法向凹凸等参数。以法向凹凸为例,用户可以调节法向z方向的系数来表现模型表面凹凸的程度。

如图3的示例中的步骤①、②、③所示,快速渲染的流程依次是:①待渲染模型(渲染状态记录为状态0)和相应材质功能表;②加载待渲染模型材质功能表,自动生成快速渲染(记录为状态1);③用户针对局部或单个模型进行优化与改进材质调整并获得最终渲染效果(记录为状态2)。

1.2三维在场uv贴图

该技术旨在实现基于uv贴图原理的三维模型在场uv贴图。uv是纹理贴图的坐标,可精确定位到3d模型表面。目前,uv贴图过程多以将三维模型进行二维展平成平面图(内含三维表面与平面坐标对应关系),然后在该平面图的绘制图片信息,最后将该平面图贴于三维物体表面。已有技术过程专业、界面复杂、操作流程多。本发明该技术直接将特征贴图作为对象在三维模型表面进行定位、调整、映射以及渲染。

三维在场uv贴图的具体流程如图4所示:先获取模型表面的mesh网格;在场选择指定渲染区域;在场调整指定渲染区域内的材质贴图;材质贴图在指定渲染区域的表面映射;所有材质贴图进行合并。

获取模型表面的mesh网格。模型表面的mesh网格包括顶点和多个三角形数组。三角形数组仅仅是顶点的索引数组。每个顶点可以有一条法线,两个纹理坐标,以及颜色和切线。其中纹理坐标即为uv,提供曲面网格与如何将图像纹理贴图到曲面网格之间的连接。

在场选择指定渲染区域。其方式有即时拖拽、位置捕捉、边界变形三种方式。即时拖拽方式是指将贴图拖拽至模型表面后,通过多次拖拽之后移动到满意的位置的过程。位置捕捉方式是对贴图区域的边界和定点进行智能捕捉,有顶点捕捉、边界捕捉、垂直捕捉、水平捕捉四种形式。顶点捕捉为可优先选择离定位点最近的uv坐标;边界捕捉为可优先选择明显特征边界,如立方体平面边界;垂直(水平)捕捉是可快速选择相对于当前定位界面的垂直(水平)。位置捕捉还包括基于模型特征的局部选择,例如选择五角星模型的一个角,一个桌面模型的桌面,一个葫芦模型的下半个较大球体。一个边界变形是在基础图形的基础上,将边界设为多线段,每个线段定点和中线线条都可进行拖拽变形,从而获得新的图形。如图5(a)所示,一个圆形变形为“0”形,①图为基础图形;②图为变形过程,图示中左右两点分别向内移动小段距离,此时圆形对应的圆弧也发生相应的形变;③图为变形后的图形。图5(b)为一个基础正方形图形,经过边界变形后变成“e”形。

在场调整指定渲染区域内的材质贴图,其方式有缩放、平铺、旋转三种方式。其中缩放有均匀缩放和非均匀缩放。均匀缩放是指材质贴图进行二维拉伸与压缩。非均匀缩放尤其应用于真实物体的材质区域具有不规则性,如相对边界平行但长度不相等、相对边界不平行等情况,如图6所示,由原abcd组成的区域α通过缩放顶点的移动调整为新的由a’b’c’d’区域β。平铺是以材质贴图的像素为标准,完全平铺在指定渲染区域。当出现材质贴图的形状与指定渲染区域的形状不一致或未完全填充(如材质贴图只是指定渲染区域中的一个较小区域),需要多张材质贴图进行渲染。当材质贴图的区域大于指定渲染区域时,在表面映射时不会渲染指定区域以外的区域。旋转是实现调整材质贴图在指定渲染区域中的角度。

材质贴图在指定渲染区域的表面映射。映射方法有标准映射、投影映射和立方体映射和其他标准体映射,如球、圆柱等。标准映射是指根据纹理贴图的与模型上的纹理坐标进行一一对应,且不能放大和缩小;投影映射是根据投影原理将纹理贴图投射到选择区域,具有自适应性,能进行拉伸、压缩、放大和缩小等操作。立方体映射可拆解为六个二维平面,利用六面体的朝向确定映射坐标。其他标准体映射和立方体映射类似,原理均为根据标准体的位置与姿态确定映射坐标。

所有材质贴图进行合并。步骤可分为三步:一是创建新的材质;二是根据网格uv确定各个合并贴图的位置;三是把新的材质载体赋予给物体。合并的好处有两点:利于之后材质的烘焙,提高烘焙效率;减少渲染函数的调用,drawcall的数量降低至1。该方法也适用于多个近距离静态物体之间的材质合并,能有效提高渲染效率。通常,该方法进行贴图合并的时候要求具有相同的着色器,不同着色器的情况需要进行分类处理。而基于模板化渲染的标准材质库(已具有相同着色器),则无须考虑标准材质合并的这个问题。

1.3手绘高光

该技术的基础是假特效处理,尤其是高光光效。实时高光要求占用更多运行设备的显卡资源。一般在不影响用户体验的情况下,尤其在高光要求不高,无光源,实时光效复杂,烘焙效率低等情况,采用假高光烘焙。目前,假高光的做法是在实时高光的基础上进行烘焙,从而保存为静态高光。本发明的手绘高光可完全遵循开发者意图自定义绘制,对渲染效果起到“画龙点睛”的效果,完成手工添加高光、阴影,处理模型表面不平整处的斑点式分布的光效,单色非高光物体模型表面的非均匀光效,多光源重叠阴影光效。

模型表面不平整处的斑点式分布的光效主要出现在大型虚拟铸造件设备模型,如水电站、飞机等。该类模型表面粗糙度较大,颜色单一,但观察者视角离模型或部分模型较远,所见的模型表面往往出现大面积高光或无反光,难以体现现实中的表面不平整所引起的斑点式光效。单色非高光物体模型(如白色墙面)表面在虚拟模型上一般呈现出黯淡无光的“死寂”现象,使得模型缺少立体感,逼真感。多光源重叠阴影光效一般发生在具有多个光源设置并不能确定主光源的虚拟场景。一个模型具有多种阴影,且阴影的边界轮廓较为模糊。通过手绘高光的方法可以在虚拟场景和模型中优化渲染效果,营造高度逼真的环境。

手绘高光的实现技术步骤(如图7所示)为绘笔参数设置、实时获得手绘轨迹并修正、根据轨迹参数生成高光材质、手绘高光渲染。因此手绘高光方法还能通过设置颜色实现阴影效果。

绘笔参数设置。绘笔参数是指绘制高光时,绘笔填充颜色、渐变方向和边界柔和度。渐变方向有由中心向四周渐变、自上而下自右而左、扇形渐变等形式;边界柔和度是指边界上渐变程度。绘笔形状为圆形,基本形状参数为圆心位置p、直径d、衰减宽度w,如图8所示。直径p支持函数变化,表示为渐变方向为由中心向四周渐变,渐变宽度支持在径向宽度上的规律ω(w)。圆形内部的填充颜色为τ(c)。所以,形状参数(表示为φ)可以表示为

实时获得手绘轨迹并进行处理。用户通过鼠标或触摸操进行轨迹绘制。手绘特征记录为轨迹,表示为ψ。获得方法为逐帧获取鼠标在贴图上的位置。该位置可以在uv、像素和模型表面mesh之间相互转换。在逐帧获取的情况下,并不能完整地获取轨迹上的每一点。因此,需要对贴图上的位置进行插值计算。需要进行插值计算的情况有以下两种:一是逐帧获取的位置点,尤其在像素点较大的时候更为明显,如图9所示;二是关键帧所在的位置点间距过大,如当关键位置点丢失或者移动速度过快未及时采集到关键位置点,如图10所示。情况一,在图9中可见,当绘笔像素点数较低时并不明显,当随着像素点数逐渐增大,其空白区域逐渐增大。其解决办法为针对每一段非直线转折点中间轨迹所对应的区域填充为矩形,直线转折点两端保持原始形状;圆弧或直线转折点处,则根据轨迹内半径和外半径组成的环形区域填充。情况二,在图10中可见,同样的关键位置点样本,可能存在真实轨迹情况有多种。其解决办法根据轨迹上下段信息拟合真实轨迹。定义轨迹ψ=ψm(p,n,v),其中m为轨迹的关键位置点数,p为关键位置点uv坐标,n该点的运行矢量方向(指向下一个位置点),v为该点的运行速度,计算公式为(不考虑跨越多帧的情况,正常t=1,单位为帧)。那么在第i(1<i≤m)点的情况下,从第i-1点到第i点,标准轨迹长度为li-1=(vi-1+vi)/2,实际轨迹长度为li-1=t*q*(vi-1+vi)/2,其中q为补偿系数,为两个特定的值,较小的记为qmin,较大的记为qmax。当li-1满足小于qmin计算所得长度,则按照图10(a)进行插值;当li-1在qmin与qmax计算所得长度之间,则进行图10(b)的圆弧插值;当li-1大于qmax计算所得长度,则采用图10(c)的插值。当因速度过大则按照图10(a)进行插值。

根据绘笔参数和轨迹参数生成高光材质。生成高光材质的过程是根据手绘轨迹对合适大小的透明图片依照绘笔参数进行处理,从而获得满足渲染要求的高光材质贴图,并生成高光材质。

手绘高光渲染。将由手绘输入生成的高光材质赋予待渲染模型,完成手绘高光渲染。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1