5

次のチュートリアルでは、高さマップを使用して基本的なテクスチャ スプラッティングを実行する方法について説明します。

http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_terrain

このチュートリアルと演習に従うことができ、優れた結果が得られました。しかし、3つ以上のテクスチャを追加する方法が気になります。Terrain.j3md ファイルのマテリアル パラメータには、Tex1、Tex2、Tex3 の 3 つのテクスチャ レイヤーしかないので、Terrain.j3md を使用してこれを実行できるとは思えません。

TerrainLighting.j3md を使用する必要があると思います。ただし、これは NormalMap や DiffuseMap などのパラメーターを使用して構造が大きく異なり、これらが正確に何であるかを説明するドキュメント/チュートリアルが見つかりません。

4

2 に答える 2

2

JME3 は、レンダリングにGLSL シェーダを使用する OpenGL ベースのライブラリです。カスタム レンダリングを実行するには、カスタム シェーダーを作成するか、既存のシェーダーを変更する必要があります。

シェーダーは高度なトピックです。SDK ドキュメントでシェーダーの概要を見つけることができます。しかし、おそらく「マテリアル、ライト、シャドウ」に関する完全な記事を読みたいと思うでしょう。

JME3 は、次の 3 つのファイルを使用してそれらを管理します。

  • .vertGLSL 頂点シェーダー コードを含むファイル
  • .fragGLSL フラグメント シェーダー コードを含むファイル
  • .j3mdシェーダー プログラム定義を含むファイル

頂点シェーダーとフラグメント シェーダーはどちらも、GLSL 言語を使用した単なるコードです。頂点シェーダーは、ビュー内の頂点ごとに 1 回実行され、画面座標が計算されます。フラグメント シェーダーは、画面上の各ピクセルに対して 1 回実行され、色が計算されます。.j3md ファイルには、入力パラメーター (マテリアル)、テクニック (シェーダー) などに関する定義が含まれています。

パラメータの数と型は固定されています。ただし、変更Terrain.j3mして新しいテクスチャ パラメータを追加できます。

Texture2D tex4

新しい入力パラメータを に追加Terrain.frag:

uniform sampler2D m_Tex4;

そして、フラグメント シェーダー コードを変更して、その新しいテクスチャ パラメーターを好きなように使用します。

于 2012-03-06T20:37:31.233 に答える