将3D Studio Max模型(3DS / MAX)转换为适用于iOS / OpenGL ES兼容格式的QCAR SDK?

时间:2011-11-04 09:52:16

标签: opengl-es xcode4.2 3dsmax ios5 qcar-sdk

iOS的Quancomm增强现实版(QCAR),它利用OpenGL ES来显示3D模型。它读取了几个文件:

  1. 顶点,纹理坐标,索引和&法线列表(格式为ONE .h头文件,例如Teapot.h)
  2. 纹理文件(PNG格式)
  3. 着色器文件(采用FSH和VSH格式)
  4. 我的问题是,如何将3D Studio Max (3ds/max) file转换为vertices, texture coordinates, indices & normals list?此外,在转换过程中,是否可以根据3DS文件中的设置生成着色器文件?

    这些文件用于iOS版QCAR SDK 1.0版。

    例如,文件内容如下:

    #ifndef _QCAR_TEAPOT_OBJECT_H_
    #define _QCAR_TEAPOT_OBJECT_H_
    
    
    #define NUM_TEAPOT_OBJECT_VERTEX 824
    #define NUM_TEAPOT_OBJECT_INDEX 1024 * 3
    
    
    static const float teapotVertices[NUM_TEAPOT_OBJECT_VERTEX * 3] = 
    {
    // vertices here
    };
    static const float teapotTexCoords[NUM_TEAPOT_OBJECT_VERTEX * 2] =
    {
    // texture coordinates here
    };
    static const float teapotNormals[NUM_TEAPOT_OBJECT_VERTEX * 3] =
    {
    // normals here
    };
    static const unsigned short teapotIndices[NUM_TEAPOT_OBJECT_INDEX] =
    {
    // indices here
    };
    
    #endif
    

1 个答案:

答案 0 :(得分:2)

我相信你所寻找的是:3DS to Header utility

在回答第二个问题时,如果有人编写了3DS可以使用的所有可能的着色器并根据材料属性编写了一些代码来选择和配置着色器,那么3DS材质设置理论上可以转换为着色器。但不,没有直接/简单的方法如何做到这一点。虽然,如果我没记错,3DS没有太多的材料选择,所以可能没有太多的着色器需要这样做。