文章

车模资产规范

以Kanzi studio开发流程为例


命名规范

  • 为了项目车型平台化, 车模贴图素材的命名必须一致。(即多款车型的对应贴图名称一致,可以减少开发量)

模型制作规范

  • 引擎支持(.dae)(.fbx)(.obj)格式,通常使用.fbx格式导入。
    Kanzi studio引擎为右手坐标系,默认世界坐标 +Y轴朝上、+Z轴朝前、+X轴朝左
  • Kanzi默认单位为

  • Mesh:
    1. 高模:整车模型总面数不得超过15w三角面
    2. 低模:整车模型总面数不得超过5w三角面
    3. 模型不要存在四面边以上的Mesh (因为渲染的最小单位是三角面。四边以上GPU会以最近2点连接导致模型有差异)
  • Vertex:
    1. 单个Mesh的顶点数不能超过65536个(OpenGL限制,超过引擎会强制拆分Mesh)使用网格
    2. 没有特殊开发要求,Mesh的顶点需要都合并。(减少GPU的顶点缓存)
  • Material:
    1. 单个Mesh单个Material
    2. 建议导出前使用默认的Lambert、Phong光照模型。第三方软件内的其他着色器可能导致报错。
    3. 尽量使用ID Color的材质方案去减少Materials数量。
  • Transfrom:
    1. 导出前确保模型的Scale和Rotation的值为0,如果没有请在DCC软件中冻结变换。

      注意点: 在开发过程中,不少设计小伙伴使用的是Blender。Blender在导入Kanzi时,总会出现Kanzi引擎中有莫名奇妙的Rotate Value。

      因为在开发工程中,必须保证数模数据的干净。在0位姿态下,车模Transform属性上面有值,会影响后续许多的开发工作。所以必须保证车模数模数据的干净。

      RootCause:因为在Blender中,虽同为右手坐标系,但默认世界坐标是+Z朝上,+Y朝前,+X朝右边。与Kanzi的默认世界坐标不同,所以Kanzi中为了显示正确模型朝向,必然会在模型上面添加Rotate Value,达到显示上的正确性。

      solution:在Blender中,将车模旋转至+Y朝上,+Z朝前的朝向。即在Blender中带Rotate Value,Kanzi中则会是一个干净的数据车模。

  • Animation:
    1. Kanzi 会按需将关键帧加载到内存中,所以没有特殊要求导出时不要使用烘焙动画。动画
    2. Kanzi中动画默认30帧,导入的动画资源也需要匹配30帧。
    3. 动画导出时,确保动画的起始帧和结束帧是关键帧,否则可能导致动画播放不完整。
    4. 请不要用C4D、Blender或其他DCC插件去制作动画,那些效果是通过软件对应的工具实现的,并不具有通用性,不会存储在FBX里面。如果有需求就使用VAT技术方案实现。

贴图类型

  • 贴图格式:
    1. 输出到工程目录中的贴图尽量采用png格式,有特别需求时允许用jpg格式,其他格式一律禁止。
    2. 不透明的图片采用PNG 24位RGB格式
    3. 透明的图片采用PNG 32位RGBA格式
    4. JPG:有损压缩位图,解码速度慢,但是加载速度快,使用非常规分辨率的大贴图。
    5. PNG:无损压缩位图,精度高,解码速度快,优先使用。
  • 贴图尺寸:
    1. 模型贴图尺寸要求是2次方的幂,长度、宽度小于等于1024。
    2. AO、Roughness、Metalness可以合在一起使用,shader中用分别读取通道取值。
  • 压缩类型:
    1. 在Kanzi中设置ASTC压缩,作用是用来取值的相关的贴图请取消sRGB。

注意点: 千万不要把低精度的贴图放大使用,UV尽量不要分的太碎,越碎的UV模型fbx体积占容量越大。

本文由作者按照 CC BY 4.0 进行授权

热门标签