2012-01-23 7 views
5

El siguiente tutorial explica cómo realizar splats de textura básica con mapas de altura.JME3 - Splatting más de tres texturas

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

que era capaz de seguir este tutorial y ejercicios con excelentes resultados. Sin embargo, me pregunto cómo agregar más de tres texturas. Veo en los parámetros de material del archivo Terrain.j3md que solo hay tres capas de texturas: Tex1, Tex2, Tex3, así que no creo que pueda hacerlo con Terrain.j3md.

Supongo que tiene que utilizar TerrainLighting.j3md. Sin embargo, esto se estructura de manera muy diferente con parámetros como NormalMap y DiffuseMap y no puedo encontrar ninguna documentación/tutorial que explique exactamente cuáles son.

Respuesta

2

JME3 es una biblioteca basada en OpenGL que usa GLSL shaders para la representación. Debe escribir su sombreador personalizado o modificar uno existente para realizar un renderizado personalizado.

Los sombreadores son un tema avanzado. Puede encontrar una introducción al shaders en la documentación de SDK. Pero probablemente le gustaría leer artículos completos sobre "Materials, Light, Shadow".

JME3 utiliza tres archivos para su gestión:

  • Un archivo .vert con el código de sombreado GLSL vértice
  • Un archivo .frag con el código de shader de fragmento de GLSL
  • Un archivo .j3md con la definición programa de sombreado

Tanto los sombreadores de vértices como los de fragmentos son solo una pieza de código que utiliza el lenguaje GLSL. Vertex shader se ejecuta una vez para cada vértice en la vista para calcular las coordenadas de la pantalla. El sombreador de fragmentos se ejecuta una vez por cada píxel en la pantalla para calcular los colores. El archivo .j3md tiene definiciones sobre parámetros de entrada (materiales), técnicas (sombreadores), etc.

El número y el tipo de los parámetros son fijos. Pero puede modificar Terrain.j3m añadir un nuevo parámetro de textura:

Texture2D tex4 

Añadir un nuevo parámetro de entrada a Terrain.frag:

uniform sampler2D m_Tex4; 

y modificar el código fragmento de sombreado para su uso que el nuevo parámetro de textura como desee.

3

Más recientemente, se ha lanzado una nueva definición de material para splatting de texturas, que admite hasta 12 texturas, con brillo opcional y texturas especulares adicionales.

El nombre del material es TerrainLighting.j3md, y this es un ejemplo (muy bueno) al usarlo.

+0

@RichardTingle thx, solucionado el enlace –

Cuestiones relacionadas