zoukankan      html  css  js  c++  java
  • Unity项目优化--开发项目的小经验

    原文地址:http://blog.csdn.net/liang_704959721/article/details/8548619

    我们主要使用 3dsmax2010 进行制作,输出 FBX的类型导入 Unity3D中。 

    默认情况下,3dsmax8 能够和 U3D软件直接融合,自己主动转换为 FBX物体。

     
    注意事项例如以下: 
    1. 
    面数控制 
    在 MAX软件中制作单一 Game Object物体的面数不能超过 65000 个三角形,即 32500个多
    边形 Poly。假设超过这个数量的物体不会显示出来。这就须要我们合理分布多边形和模型
    数量。

     
    打开 MAX场景,选择 File/Properties/Summary Info 能够打开文件属性记录。

     
    当中 Faces能够看到每一个物体的实际数量,个体数量不能超过 65000 个 Faces 面。 
    2. 
    建模控制 
    Unity3D软件支持Line渲染和编辑之后所产生的模型。

    大部分模型都依靠Polygon进行制作。
    在模型表面能够承认多出四边形的面。但不渲染交错的面。 
    默认情况下,U3D引擎是不承认双面材质的,除非使用植物材质球 Nature 类型。

     
    所以在制作窗户、护栏等物体。假设想在两面都能看到模型,那须要制作出厚度。或者复制
    两个面翻转当中一个的 Normal 法线。 
    3. 
    文件的放置 
    模型能够继承 MAX的材质,可是文件的设置要依照下面形式进行放 
    在项目的 Assets目录内。新创建一个 Object 目录。 
    并在当中创建 Materials和 Texture 目录(分别自己主动存放材质球和贴图)。 
    模型物体并列保存在 Object 目录内。 
    这个规律模式不要打乱。否则会破坏整个系统逻辑。

     
    4. 
    材质数量控制 
    假设一个物体给与一个材质球。那么 Unity3D对于材质数量和贴图数量没有不论什么的限制。 
    假设一个物体给与多个材质球。我们须要用 Multi/SubObject 来实现,可是这样的罗列的材质
    球的数量没有严格的控制,但尽量保持在 10 以内,过多的数量会导致一些错误。 
    假设不使用 Multi/SubObject 材质球。也能够选择一些面。然后给与一个材质球。这样系统
    会自己主动将其转换成 Multi/SubObject 材质。

     
    综合而言 Unity3D 软件对于材质的兼容还是非常好的。

     
    5. 
    物体的质感 
    Diffuse 
    Diffuse Bumped 
    Bumped Specular 
    这三种类型为经常使用类型,当中 Bumped 须要添加Normal 法线贴图来实现凹凸。

     
    Decal 
    这样的材质为贴花材质。即相当于 Mask 类型,能够再 Decal(RGBA)贴与一个带有 Alpha 通道
    的图像,形成和原图像相叠加的效果。

     
    Diffuse Detail 
    这样的材质能够创造出污迹和划痕的效果,即相当于 Blend混合材质。 
    Reflective 当中各种类型能够创造出金属反射效果,须要添加 Cubmap 贴图。

     
    Transparent 
    当中各种类型能够创造出透明的效果,须要添加具有 Alpha 的通道贴图。 
    注意:假设要做玻璃贴图,Alpha 假设全是灰色或黑色(即要求全透明),那么 Alpha 就会
    失效,假设要全透明,材质 Alpha当中必须至少有 1 像素为白色。

     
    Nature 
    当中 Soft Occlusion Leaves类型主要应用于片状的树叶材质。 
    6. 
    物体尺寸 
    默认情况下 U3D 系统单位 1 等于 1 米,等于软件 1 单位。

    假设我们制作是依照实际大小比
    例制作,那么导入 U3D引擎会自己主动变成原来的 1%的大小。

     
    由于默认情况下,U3D的 FBXImporter中的 Scale Factor的数值为 0.01。 
    那个我们能够将 Scale Factor 的数值恢复为 1,可是这样会占用模型资源,比較消耗物理缓
    存。

     
    我们也能够将这个物体从 Hierarchy 中选择,并使用 Scale 放大 100 倍,这样的设置能够有非常
    多优点,而且还能通过用脚本制作动画。 
    7. 
    关于复制 
    场景中的灯光布局,反复的模型物体都能够使用系统 Prefab 进行关联复制。这样能够改变
    一个參数的同一时候将全部关联物体属性改变。 
    8. 
    山脉控制 
    在创建山脉之后,选择 Terrain/Set Resolution 能够设置山脉的大小和属性。 
    须要注意的是,默认情况下 Terrain Width 和 Terrain Height为1000 米。假设设置这个数值太
    小,那么绘制草的时候会产生偏移。由于草的尺寸必须降低到 0.1 的单位。

     
    也就是说,山脉在处理 0.1 单位的时候会产生 0.01 的偏差,假设模型太小,这样的偏差是显而
    易见的,所以建议用户不要让模型过小。

     
    9. 
    光晕控制 
    光晕又称为 Lens Flare 即灯光光效。

     
    能够选择一个 GameObject 物体给与Component/Rendering/Lens Flare,并在 Flare 中添加一个
    Standard Assets/Light Flares/50mm Zoom项目。这样在执行之后就会产生光晕。 
    但有时候假设光晕太远太高却看不到。 
    一种办法是将光晕离近,还有一种办法是将全部摄影机 Camera 的 Far clip plane 的数值添加。 
    10. 
    摄影机控制 
    假设场景中有多架摄影机。那么怎样确定第一打开时间所显示的摄影机。就须要设置 Camera
    性能 Depth 号码值,号码值越大优先显示相机。

  • 相关阅读:
    canvas beginPath()的初步理解
    高效取余运算(n-1)&hash原理探讨
    EntityUtils.toString(entity)处理字符集问题解决
    python计算不规则图形面积算法
    VMware与 Device/Credential Guard 不兼容,解决办法及心得
    Java爬取51job保存到MySQL并进行分析
    纯C语言实现循环双向链表创建,插入和删除
    纯C语言实现顺序队列
    纯C语言实现链队
    纯C语言实现链栈
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4828813.html
Copyright © 2011-2022 走看看