私は、opengl android でいくつかの複雑な 3d オブジェクトを作成するタスクを与えられました。グーグルで調べたところ、Blender を使用して 3D オブジェクトを作成し、Android プロジェクトにインポートされていることがわかりました。
1191 次
3 に答える
0
...それからそれはアンドロイドプロジェクトにインポートされます
実際には、通常はインポートされませんが、ターゲットアプリケーションによってファイルからロードされるだけです。Cコードを出力したり、OpenGL呼び出しを書き出したりするBlenderのエクスポートスクリプトがいくつかあります。それらを使用しないでください、それらはあなたのプログラムを台無しにするだけです。
OpenCTMのような3Dオブジェクトストレージ用の優れたライブラリがいくつかあります
于 2011-04-28T10:24:24.153 に答える
0
必要なのは、次のように、頂点/法線を表す float の配列です。
float [ ] vertices = {
VertexX, VertexY, VertexZ, NormalX, NormalY, NormalZ,
VertexX, VertexY, VertexZ, NormalX, NormalY, NormalZ,
VertexX, VertexY, VertexZ, NormalX, NormalY, NormalZ,
VertexX, VertexY, VertexZ, NormalX, NormalY, NormalZ,
..., ..., ..., ..., ..., ...,
};
各面には、それに関連付けられた 3 つの一意の頂点ラインがあります。この配列を OBJ ファイルまたは必要な形式から作成したら、理解する必要があるコードを使用して、次のようにしてレンダリングできます。
glVertexPointer(3, GL_FLOAT, sizeof(vertices[0])*6, &vertices[0]);
glNormalPoitner(GL_FLOAT, sizeof(vertices[0])*6, &vertices[3]);
glDrawArrays(GL_TRIANGLES, 0, numVertices);
obj ファイルがどのように配置されているかについては、OBJ 形式に関するウィキペディアのページを参照してください。形式を理解すれば、ファイルの解析は非常に簡単です。
于 2011-05-02T14:37:46.317 に答える