3

その上に単純なモデルエンジンを備えた3D地形エンジンをコーディングしました。

地形に長方形のハイトマップを使用しているので、これらの三角形のテクスチャリングは非常に簡単です。

しかし、私のモデルをテクスチャリングする際に、私は少し立ち往生しています。

私はカスタムモデルフォーマットを使用しているので、blenderを使用したり3dsを使用したりするような答えは役に立ちません。

その理由は、OpenGLプログラミングを自分で学ぶためにこの趣味のプロジェクトを開始し、1999年に友人が書いた非常に古いTurbo Pascalソフトウェアレンダラーからモデルを準備していたので、それらを使い続けたからです

私の質問は次のとおりです。

モデルが構成する三角形のテクスチャ座標を生成するためのよく知られたアルゴリズムはありますか?そうでない場合、どのような戦略に従う必要がありますか?

4

2 に答える 2

4

テクスチャ座標を自動的に生成する方法はいくつかありますが、大きな歪みや過度の不連続を伴わずに座標を取得できる簡単な方法は知りません。

最も簡単な方法は、現在のモデル形式からより標準的な形式に変換する小さなプログラムを作成することです。私は過去にこれを行ったことがあり、XNA .x 形式に変換するのは非常に簡単であることがわかりました。あなたが試みる他のものは、これを行ってから3Dモデリングパッケージで利用可能なツールを使用するよりも、最終的には時間がかかり、より困難になると思います.

絶対に変換したくない場合は、単純なものを目指して、結果が良くないことを受け入れることをお勧めします。簡単なアプローチの 1 つは球面投影です。基本的には、モデルの中心から頂点に向かうベクトルに対応する「緯度」と「経度」に基づいて、頂点にテクスチャ座標を割り当てます。

同様に簡単ですが、キャラクターなどの場合は、すべての前向きのポリゴンを x 座標と y 座標だけに投影する方が良いことがよくあります。同様に、後ろ向きのポリゴンについても、オフセットして 2 つのセットが隣り合うようにすることを除きます。

さらに進んで、円筒投影も試すことができます。これらの各射影は、特定の種類の形状に適しています。しかし、一般的には、Blender などの適切な UV アンラッピングよりもはるかに悪いものになります。

于 2010-07-30T10:42:13.093 に答える
1

小さな Blender インポーターと対応するエクスポーターを書くこともできます。Python ではそれぞれ 100 行以下で済みます (モデルのフォーマットは単純なようです)。また、自動 UV マッピング アルゴリズムは2x 100 LOC よりもはるかに複雑です。

さらに別の解決策は、古い形式のサポートをやめて、見つけた最初の .obj ローダー (または何でも) を使用することです。

于 2010-07-30T11:49:32.883 に答える