2012-01-23 8 views
5

次のチュートリアルでは、高さマップで基本的なテクスチャスプラットを実行する方法について説明します。JME3 - 3つ以上のテクスチャを分割する

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

私は優れた結果と、このチュートリアルと演習を追跡することができました。しかし、私はどのように3つ以上のテクスチャを追加するのだろうかと思っています。 Terrain.j3mdファイルの素材パラメータには、Tex1、Tex2、Tex3という3つのテクスチャレイヤしかないので、Terrain.j3mdを使用してこれを行うことはできません。

TerrainLighting.j3mdを使用する必要があります。しかし、これはNormalMapやDiffuseMapなどのパラメータとは非常に異なっており、正確に何が記述されているかを説明するドキュメンテーションやチュートリアルは見つかりません。

答えて

2

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

シェーダは高度なトピックです。 SDKのドキュメントにはshadersの紹介があります。しかしおそらく"Materials, Light, Shadow"についての完全な記事を読んでみたいと思うでしょう。

JME3は、それらを管理するための3つのファイルを使用しています:

  • GLSLの頂点シェーダコードで.vertファイル
  • GLSLフラグメントシェーダコードと.fragファイル
  • シェーダプログラムの定義と.j3mdファイル

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

パラメータの数と種類は固定されています。しかし、あなたは新しいテクスチャのパラメータを追加するTerrain.j3mを変更することができます。

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

Texture2D tex4 

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

3

さらに最近では、テクスチャスプラッティングの新しいマテリアル定義がリリースされ、最大12のテクスチャをサポートし、必要に応じてグローと鏡面テクスチャが追加されました。

材料の名前はTerrainLighting.j3mdであり、thisはそれを使用した(非常に良い)例です。

+0

@RichardTingle thx、リンクを修正しました –

関連する問題