2

ガトリング ガンが発射されるアニメーションを作成する必要があります (複雑である必要はありません。これは単なる練習です)。次のような銃の基本バージョンを描きました。

ガトリング砲

色を気にしないでください - 私は銃の特定の部分のエッジがどこにあるかを見ることができるようにそれらを作りました. 今、私はいくつかのテクスチャを使用して見栄えを良くしたいと思います - モロまたはメタリックカラーのようなもの - example 1またはexample2。テクスチャをロードする方法と 2D オブジェクトに使用する方法は知っていますが、このテクスチャを図面全体に使用する可能性があるかどうか、またはすべての部分に個別にテクスチャを使用する必要があるかどうかはわかりません。これは、bmp ファイルからテクスチャをロードして使用できるようにするのに対応する私のコードです。

void initTexture(string fileName)
{
    loadBmp(fileName.c_str());
    textureId = 13;
    glBindTexture(GL_TEXTURE_2D, textureId); //Tell OpenGL which texture to edit
    glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
    //Map the image to the texture
    glTexImage2D(GL_TEXTURE_2D,                //Always GL_TEXTURE_2D
                 0,                            //0 for now
                 GL_RGB,                       //Format OpenGL uses for image
                 tex.info.biWidth, tex.info.biHeight,  //Width and height
                 0,                            //The border of the image
                 GL_RGB, //GL_RGB, because pixels are stored in RGB format
                 GL_UNSIGNED_BYTE, //GL_UNSIGNED_BYTE, because pixels are stored
                                   //as unsigned numbers
                 tex.px);               //The actual pixel data

}

loadBmp() はビットマップファイルをロードする関数です。インターネットとスタックオーバーフローで何かを検索しようとしましたが、立方体や球体に関するすべての例があり、役に立ちません。この図面にテクスチャを配置するにはどうすればよいですか?

4

1 に答える 1

2

テクスチャ マッピングでは、(手動で) テクスチャ座標を各頂点に割り当てる必要があります。各面に個別のピクセルを与えることによって、自動テクスチャ座標生成、またはテクスチャ座標なしで回避する方法がいくつかあります (ディズニー アニメーションは、コンピュータ アニメーション映画用の後者の方法を開拓しました)。

モデリングに使用したプログラムを指定しなかったので、Blender のテクスチャ UV マッピングに関するチュートリアルを参照します。

http://wiki.blender.org/index.php/Doc:2.6/Manual/Textures/Mapping/UV/Unwrappings

これは間違っている、間違っている、間違っているので、銃を「コード化」したとは言わないでください。

テクスチャ座標を取得したら、それらを別の頂点属性として OpenGL に渡します。

于 2013-04-16T22:55:58.407 に答える