U3D场景制作规范(转)「建议收藏」

U3D场景制作规范(转)「建议收藏」本文提到的所有数字模型制作,全部是用3DMAX建立的模型,即使是不同的驱动引擎,对模型的要求基本是相同的。当一个VR模型制作完成时,它所包含的基本内容包括:场景尺寸、单位,模型归类塌陷、命名、节点编辑,纹理、坐标、纹理尺寸、纹理格式、材质球等必须是符合制作规范的。一个归类清晰、面数节省、制作规范的模型文件对于程序控制管理是十分必要的。首先对制作流程作简单介绍:素材采集-模型制作-贴图制作

大家好,又见面了,我是你们的朋友全栈君。

本文提到的所有数字模型制作,全部是用3D MAX建立的模型,即使是不同的驱动引擎,对模型的要求基本是相同的。当一个VR模型制作完成时,它所包含的基本内容包括:场景尺寸、单位,模型归类塌陷、命名、节点编辑,纹理、坐标、纹理尺寸、纹理格式、材质球等必须是符合制作规范的。一个归类清晰、面数节省、制作规范的模型文件对于程序控制管理是十分必要的。

首先对制作流程作简单介绍:素材采集-模型制作-贴图制作-场景塌陷、命名、展UV坐标-灯光渲染测试-场景烘培-场景调整导出。

第一章、模型制作规范

1、在模型分工之前,必须确定模型定位标准。一般这个标准会是一个CAD底图。制作人员必须依照这个带有CAD底图的文件确定自己分工区域的模型位置,并且不得对这个标准文件进行任何修改。导入到MAX里的CAD底图最好在(0,0,0)位置,以便制作人员的初始模型在零点附近。
2、在没有特殊要求的情况下,单位为米(Meters)。

3、删除场景中多余的面,在建立模型时,看不见的地方不用建模,对于看不见的面也可以删除,主要是为了提高贴图的利用率,降低整个场景的面数,以提高交互场景的运行速度。如box底面、贴着墙壁物体的背面等。

4、保持模型面与面之间的距离推荐最小间距为当前场景最大尺度的二千分之一。例如:在制作室内场景时,物体的面与面之间距离不要小于2mm;在制作场景长(或宽)为1km的室外场景时,物体的面与面之间距离不要小于20cm。如果物体的面与面之间贴得太近,会出现两个面交替出现的闪烁现象。模型与模型之间不允许出现共面、漏面和反面,看不见的面要删掉。在建模初期一定要注意检查共面、漏面和反面的情况。

5、可以复制的物体尽量复制。如果一个1000个面的物体,烘焙好之后复制出去100个,那么他所消耗的资源,基本上和一个物体所消耗的资源一样多。

6、建模时最好采用Editable Poly面片建模,这种建模方式在最后烘焙时不会出现三角面现象,如果采用Editable Mesh 在最终烘焙时可能会出现三角面的情况。

7、模型的塌陷当一栋建筑模型经过建模、贴纹理之后,然后就是将模型塌陷,这一步工作也是为了下一步烘焙做准备。所以在塌陷的时候要注意一些问题:

(1)按照“一建筑一物体”的原则塌陷,体量特别大或连体建筑可分塌为2-3个物体,但导出前要按建筑再塌成一个物体,城中村要按照院落塌陷。

(2)用Box反塌物体,转成Poly模式,这时需检查贴图有无错乱;

(3)塌陷物体,按楼或者地块来塌陷,不要跨区域塌陷;

(4)按项目对名称的要求进行严格的标准的命名;

(5)所有物体的质心要归于中心,检查物体位置无误后锁定物体;

备注:所有物体不准出现超过20000三角面的情况,否则导出时出错。

8、模型命名。不能使用中文命名,必须使用英文命名,不然在英文系统里会出问题。地块建筑模型不允许出现重名,必须按规范命名。

9、树的种植方法用十字交叉树或简模树。在种植树木的时候,要考虑到与周围建筑的关系,不能乱种树,要根据现状放置不同的树种、位置;重点建筑地块需种简模树,并在原地与之对应的种上十字片树(替换用);导出时模型树和与之对应的十字片树为单棵的,其它十字片树可塌一起,但面数不能超过1万。

