// Use ward specular instead of phong\r
Boolean WardIso\r
\r
+ // Are we rendering TerrainGrid\r
+ Boolean isTerrainGrid\r
+\r
// Ambient color\r
Color Ambient\r
\r
\r
Defines {\r
TRI_PLANAR_MAPPING : useTriPlanarMapping\r
+ TERRAIN_GRID : isTerrainGrid\r
WARDISO : WardIso\r
\r
DIFFUSEMAP : DiffuseMap\r
varying vec3 wNormal;\r
#endif\r
\r
-\r
-\r
// JME3 lights in world space\r
void lightComputeDir(in vec3 worldPos, in vec4 color, in vec4 position, out vec4 lightDir){\r
float posLight = step(0.5, color.w);\r
void main(){\r
vec4 pos = vec4(inPosition, 1.0);\r
gl_Position = g_WorldViewProjectionMatrix * pos;\r
+ #ifdef TERRAIN_GRID\r
+ texCoord = inTexCoord * 2.0;\r
+ #else\r
texCoord = inTexCoord;\r
+ #endif\r
\r
vec3 wvPosition = (g_WorldViewMatrix * pos).xyz;\r
vec3 wvNormal = normalize(g_NormalMatrix * inNormal);\r
// TERRAIN TEXTURE material
matRock = new Material(assetManager, "Common/MatDefs/Terrain/TerrainLighting.j3md");
matRock.setBoolean("useTriPlanarMapping", false);
+ matRock.setBoolean("isTerrainGrid", true);
// GRASS texture
Texture grass = assetManager.loadTexture("Textures/Terrain/splat/grass.jpg");
}
public void tileAttached(Vector3f cell, TerrainQuad quad) {
- Texture alpha = assetManager.loadTexture("Scenes/TerrainAlphaTest/alphamap_" + Math.abs((int) (cell.x % 2)) * 512 + "_" + Math.abs((int) (cell.y % 2) * 512) + ".png");
+ Texture alpha = assetManager.loadTexture("Scenes/TerrainAlphaTest/alphamap_" + Math.abs((int) (cell.x % 2)) * 512 + "_" + Math.abs((int) (cell.z % 2) * 512) + ".png");
quad.getMaterial().setTexture("AlphaMap", alpha);
if (usePhysics) {
quad.addControl(new RigidBodyControl(new HeightfieldCollisionShape(quad.getHeightMap(), terrain.getLocalScale()), 0));