Fix: fixed a bug when using alphamaps with TerrainGrid
git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@7904 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
		
							parent
							
								
									310193018d
								
							
						
					
					
						commit
						dfef1a6dfe
					
				| @ -8,6 +8,9 @@ MaterialDef Terrain Lighting { | ||||
|         // Use ward specular instead of phong | ||||
|         Boolean WardIso | ||||
| 
 | ||||
|         // Are we rendering TerrainGrid | ||||
|         Boolean isTerrainGrid | ||||
| 
 | ||||
|         // Ambient color | ||||
|         Color Ambient | ||||
| 
 | ||||
| @ -113,6 +116,7 @@ MaterialDef Terrain Lighting { | ||||
| 
 | ||||
|         Defines { | ||||
|             TRI_PLANAR_MAPPING : useTriPlanarMapping | ||||
|             TERRAIN_GRID : isTerrainGrid | ||||
|             WARDISO   : WardIso | ||||
| 
 | ||||
|             DIFFUSEMAP : DiffuseMap | ||||
|  | ||||
| @ -36,8 +36,6 @@ varying vec4 SpecularSum; | ||||
|   varying vec3 wNormal; | ||||
| #endif | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| // JME3 lights in world space | ||||
| void lightComputeDir(in vec3 worldPos, in vec4 color, in vec4 position, out vec4 lightDir){ | ||||
|     float posLight = step(0.5, color.w); | ||||
| @ -52,7 +50,11 @@ void lightComputeDir(in vec3 worldPos, in vec4 color, in vec4 position, out vec4 | ||||
| void main(){ | ||||
|     vec4 pos = vec4(inPosition, 1.0); | ||||
|     gl_Position = g_WorldViewProjectionMatrix * pos; | ||||
|     #ifdef TERRAIN_GRID | ||||
|     texCoord = inTexCoord * 2.0; | ||||
|     #else | ||||
|     texCoord = inTexCoord; | ||||
|     #endif | ||||
| 
 | ||||
|     vec3 wvPosition = (g_WorldViewMatrix * pos).xyz; | ||||
|     vec3 wvNormal  = normalize(g_NormalMatrix * inNormal); | ||||
|  | ||||
| @ -87,6 +87,7 @@ public class TerrainGridAlphaMapTest extends SimpleApplication { | ||||
|         // 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"); | ||||
| @ -189,7 +190,7 @@ public class TerrainGridAlphaMapTest extends SimpleApplication { | ||||
|             } | ||||
| 
 | ||||
|             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)); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user