10、模型的级别也就是模型的精细程度,有时我们在建模的时候要根据建筑所处的具体位置,重要程度对该建筑进行判断是建成何种精度的仿真模型。可以将建筑分为五个等级。其中,一级为最高等级,五级为最低等级。单个物体的面数不要太大,毕竟是做虚拟现实,而不是制作单张效果图。单个物体面数要控制到8000个面以下。

11、镜像的物体需要修正。用镜像复制的方法来创建新模型,需要加修改编辑器修正一下。

第一步:需要选中镜像后的物体,然后进入Utilities面板中单击Reset XForm,然后单击Reset Selected; 第二步:进入modfiy面板选取Normal命令,反转一下法线即可。

12、烘焙的物体黑缝解决对办法。在烘焙的时候,如果图片不够大的时候,往往会在边缘产生黑缝。处理小技巧 :

1)如果做鸟瞰楼体比较复杂可以把楼体合并成一个物体变成多重材质,然后对楼体进行整体完全烘焙;这样可以节省很多资源。

2)对于建筑及地形,须检查模型的贴图材料平铺的比例,对于较远的地表(或者草地),可以考虑用一张有真实感的图来平铺,平铺次数少一些。对于远端的地面材料,如果平铺次数大了,真实感比较差。

第二章、材质贴图规范

1、材质和贴图类型。我们目前使用的是Unity3D软件作为仿真开发平台,该软件对模型的材质有一些特殊的要求,在我们使用的3dsMax中不是所有材质都被Unity3D软件所支持,只有下面几种材质是被Unity3D软件所支持。 Standard(标准材质)默认的通用材质球。基本上目前所有的仿真系统都支持这种材质类型。 Multi/Sub-Object(多维/子物体材质)将多个材质组合为一种复合式材质,分别指定给一个物体的不同次物体选择级别。要注意的是,在VR场景制作中,Multi/Sub-Object材质中的子材质一定要是Standard标准材质。否则不被unity3d支持。我们在制作完模型进行烘焙贴图前都必须将所有物体塌陷在一起,塌陷后的新物体就会自动产生一个新的Multi/Sub-Object多维/子物体材质。因此,这种材质类型在我们的仿真制作中经常使用。

2、贴图通道及贴图类型。Unity3D目前只支持Bitmap贴图类型,其它所有贴图类型均不支持。只支持Diffuse Color(漫反射)同self-Illumination(自发光,用来导出lightmap)贴图通道。 Self-Illumination(不透明)贴图通道在烘焙lightmap后,需要将此贴图通道的channel设置为烘焙后的新channel,同时将生成的lightmap指向到self-Illumination。

3、贴图的文件格式和尺寸。建筑的原始贴图不带通道的为JPG,带通道的为32位TGA,但最大别超过2048;贴图文件尺寸必须是2的N次方(8、16、32、64、128、256、512),最大贴图尺寸不能超过(1024×1024)。在烘培时将纹理贴图存为TGA 格式。

4、贴图和材质应用规则

(1)贴图不能以中文命名,不能有重名;

(2)材质球命名与物体名称一致;

(3)材质球的父子层级的命名必须一致;

(4)同种贴图必须使一个材质球;

(5)除需要用双面材质表现的物体之外,其他物体不能使用双面材质;

(6)材质球的ID号和物体的ID号必须一致。

(7)若使用CompleteMap烘焙,烘焙完毕后会自动产生一个Shell材质,必须将Shell材质变为Standard标准材质,并且通道要一致,否则不能正确导出贴图。

(8)带Alpha通道的贴图,在命名时必须加_al以区分。

5、通道纹理应用规则。模型需要通过通道处理时需要制作带有通道的纹理。在制作树的通道纹理时,最好将透明部分改成树的主色,这样在渲染时可以使有效边缘部分的颜色正确。通道纹理在程序渲染时占用的资源比同尺寸普通纹理要多。通道纹理命名时应以-AL结尾。

