Author: oiram
Project: Ogre exporter for 3ds max
Type: plugin
Name: oiramExporter
Supported Versions: 3ds max 9 to 2012
Version: 0.222 on 10/22/2012
Last modified on tuesday 23 of october, 2012 22:25
1. 增加了中文描述信息
2. 增加了使用方法
How to use:
使用方法:
1. copy files to "3dsmax\plugins\" directory
将插件的3个文件复制到3ds max的插件目录下
2. open max file
打开需要导出的max文件
3. File -> Export -> "Save as type" choose "oiramExporter(*.mesh, *.skeleton, *.material)" with any "File name"
选择菜单"文件",选择"导出",选择插件"oiramExporter(*.mesh, *.skeleton, *.material)",文件名任意,导出时不会以此为主
4. in target output directory, you could find a directory's name as same as max file name
在导出的目录中,你可以看到一个目录的名称与max文件的名称相同,里面就是所有导出的文件了
5. use model view editor to render
使用模型查看器来观察模型或场景
Features:
common
通用
--------------
free:
免费版
1. exporting only mesh, only material or only dot scene
提高效率, 避免每次都全部导出, 支持只导出.mesh或.material或是.scene
2. ogre version selection
因为文件格式的细微的不同, 可以选择ogre的不同的版本1.8/1.7/1.6
3. exporting progress dialog
显示导出进度
4. exporting information dialog
显示导出的成功/失败/警告信息
5. save/load animation configuration
通常美术导出动画时, 需要填写多个动画的起始/结束帧, 为了避免修改后重新导出时的重复填写, 支持通过载入上次导出时生成的motion.xml来提高效率
6. fixed function pipeline
完全支持固定管线
7. 3ds max 9/2008/2009/2010/2011/2012 with x86(32bits) and x64(64bits)
支持32位和64位下的3ds max的多个版本: 9/2008/2009/2010/2011/2012
commercial:
商用版
1. vertex compression(save 60%)
顶点数据压缩, 可以节省至少60%的数据量, 通过在vs中解压实现相同的效果, 这种优化方法尤其适用于移动设备
2. cartoon shading(post effet silhouette)
卡通渲染技术, 通过后期特效来实现勾边
3. next generation shading(normalMap, specularMap, emissiveMap, glowMap)
次世代渲染技术, 法线贴图/高光贴图/自发光贴图/辉光贴图
4. hardware skinning
GPU硬件骨骼动画
5. normalMap swizzle, ag for DXTC, rg for PVRTC
法线贴图在压缩后会有精度上的丢失, 对于DXTC5的压缩, 由于alpha和green的占位最高, 所以使用ag来保存normal的x和y, 然后在shader中计算出z以提高normalMap的精度;
对于PVRTC则选择PVRTC_BPP_4的RGB格式, 此时r和g的占位最高, 原理同DXTC
6. LOD generation, save/load LODs configuration
自动根据参数生成多级LOD的mesh数据, 为了避免多次导出时重复填写参数, 支持通过选择上次导出时记录的LOD参数来提高效率
7. 3ds max 2013 with x86(32bits) and x64(64bits)
提供32位和64位的3ds max 2013 unicode版的插件
8. model view editor
模型查看器
9. cartoon/next generation shader
提供完整的卡通渲染和次世代渲染的shader
10. ssao shader
提供完整的SSAO的shader
11. bloom/glow shader
提供后期特效的全屏辉光和泛光的shader
--------------
mesh
网格
--------------
free:
免费版
1. position, diffuse, normal, multiple texcoord, tangent/binormal, bone assignments
支持导出: 顶点、颜色、法线、多层纹理、切线、骨骼绑定数据
2. duplication reverse vertices when two sided, not simple "cullmode none" yet
当美术在max中选择"双面"时, 再也不会像其他插件那样, 只是设置渲染状态为"不裁剪", 而是真的复制一份相反的顶点数据, 从而保证了正/背面的光照等效果
3. morph animation
顶点动画
4. blend weights/indices
骨骼动画数据
5. warning with more then 4 bones assignments and weights re-normalized
当美术不小心在蒙皮时给某个顶点附上超过4根骨骼时, 插件在导出时会给予警告, 同时也会自动取其最大的4个权重, 并且重新归一化所有权重
6. splitting sub-mesh by material
自动根据材质的不同来拆分成多个子mesh
7. unique renaming with legality name
3ds max允许美术对节点有相同的命名, 这会在引擎中导致各种的问题, 另外文件系统也对一些非法字符有限制, 插件对此统一做了重命名处理, 并将非法字符转换成下划线, 而且在多次导出时都会保持一致
8. lighting map with shell material
支持在3ds max中进行光照贴图的烘焙, 选择将光照贴图烘焙到新建的壳材质的漫反射贴图上, 插件在导出时会自动识别
9. re-calculate bounding box with animation mesh
模型在施加了骨骼或顶点动画后, 原先的包裹盒会导致裁剪错误, 插件会根据动画信息导出一个新的包裹盒以解决这种问题
10. geometry reference(instanced) checking
场景中通常会出现大量重复的相同的物体, 比如:树木,通过在制作时, 对于重复的物体使用复制实例的方式, 则相同的mesh只会有一份, 减少了不必要的空间占用
11. texcoords with rotation, wrap/mirror and translation
支持对于纹理坐标的各种变换
12. Gram-Schmidt orthogonalize with tangent, the tangent is float4, w is handedness
确保切线空间的正确, 同时解决了美术使用镜像时, 导致的光照不正确的问题, 通过tangent的第4个分量w来保存切线空间的左右手向
commercial:
商用版
1. weld vertices
模型中有大量的重复顶点, 通过顶点缝合, 大大减少顶点的数量(数据量), 降低渲染开销, 减少约10-20%
2. vertex cache optimization
通过重新整理顶点的存放顺序和渲染顺序, 以提高显卡中顶点缓存的命中率, 提高渲染效率约5%
3. splitting sub-mesh by max bones number with programmable pipeline
硬件实现骨骼动画时, 会受到显卡寄存器数量和shader复杂程度的影响, 通过设置一个批次中的最大骨骼数量, 由插件负责将超出的部分单独分离成一个新的子mesh, 这样就不需要美术去调整
4. LOD generation
根据参数自动生成LOD的mesh数据
5. vertex compression, unsigned char 4 for normal/binormal, unsigned char 4 for blend weights,
short2 for texcoord0, short4 for lighting map(texcoord0/texcoord1)
顶点数据压缩, 将法线和次法线用uchar4表示, 骨骼权重用uchar4, 纹理坐标使用short2, 当使用光照贴图时(因为有两层纹理坐标)使用short4, 通过压缩mesh的大小可以减少60%
--------------
skeleton
骨骼动画
--------------
free:
免费版
1. biped skeletons
支持CS和skin骨骼
2. multiple animation
支持美术将全部动画制作在一个max文件中, 使用起始/结束帧来区分多个动画
3. multiple root bones
场景中允许有多套骨架的骨骼动画存在
4. only 1 skeleton file with same skeletal
当使用avatar时, 多个mesh会蒙皮在相同的一个骨架上, 这时插件会自动识别并只导出一份skeleton, 然后由程序负责在载入多个mesh时分享这份相同的骨骼
5. bone with mirror operation
通常美术在制作对称角色时, 会只建一半的骨骼, 另一半通过复制镜像出来, 插件支持骨骼的镜像操作, 在其他的插件中, 如果美术对骨骼使用镜像操作, 则镜像部分的骨骼动画会出现错误的变形
6. tag-point(helper with named "tag_")
角色的挂载点通过在骨骼上绑定一个名称前缀为"tag_"的helper物体实现, 插件将这种类型的物体解释为"挂载点"
7. warning with non-uniform scale check
对于骨骼的非统一缩放将会产生一条警告, 因为这样的缩放在实时的引擎中是无法模拟的
8. remove unused bone/helper
尤其是CS骨骼在拖出来之后, 会有一些完全没有有效关键帧的骨骼, 或是没有被顶点"引用"的骨骼, 或是既没有动画也没有挂载点命名的helper, 都会被移除以减少数据量的大小和计算
commercial:
商用版
1. skeleton animation optimization, remove unused key frame, less key frame and same result
骨骼动画数据优化, 移除无用的关键帧, 减少关键帧的数量, 但保持最终的渲染效果不变
2. empty animation checking
如果一个动画完全没有关键帧则会被移除
3. remove repeat key frames at animation tail when dot scene exporting
在作为场景导出时, 骨骼动画将会被作为一个不停重复的动画来导出, 此时场景的总帧数可能会大于骨骼的动画帧数, 这时骨骼动画尾部的相同帧将会被移除以保证场景在渲染时效果正确
4. remove empty key frames
移除完全没有变换信息的关键帧
5. remove same key frames with adjacent key frames
移除完全相同的相邻帧
6. remove key frames which could generation with interpolation
移除可以通过插值生成的关键帧
7. animation compression and clean
动画数据压缩和清理, 通过上述优化, 动画的长度信息将会重新计算以保证正确
--------------
material
材质
--------------
free:
免费版
1. 3ds max stanard material conversion(standard, shell, sub material, mix, normal, ifl)
支持全部3ds max的标准材质(壳材质、子材质、混合材质、法线/凹凸、序列帧), 实时渲染中将与3ds max中观察到的完全一致
2. material/texture unique renaming with legality name
3ds max允许美术对材质和纹理有相同的名称和命名, 插件将会对重复的名称进行重命名, 并将非法字符转换成下划线, 而且在多次导出时都会保持一致
3. texture animation with ifl
支持ifl方式的纹理动画, 所有的纹理序列帧将会被导出, 并生成对应的材质信息
4. texcoord transform
完全支持纹理坐标的各种变换
5. diffuse map, specular map, self illumination map, opacity map, bump/normal map, reflection map
支持导出材质中的贴图类型: 漫反射贴图、高光贴图、自发光贴图、透明贴图、凹凸/法线贴图、反射贴图
6. two sided, phong/flat shading, alpha blend, alpha test
支持导出材质中的信息: 双面、phong/flat光照、alpha混合、alpha测试
7. ambient color, diffse color, specular color, emissive color
支持导出材质中的颜色: 环境颜色、漫反射颜色、高光颜色、自发光颜色
8. material renaming when static and dynamic mesh with same material
静态物体和动态物体(骨骼动画、顶点动画)可能拥有相同的材质, 对于这样重名的材质, 在通过使用材质派生来实现使用硬件加速时会产生问题, 插件将会进行重命名操作, 而且在多次导出时都会保持一致
commercial:
商用版
1. image compression to DXTC, PVRTC1 BPP2/4, ETC1
可以根据目标平台的不同, 将贴图压缩成所需的DXTC/PVRTC/ETC1等格式
2. image compression quality option
可以选择贴图压缩的精度和速度
3. normalMap swizzle, ag for DXTC, rg for PVRTC
法线贴图在压缩后会有精度上的丢失, 对于DXTC5的压缩, 由于alpha和green的占位最高, 所以使用ag来保存normal的x和y, 然后在shader中计算出z以提高normalMap的精度;
对于PVRTC则选择PVRTC_BPP_4的RGB格式, 此时r和g的占位最高, 原理同DXTC
4. image power of two checking and resizing
检测贴图的大小是否为2的幂, 并且进行缩放
5. image max size checking and resizing
检测贴图的大小是否超过最大尺寸限制, 并且进行缩放
6. image generation mipmaps
自动生成贴图的mipmaps信息
7. min/max size checking and resizing for PVRTC and ETC1
对于PVRTC和ETC1有着最大尺寸的限制, 当选择压缩贴图为两者时, 会自动对超出2048的贴图的尺寸进行缩放
--------------
scene
场景信息
--------------
free:
免费版
1. ambient color in environment and effects dialog
支持导出在3ds max的environment and effects对话框中的环境光信息
2. standard fog atmospheric in environment and effects dialog
支持导出在3ds max的environment and effects对话框中的雾效信息
3. user defined properties of node(like: sound = x, particle system = y)
有些信息和操作是在3ds max中无法表现的, 例如某物体的属性, 如: 音效、粒子特效、速度等, 通过填写自定义属性, 便于程序在载入时对其进行实现
4. exporting only 1 mesh with geometry reference
场景中通常会出现大量重复的相同的物体, 比如:树木,通过在制作时, 对于重复的物体使用复制实例的方式, 则相同的mesh只会有一份, 减少了不必要的空间占用, 同时.scene中引用的也将会是同一份.mesh
5. exporting node hierarchy
导出正确和完全的节点的层次关系
6. node full transformation
导出全部的节点变换信息
7. node key frame animation track
支持节点动画, 在场景中有一些物体的动画, 不需要使用复杂的骨骼动画或是顶点动画, 其动画通常只是节点的变换动画,
例如实现风车的旋转, 则只需要360度旋转节点就可以了, 实现了相同的效果同时节省了空间和计算量
8. node spline animation track
节点可以实现沿样条线运动
9. node path constraint animation track
节点通过路径约束来实现"绑定"在动画轨迹上
10. tag-point by helper with named "tag_"
场景中可以通过约束实现骨骼绑定, 例如将场景中的鼓锤绑定到鼓手的手上
11. camera animation track, camera target animation track
支持导出完整的摄像机信息, 如远/近裁剪面、fov等, 以及摄像机本身的动画轨迹 和观察点的动画轨迹
12. direction light, spot light, full decay type support, light animation track
支持导出方向光和聚光灯, 所有灯光属性导出后与3ds max中观察到的保持完全一致, 包括灯光的动画轨迹
13. unattached spline animation track
场景中的样条将会被导出成一段轨迹动画, 程序在载入.scene后, 可以在运行将动态得将物体绑定到轨迹动画上, 例如NPC先是沿着预设好的样条轨迹A运动, 当发生某事件后, 再动态重新绑定到样条轨迹B上
commercial:
商用版
1. scene editor
场景查看器
2. dot scene loader source code
.scene的全部载入代码
3. 3D audio system with OpenAL
通过OpenAL实现的音效/音乐库, 实现场景中的3D音效播放, 音效使用wave, 音乐使用ogg
4. supporting particle universe for particle system
粒子系统支持particle universe
--------------
contact us:
联系我们
--------------
email: oiramario@gmail.com
QQ: 4172485
web: http://www.flagon.cn
http://www.opengpu.org/forum.php?mod=viewthread&tid=10579#lastpost