• Max导出插件


    编写Max导出插件目前有两种选择,一种是使用max脚本,另一种就是使用max SDK了。
    使用Max SDK又分为使用Max标准API和IGame接口。

    我使用IGame接口编写Max导出插件。
    IGame接口就是在Max标准API的基础上有针对性地对游戏导出进行了封装,将通常繁琐的操作调用简化成一个函数,与此同时还可以通过IGame接口获得标准API的数据结构从而使用标准API进行一些复杂的操作。

    要想编写Max导出插件首先需要对Max内部对数据的组织形式有一个大致的了解。
    Max的数据不论是材质还是骨骼还是网格都是使用树结构保存,每个数据都在相应的节点上,通过便利节点,获得节点类型并作相应的转换便可那到相应的数据,从而进一步导出。
    这里需要注意的是,针对游戏常用的导出(材质,动画,网格)是这样的。材质使用一颗独立的树,并且每个材质都有子材质,导出时需要注意。骨骼和网格都存储在场景树下,并通过标示来区分该节点是网格节点还是骨骼节点(或其他节点,游戏一般只关注网格和骨骼),网格节点转换为网格类型,并调用pMesh->SetCreateOptimizedNormalList(); pMesh->InitializeData();函数,这样光滑组才能够生效。骨骼节点那就是拿出该节点的变换矩阵就行了,这既是骨骼动画的矩阵,同时需要注意的是SetStaticFrame(),函数之影响骨骼变换矩阵,也就是说要想到处骨骼动画需要调用该函数来设置动画贞,这样得到的骨骼变换矩阵才是当贞的。

    这里说一下.x文件和ogre的.xml各式的区别
    .x文件可以指定到每个三角形使用的材质,因此它能够看到网格(或者子网格)使用不同的材质,表现上比较灵活,但是这样带来的后果是dp会比较高,因为网格内由于三角面使用的材质不同,而无法一次渲染,也就是说它的渲染单位是三角面而不是网格。
    在有就是.x文件对于手字母不能是数字,各种名称不能出现中文等比较敏感,搞不好会无法显示(ms的mview.exe).

    ogre则是必须要子网格内所有三角形只能使用同一个材质,因此对美术制作有一定要求,但它能够保证一个子网格在一个dp就画出,效率较高。

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Leo1981816/archive/2010/04/25/5527190.aspx

  • 相关阅读:
    Three.js中引入dat.gui库实现界面组件控制动画速度变量
    Three.js中使用requestAnimationFrame方法实现立方体转动和小球跳动的动画
    Windows下使用Java API操作HDFS的常用方法
    Windows下配置Hadoop的Java开发环境以及用Java API操作HDFS
    HDFS的访问方式之HDFS shell的常用命令
    CentOS7上搭建Hadoop集群(入门级)
    CentOS7中怎样安装JDK与配置环境变量
    【2021-08-05】哪怕天踏下来,也要当被子盖
    【2021-08-04】连岳摘抄
    【2021-08-03】里程碑
  • 原文地址:https://www.cnblogs.com/lancidie/p/1951089.html
Copyright © 2020-2023  润新知