第三章、模型烘焙及导出

模型烘焙

1、场景灯光

(1)渲染方式:采用Max自带的Light Tracer光线追踪进行渲染。

(2)灯光效果控制:该项目在烘焙前会给出固定的烘焙灯光,灯光的高度、角度、参数均不可调整,可以在顶视图中将灯光组平移到自己的区块,必须要用灯光合并场景然后烘焙。

2、烘焙贴图方式建筑模型的烘焙方式有两种:一种是LightMap烘焙贴方式,这种烘焙贴图渲染出来的贴图只带有阴影信息,不包含基本纹理。具体应用于制作纹理较清晰的模型文件(如地形),原理是将模型的基本纹理贴图和LightMap阴影贴图两者进行叠加。优点是最终模型纹理比较楚,而且可以使用重复纹理贴图,节约纹理资源;烘焙后的模型可以直接导出FBX文件,不用修改贴图通道。缺点是LightingMap贴图不带有高光信息;另一种是CompleteMap烘焙方式,这种烘焙贴图方式的优点是渲染出来的贴图本身就带有基本纹理和光影信息,但缺点是没有细节纹理,且在近处时纹理比较模糊。

3、烘焙贴图设置

①CompleteMap烘焙方式在进行CompleteMap烘焙设置时,应注意以下几点:

a) 贴图通道和物体UV坐标通道必须为1通道;

b) 烘焙贴图文件存储格式为TGA格式;

使用已有通道,默认为3,阴影参与烘焙计算 创建一个新的Baked材质 文件格式类型,目标贴图栏 。

② LightingMap烘焙方式在进行LightingMap烘焙设置时,和CompleteMap设置有些地方不同:

a) 贴图通道和物体UV坐标通道必须为3通道;

b) 烘焙时灯光的阴影方式为Adv.RayTraced阴影;

创建一个新的Baked材质,开启直接光照 阴影参与烘焙计算 开启间接光照 目标贴图栏 文件格式类型 使用已有通道,默认为3 。

c) 用LightingMap烘焙时,背景色要改为白色,可避免有黑边的情况;而用CompleteMap烘培时,背景色要改为与贴图近似的颜色。

d) 在使用lightmap烘焙后,需要将材质改回Standard,然后将新生成的map拷贝到Standard的self-Illumination内,并设置正确的贴图通道。

4、贴图UV编辑必须手动进行UV编辑。模型导出

1、将烘培材质球改为标准材质球,通道为1,自发光100;

2、将所有物体名、材质球名、贴图名保持一致

3、合并顶点(大小要合适);

4、清除场景,除了主要的有用的物体外,删除一切物件;

5、清材质球,删除多余的材质球(不重要的贴图要缩小);

6、按要求导出fbx(检查看是否要打组导出);

视具体情况导出动作

第四章、场景模型验收 模型制作流程 模型验收流程 模型验收标准

第五章、模型备份

提交标准文件

标准备份模式:

l、UV 坐标:存放地型和建筑烘培前编辑的UV坐标;

2、导出fbx:存放最终导出的地型和建筑的fbx文件;

3、烘培贴图:存放地型的最终贴图和建筑的最终烘培贴图,tga格式的,同时这里面有一份转好的贴图;

4、原始贴图:存放地型和建筑在制作过程中的所有的贴图;

5、Max文件:原始模型,未做任何塌陷的,有UVW贴图坐标的文件。烘焙前模型,已经塌陷完的,展好UV的,调试好灯光渲染测试过的文件。烘焙后模型,已经烘培完的,未做任何处理的文件。导出模型,处理完烘培物体,合并完顶点,删除了一切没用物件的文件。

第六章、项目命名要求

1、建筑模型命名:区域名_jz_编号;如:SH01_01_jz_01、SH01_01_jz_02……

2、建筑贴图命名:模型名_编号;如:SH01_01_jz_01_01……

3、地形模型命名:区域名_dx_编号;如:SH01_01_dx_01……

4、地形贴图命名:模型名_编号;如:SH01_01_dx_01_01……

5、镂空贴图:要加“_al”后缀

