2012-01-23 14 views
5

Il seguente tutorial spiega come eseguire lo splatting di texture di base con le mappe di altezza.JME3 - Splatting di più di tre trame

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

sono stato in grado di seguire questo tutorial ed esercizi con risultati eccellenti. Tuttavia, mi chiedo come aggiungere più di tre trame. Vedo nei parametri materiali del file Terrain.j3md ci sono solo tre livelli di texture: Tex1, Tex2, Tex3 quindi non credo che tu possa farlo usando il Terrain.j3md.

È mia opinione che devi utilizzare TerrainLighting.j3md. Tuttavia, questo è strutturato in modo molto diverso con parametri come NormalMap e DiffuseMap e non riesco a trovare alcuna documentazione/tutorial che spieghi che cosa esattamente sono.

risposta

2

JME3 è una libreria basata su OpenGL che utilizza GLSL shaders per il rendering. È necessario scrivere lo shader personalizzato o modificarne uno esistente per eseguire il rendering personalizzato.

Gli shader sono argomenti avanzati. È possibile trovare un'introduzione a shaders nella documentazione dell'SDK. Ma probabilmente ti piacerebbe leggere gli articoli completi su "Materials, Light, Shadow".

JME3 utilizza tre file per la loro gestione:

  • Un file .vert con il codice dello shader GLSL vertex
  • Un file .frag con il codice dello shader frammento GLSL
  • Un file .j3md con la definizione del programma di shader

Sia i vertex che i framment shader sono solo una parte di codice che utilizza il linguaggio GLSL. Vertex shader viene eseguito una volta per ogni vertice nella vista per calcolare le coordinate dello schermo. Fragment shader viene eseguito una volta per ogni pixel sullo schermo per calcolare i colori. Il file .j3md ha definizioni sui parametri di input (materiali), tecniche (shader) e così via.

Il numero e il tipo dei parametri sono fissi. Ma è possibile modificare Terrain.j3m per aggiungere un nuovo parametro di texture:

Texture2D tex4 

aggiungere un nuovo parametro di input per Terrain.frag:

uniform sampler2D m_Tex4; 

e modificare il codice frammento di shader da utilizzare che nuovo parametro texture come ti piace.

3

Più recentemente, è stata rilasciata una nuova definizione di materiale per lo splatt delle texture, che supporta fino a 12 trame, con opzionalmente ulteriori bagliori e trame speculari.

Il nome del materiale è TerrainLighting.j3md e this è un esempio (molto bello) che lo utilizza.

+0

@RichardTingle thx, risolto il collegamento –