3Dテレインエディターを構築するときの開始点 [閉まっている]


22

地形を上げ、下げ、滑らかにし、テクスチャを付けることができるシンプルなツールを(開始のために)探しています。

それで、そのような地形エディタを作成するために私が経験しなければならないことは何ですか?

そして多分、主題に関して利用可能な貴重なリソースがありますか?

はい、言及するのを忘れましたが、私は3D地形エディタに興味があることを。

回答:


24

「クラシック」な3D地形エディタの場合、手順は次のとおりです。

メッシュ(たとえば、正方形のグリッド、2つの三角形で構成されるすべての正方形)を生成し、すべての頂点が三角形間で共有されるように(交点ごとに1つの法線のみが存在するように)。 ここに画像の説明を入力してください

これを3DMeshにして、プログラムでレンダリングする必要があります。

グリッドの部分を上下に移動するツールを作成します(メッシュ上のマウスカーソルの位置を計算し、メッシュの頂点を変更する必要がありますが、上下のみです)。

大きなテクスチャ(1024x1024x4以上など)を作成し、スプラットマップと呼ばれるものでテクスチャリングします。 ここに画像の説明を入力してください

(たとえば、ピンクではなく、R、G、Bまたはアルファで)ペイントし、それらのい原色(赤、青、緑、アルファ)を​​置き換えるテクスチャを選択するか、さらにそれらによって表されるようにします。

シェーダー(作成する必要がある)は、これらの素敵なテクスチャ(石、草など)にスプラットマップの強度(いもの)を掛け、全体を混ぜて、たとえば(次のように2色のみ) ここに画像の説明を入力してください

大きな画像でごめんなさい、私はこれを職場で一緒に打ちました...


ああ、これで少しわかりやすくなりました。理論的には、3Dメッシュの後、頂点の再配置(上/下)とこの例でのテクスチャリングだけで、「スプラットマップ」の方法を実行しました。その後、シェーダーは「3D」地形に似ていますか?
joltmode

1
3Dメッシュを修正します。シェーダーはメッシュ(頂点シェーダー)に対して特別な処理を行いません。大きな仕事はフラグメントシェーダー(「ピクセルシェーダー」)にあり、スプラットマップからのテクセルルックアップは最終ピクセルに草、石などをどれだけ与えるかです。取得します(もちろん、常に100%である石などの「ベース」テクスチャを使用することもでき、他のテクスチャがそれに飛び散ります)。
ヴァルモンド

6

最初のことは、地形のデータ構造と、エディターに必要なものを明確にすることです。メッシュですか?高さの配列?Minecraftスタイルのボクセルシステムのようなものですか?木や建物などのメッシュテレインフィーチャを追加できる必要がありますか?手動、自動、また​​は両方?私は続けることができますが、あなたはアイデアを得る。

基本的なテレインエディターを書くのはそれほど難しくありませんが、作成するゲーム、したがって作成するテレインのタイプによって、詳細は大きく異なります。


さて、メッシュ/配列と高さ/ボクセルなどは、関連付けられたデータを保存する方法にすぎません。このデータを入力するツールの作成方法に興味がありました。実際、地形編集者が「舞台裏」でどのように見えるか、まったく分かりません。...私はそれを設計revereseことができますが、唯一の私の独自の方法で、私はかかわらず、従うべきいくつかのガイドラインがある賭ける
joltmode

2
-1。これは私にはあまり答えに見えません。あなたはいくつかの質問をしている、それはコメントとしてより適していただろう。
bummzack

5

これは、主にValmondの回答のフォローアップにすぎませんが、コメントとして追加するほど短いとは思えません。

基本的なエディターの作成に慣れたら、GPUで完全にハイトマップを生成して実験することをお勧めします。これは完全にオプションですが、絶えず変化する地形のためにGPUに作業をオフロードする良い方法です。Valmondは、ピクセルシェーダーでテクスチャスプラッティングが行われることについて既に言及しましたが、テクスチャルックアップを使用してグリッド内の頂点を上下させる頂点シェーダーも使用できます。頂点シェーダーを使用してこれを達成する方法に関するチュートリアルを次に示します。シェーダー以外のものはC#およびXNA固有ですが、重要なものはシェーダーコード内にあります。

この場合、CPU側のコードは、メモリに保存されているグレースケールテクスチャの変更を処理するだけです。メッシュグリッドはフラットのままで、頂点はCPUによって更新されません。テクスチャが変更されるたびに、新しいテクスチャをGPUに渡すことができます。

すべてのシェーダーモデルが頂点シェーダーでのテクスチャサンプリングをサポートしているわけではないことに注意してください(たとえば、HLSLでは、少なくともシェーダーモデル3.0が必要です)。


0

OgreのETM http://www.ogre3d.org/addonforums/viewforum.php?f=16を見ると、いくつかのアイデアが得られます。Artifex Terraは、実際の動作を確認したい場合に基づいています。


2
回答をマージして未使用の回答を削除することをお勧めします。
joltmode

GPUで作成/操作された地形については、Gilliam de CarpentierのScapeの記事をご覧ください。非常に有益な情報が記載されています。decarpentier.nl/scape-render
ヨハン

トムがすでに提案したように、Scapeの記事は、地形の生成とレンダリングに関する興味深いリファレンスとしてすでに役立っているかもしれません。しかし、その提案以来、このトピックにさらに関連する別のScapeの記事を投稿し、そのブラシベースの編集パイプラインを完全にカバーしています。だから私はあなたに知らせたいと思います。www.decarpentier.nl/scape-brush-pipeline
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.