6、需要加特效的玻璃要加“_bl”后缀;(需要加特效的要单独一个物体烘焙)

第七章、创建各资料路径

1、航片存放路径

2、各区域CAD导出的MAX文件

3、照片资料

4、公共纹理库资料

5、客户提供的所有资料

第八章、特殊制作要求

1、围墙、护栏、雨棚、车棚等要按实际制作。

2、照片与图纸不符时,以实际照片为主。

3、沿街店铺尽量与实际一致。

4、预估尺寸时尽量去借助照片中的参照物,如人、汽车、树木等。

5、除重点建筑外尽量简化模型,贴图做精,能用贴图表现结构的尽量用贴图表现。

6、绿化的种类、颜色尽量去实际一致。

7、建筑顶部的结构及顶部的附属设施尽量按实际制作。

8、建筑贴图时顶部要留出女儿墙的高度,避免出现窗户顶到建筑顶部。

9、建筑要制作入口。

10、地形、绿化要丰富。

11、书报亭、公交站、变电箱、烟囱、信号塔等要简单制作,以丰富场景。

12、所有贴图UV大小要准确,避免失真。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150217.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • acwing-1183. 电力(割点Tarjan)

    acwing-1183. 电力(割点Tarjan)给定一个由 n 个点 m 条边构成的无向图,请你求出该图删除一个点之后,连通块最多有多少。输入格式输入包含多组数据。每组数据第一行包含两个整数 n,m。接下来 m 行,每行包含两个整数 a,b,表示 a,b 两点之间有边连接。数据保证无重边。点的编号从 0 到 n−1。读入以一行 0 0 结束。输出格式每组数据输出一个结果,占一行,表示连通块的最大数量。数据范围1≤n≤10000,0≤m≤15000,0≤a,b<n输入样例:3 30 10 22 14 20 1

  • SpringBoot自定义starters

    SpringBoot自定义startersSpringBoot自定义starters1、简介2、如何自定义starter1、简介SpringBoot最强大的功能就是把我们常用的场景 抽象成一个个starter(场景启动器),我们通过引入springBoot为我们提供这些场景启动器,我们再进行少量的配置就能使用相应的功能。但是,SpringBoot不能包含所有的场景,经常需要我们自定义starter,来简化我们对springBoot的使用。2、如何自定义starter…

    2022年10月23日
  • 新版大官场–男人是山

    新版大官场–男人是山一部官场小说,写的有点虚无缥缈,不够真实。[@more@]这本小说的写法有点发散,期间有些年份的跨度不够合理,中规中矩,闲时可看看。…

  • jsp开发技术

    jsp开发技术一、为什么说JSP也是动态web开发的一项技术呢?这是因为写JSP虽然像是在写HTML,但是JSP允许在页面中嵌套Java代码,或者利用某个标签表示Java代码(EL与jstl)。这就使得我们在写JS

  • linux chmod 755 ,750,777

    linux chmod 755 ,750,777一直没用过chmod777(755,750)的命令,也不知道具体是什么作用,尤其不知道755,750,777分别代表什么意思,只记得有一次咨询一个同门时告诉我不要设置成777模式,后来就没有接触了。因为今天又用到了,所以整理归纳以一下。chmod是Linux下设置文件夹权限的命令,后面一般跟三个数据,代表不用用户群体在这个文件夹上的权限设置:一般是三个数字:chmod750dir_wzg第一个数字表示文件所有者的权限第二个数字表示文件所有者同属一个用户组的其他用户在该文件上的权限

  • linux wine qq2017,20170506-linux下最新WineQQ8.9.1安装教程

    linux wine qq2017,20170506-linux下最新WineQQ8.9.1安装教程本次教程是我根据很多前辈的文章整理出来的。linux下安装QQ的方法有很多,比如用genymotion安装安卓版qq,或者购买crossover后安装deepinQQ,不过,最常用的还是使用wine安装QQ,不过如果用WineWindowsProgramLoader执行QQ安装程序的话会遇到很多BUG,比如无法输入用户名或者无法输入中文等。谈到wine不得不说一下winetricks和win…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号