Unity3D模型制作规范[转]
本文提到的所有数字模型制作,全部是用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大小要准确,避免失真。
原文链接:http://www.yeehot.com/article-43-1.html
Unity3D模型制作规范[转]的更多相关文章
- unity3d模型制作规范
1. 单位,比例统一 在建模型前先设置好单位,在同一场景中会用到的模型的单位设置必须一样,模型与模型之间的比例要正确,和程序的导入单位一致,即便到程序需要缩放也可以统一调整缩放比例.统一单位为米. 2 ...
- 数字模型制作规范(转自Unity3D群)
本文提到的所有数字模型制作,全部是用3D MAX建立模型,即使是不同的驱动引擎,对模型的要求基本是相同的.当一个VR模型制作完成时,它所包含的基本内容包括场景尺寸.单位,模型归类塌陷.命名.节点编辑, ...
- Unity3D如何制作透贴和使用透贴模型
http://momowing.diandian.com/post/2012-10-25/40040842845 Unity3D如何制作透贴和使用透贴模型??解决办法!!! 问题: 同事通过3DMAX ...
- 如何优雅地制作精排 ePub —— 个人电子书制作规范及基本样式表
随着大数据时代的到来,多种移动阅读终端方兴未艾 —— Amazon Kindle不再小众.各互联网巨头纷纷推出旗下的电子书阅读软件.有了阅读的软件/硬件支持,必不可少的就是阅读什么的问题了.ePub格 ...
- 音频工具kaldi部署及模型制作调研学习
语音识别简介 语音识别(speech recognition)技术,也被称为自动语音识别(英语:Automatic Speech Recognition, ASR).计算机语音识别(英语:Comput ...
- Unity3d地图制作之模型高光
由于颇受暗黑破坏神美工的影响,最近都在研究怎么制作场景地图之类的. 那么今日讲的模型高光虽然和地图无关,但是也涉及到一些美工的知识,尤其是shader. 按照国际惯例,先贴一张图饱饱眼福. 大家可以看 ...
- 【CityHunter】通过Unity3D来制作游戏中AR部分的内容
嗯,最近再考虑,CityHunter中,玩家攻略藏宝图时,为了增加可玩性,应该增强在AR部分的游戏性.最近特别火的游戏<Pokemon Go>在打开摄像头以后,可以看到小精灵,实际上,如果 ...
- unity3d NGUI制作角色展示框
最近在搞赛车漂移,所以一直没有更新博客 现在已经实现圈数检测.复位点检测.反向检测等功能 本来准备写成三篇文章的,太忙了,等过段时间不忙了在写吧 今天有朋友问我3D角色怎么给他固定在一个框里面 这个功 ...
- 【pano2vr】网页Flash中简单实现炫酷的3D模型制作
花了两天时间学习如何能够高效的实现3D模型效果,毕竟是从0开始学习,感觉pano2vr这款软件挺容易上手,并且可以很容易实现简单的热点交互,可以根据交互需求设置皮肤,故将这一款软件推荐给大家: 1.简 ...
随机推荐
- 【转】 C++ 简单的 Tcp 实现[socket] 客户端与客户端通信
// 服务器端代码 // Server.cpp : Defines the entry point for the console application.// #include "std ...
- AWS向中国有限预览客户推出多级别AWS支持服务
2014年9月26日 在AWS中国(北京)区域有限预览服务开展的过程中.很多客户都提出了对AWS支持服务(AWS Support)的需求. AWS客户在向云端部署系统,日常运营维护以及关键性项目实 ...
- Android-studio 连接真机 调试weex项目
1.选择项目 platforms / android 2.创建虚拟机(AVD) (1)点击 AVD Manager (2) 点击 Create Virtual Device 最后发现 CPU 不 ...
- linux系列之-—03 压缩和解压缩命令
tar命令 解包:tar zxvf FileName.tar 打包:tar czvf FileName.tar DirName gz命令 解压1:gunzip FileName.gz 解压2:gzip ...
- iOS 身份证验证
- (void)onClickButton:(id) sender{ || tmp_txt.text.length == ) { NSString *emailRegex = @"^[0-9 ...
- JRE、JDK、JVM区别和联系
首先说Java编程语言,它是一门高级编程语言,具体由谁何时创建的,读者可以到网上查找相关资料,这里就不再赘述.那么,谈到Java就不得不谈谈JVM.JRE和JDK三者间的区别和联系. JVM:英文全称 ...
- Java 线程池ThreadPoolExecutor简单应用
什么是线程池: 线程池就是控制线程的一个池子.用来控制线程数量. 为什么要使用线程池: 1.避免系统反复创建和销毁线程影响执行的时间(创建+销毁>>执行时间时) 2.控制线程数量.线程过多 ...
- 「翻译」Unity中的AssetBundle详解(二)
为AssetBundles准备资源 使用AssetBundles时,您可以随意将任何Asset分配给所需的任何Bundle.但是,在设置Bundles时,需要考虑一些策略.这些分组策略可以使用到任何你 ...
- PM12条
PM首先是用户 站在用户角度看待问题 用户体验是一个完整的过程 追求效果,不做没用的东西 发现需求,而不是创造需求 决定不做什么,往往比决定做什么更重要 用户是很难被教育的,要迎合用户,而不是改变用户 ...
- node js 安装时选择勾上path
勾上path则会自动配置环境变量,否则必须手动去添加nodejs的环境变量.