test cases and fix for issue #880
This commit is contained in:
parent
4323c4101a
commit
025b27c96d
@ -31,7 +31,6 @@
|
|||||||
*/
|
*/
|
||||||
package com.jme3.material.plugins;
|
package com.jme3.material.plugins;
|
||||||
|
|
||||||
import com.jme3.material.logic.*;
|
|
||||||
import com.jme3.asset.*;
|
import com.jme3.asset.*;
|
||||||
import com.jme3.material.*;
|
import com.jme3.material.*;
|
||||||
import com.jme3.material.RenderState.BlendEquation;
|
import com.jme3.material.RenderState.BlendEquation;
|
||||||
@ -39,7 +38,7 @@ import com.jme3.material.RenderState.BlendMode;
|
|||||||
import com.jme3.material.RenderState.FaceCullMode;
|
import com.jme3.material.RenderState.FaceCullMode;
|
||||||
import com.jme3.material.TechniqueDef.LightMode;
|
import com.jme3.material.TechniqueDef.LightMode;
|
||||||
import com.jme3.material.TechniqueDef.ShadowMode;
|
import com.jme3.material.TechniqueDef.ShadowMode;
|
||||||
import com.jme3.material.logic.StaticPassLightingLogic;
|
import com.jme3.material.logic.*;
|
||||||
import com.jme3.math.ColorRGBA;
|
import com.jme3.math.ColorRGBA;
|
||||||
import com.jme3.math.Vector2f;
|
import com.jme3.math.Vector2f;
|
||||||
import com.jme3.math.Vector3f;
|
import com.jme3.math.Vector3f;
|
||||||
@ -51,7 +50,6 @@ import com.jme3.util.PlaceholderAssets;
|
|||||||
import com.jme3.util.blockparser.BlockLanguageParser;
|
import com.jme3.util.blockparser.BlockLanguageParser;
|
||||||
import com.jme3.util.blockparser.Statement;
|
import com.jme3.util.blockparser.Statement;
|
||||||
import com.jme3.util.clone.Cloner;
|
import com.jme3.util.clone.Cloner;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -451,8 +449,15 @@ public class J3MLoader implements AssetLoader {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean parseBoolean(String word){
|
private boolean parseBoolean(String word) {
|
||||||
return word != null && word.equals("On");
|
switch (word) {
|
||||||
|
case "On":
|
||||||
|
return true;
|
||||||
|
case "Off":
|
||||||
|
return false;
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void readRenderStateStatement(Statement statement) throws IOException{
|
private void readRenderStateStatement(Statement statement) throws IOException{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2009-2016 jMonkeyEngine
|
* Copyright (c) 2009-2018 jMonkeyEngine
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -38,14 +38,12 @@ import com.jme3.scene.Geometry;
|
|||||||
import com.jme3.scene.shape.Box;
|
import com.jme3.scene.shape.Box;
|
||||||
import com.jme3.shader.Shader;
|
import com.jme3.shader.Shader;
|
||||||
import com.jme3.system.*;
|
import com.jme3.system.*;
|
||||||
|
import java.util.*;
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.runners.MockitoJUnitRunner;
|
import org.mockito.runners.MockitoJUnitRunner;
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
|
||||||
|
|
||||||
@RunWith(MockitoJUnitRunner.class)
|
@RunWith(MockitoJUnitRunner.class)
|
||||||
public class LoadJ3mdTest {
|
public class LoadJ3mdTest {
|
||||||
|
|
||||||
@ -59,6 +57,24 @@ public class LoadJ3mdTest {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void testBadBooleans1() {
|
||||||
|
supportGlsl(100);
|
||||||
|
material("bad-booleans1.j3md"); // DepthTest yes
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void testBadBooleans2() {
|
||||||
|
supportGlsl(100);
|
||||||
|
material("bad-booleans2.j3md"); // DepthWrite on
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void testBadBooleans3() {
|
||||||
|
supportGlsl(100);
|
||||||
|
material("bad-booleans3.j3md"); // Wireframe true
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testShaderNodesMaterialDefLoading() {
|
public void testShaderNodesMaterialDefLoading() {
|
||||||
supportGlsl(100);
|
supportGlsl(100);
|
||||||
|
199
jme3-core/src/test/resources/bad-booleans1.j3md
Normal file
199
jme3-core/src/test/resources/bad-booleans1.j3md
Normal file
@ -0,0 +1,199 @@
|
|||||||
|
MaterialDef bad-booleans1 {
|
||||||
|
|
||||||
|
MaterialParameters {
|
||||||
|
Texture2D ColorMap
|
||||||
|
Texture2D LightMap
|
||||||
|
Color Color (Color)
|
||||||
|
Boolean VertexColor (UseVertexColor)
|
||||||
|
Float PointSize : 1.0
|
||||||
|
Boolean SeparateTexCoord
|
||||||
|
|
||||||
|
// Texture of the glowing parts of the material
|
||||||
|
Texture2D GlowMap
|
||||||
|
// The glow color of the object
|
||||||
|
Color GlowColor
|
||||||
|
|
||||||
|
// For instancing
|
||||||
|
Boolean UseInstancing
|
||||||
|
|
||||||
|
// For hardware skinning
|
||||||
|
Int NumberOfBones
|
||||||
|
Matrix4Array BoneMatrices
|
||||||
|
|
||||||
|
// For Morph animation
|
||||||
|
FloatArray MorphWeights
|
||||||
|
Int NumberOfMorphTargets
|
||||||
|
Int NumberOfTargetsBuffers
|
||||||
|
|
||||||
|
// Alpha threshold for fragment discarding
|
||||||
|
Float AlphaDiscardThreshold (AlphaTestFallOff)
|
||||||
|
|
||||||
|
//Shadows
|
||||||
|
Int FilterMode
|
||||||
|
Boolean HardwareShadows
|
||||||
|
|
||||||
|
Texture2D ShadowMap0
|
||||||
|
Texture2D ShadowMap1
|
||||||
|
Texture2D ShadowMap2
|
||||||
|
Texture2D ShadowMap3
|
||||||
|
//pointLights
|
||||||
|
Texture2D ShadowMap4
|
||||||
|
Texture2D ShadowMap5
|
||||||
|
|
||||||
|
Float ShadowIntensity
|
||||||
|
Vector4 Splits
|
||||||
|
Vector2 FadeInfo
|
||||||
|
|
||||||
|
Matrix4 LightViewProjectionMatrix0
|
||||||
|
Matrix4 LightViewProjectionMatrix1
|
||||||
|
Matrix4 LightViewProjectionMatrix2
|
||||||
|
Matrix4 LightViewProjectionMatrix3
|
||||||
|
//pointLight
|
||||||
|
Matrix4 LightViewProjectionMatrix4
|
||||||
|
Matrix4 LightViewProjectionMatrix5
|
||||||
|
Vector3 LightPos
|
||||||
|
Vector3 LightDir
|
||||||
|
|
||||||
|
Float PCFEdge
|
||||||
|
|
||||||
|
Float ShadowMapSize
|
||||||
|
|
||||||
|
Boolean BackfaceShadows: true
|
||||||
|
}
|
||||||
|
|
||||||
|
Technique {
|
||||||
|
VertexShader GLSL100 GLSL150: Common/MatDefs/Misc/Unshaded.vert
|
||||||
|
FragmentShader GLSL100 GLSL150: Common/MatDefs/Misc/Unshaded.frag
|
||||||
|
|
||||||
|
WorldParameters {
|
||||||
|
WorldViewProjectionMatrix
|
||||||
|
ViewProjectionMatrix
|
||||||
|
ViewMatrix
|
||||||
|
}
|
||||||
|
|
||||||
|
Defines {
|
||||||
|
INSTANCING : UseInstancing
|
||||||
|
SEPARATE_TEXCOORD : SeparateTexCoord
|
||||||
|
HAS_COLORMAP : ColorMap
|
||||||
|
HAS_LIGHTMAP : LightMap
|
||||||
|
HAS_VERTEXCOLOR : VertexColor
|
||||||
|
HAS_POINTSIZE : PointSize
|
||||||
|
HAS_COLOR : Color
|
||||||
|
NUM_BONES : NumberOfBones
|
||||||
|
DISCARD_ALPHA : AlphaDiscardThreshold
|
||||||
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
||||||
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Technique PreNormalPass {
|
||||||
|
|
||||||
|
VertexShader GLSL100 GLSL150 : Common/MatDefs/SSAO/normal.vert
|
||||||
|
FragmentShader GLSL100 GLSL150 : Common/MatDefs/SSAO/normal.frag
|
||||||
|
|
||||||
|
WorldParameters {
|
||||||
|
WorldViewProjectionMatrix
|
||||||
|
WorldViewMatrix
|
||||||
|
NormalMatrix
|
||||||
|
ViewProjectionMatrix
|
||||||
|
ViewMatrix
|
||||||
|
}
|
||||||
|
|
||||||
|
Defines {
|
||||||
|
NUM_BONES : NumberOfBones
|
||||||
|
INSTANCING : UseInstancing
|
||||||
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
||||||
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Technique PreShadow {
|
||||||
|
|
||||||
|
VertexShader GLSL100 GLSL150 : Common/MatDefs/Shadow/PreShadow.vert
|
||||||
|
FragmentShader GLSL100 GLSL150 : Common/MatDefs/Shadow/PreShadow.frag
|
||||||
|
|
||||||
|
WorldParameters {
|
||||||
|
WorldViewProjectionMatrix
|
||||||
|
WorldViewMatrix
|
||||||
|
ViewProjectionMatrix
|
||||||
|
ViewMatrix
|
||||||
|
}
|
||||||
|
|
||||||
|
Defines {
|
||||||
|
COLOR_MAP : ColorMap
|
||||||
|
DISCARD_ALPHA : AlphaDiscardThreshold
|
||||||
|
NUM_BONES : NumberOfBones
|
||||||
|
INSTANCING : UseInstancing
|
||||||
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
||||||
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
||||||
|
}
|
||||||
|
|
||||||
|
ForcedRenderState {
|
||||||
|
FaceCull Off
|
||||||
|
DepthTest yes
|
||||||
|
DepthWrite On
|
||||||
|
PolyOffset 5 3
|
||||||
|
ColorWrite Off
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Technique PostShadow {
|
||||||
|
VertexShader GLSL100 GLSL150: Common/MatDefs/Shadow/PostShadow.vert
|
||||||
|
FragmentShader GLSL100 GLSL150: Common/MatDefs/Shadow/PostShadow.frag
|
||||||
|
|
||||||
|
WorldParameters {
|
||||||
|
WorldViewProjectionMatrix
|
||||||
|
WorldMatrix
|
||||||
|
ViewProjectionMatrix
|
||||||
|
ViewMatrix
|
||||||
|
}
|
||||||
|
|
||||||
|
Defines {
|
||||||
|
HARDWARE_SHADOWS : HardwareShadows
|
||||||
|
FILTER_MODE : FilterMode
|
||||||
|
PCFEDGE : PCFEdge
|
||||||
|
DISCARD_ALPHA : AlphaDiscardThreshold
|
||||||
|
COLOR_MAP : ColorMap
|
||||||
|
SHADOWMAP_SIZE : ShadowMapSize
|
||||||
|
FADE : FadeInfo
|
||||||
|
PSSM : Splits
|
||||||
|
POINTLIGHT : LightViewProjectionMatrix5
|
||||||
|
NUM_BONES : NumberOfBones
|
||||||
|
INSTANCING : UseInstancing
|
||||||
|
BACKFACE_SHADOWS: BackfaceShadows
|
||||||
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
||||||
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
||||||
|
}
|
||||||
|
|
||||||
|
ForcedRenderState {
|
||||||
|
Blend Modulate
|
||||||
|
DepthWrite Off
|
||||||
|
PolyOffset -0.1 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Technique Glow {
|
||||||
|
|
||||||
|
VertexShader GLSL100 GLSL150: Common/MatDefs/Misc/Unshaded.vert
|
||||||
|
FragmentShader GLSL100 GLSL150: Common/MatDefs/Light/Glow.frag
|
||||||
|
|
||||||
|
WorldParameters {
|
||||||
|
WorldViewProjectionMatrix
|
||||||
|
ViewProjectionMatrix
|
||||||
|
ViewMatrix
|
||||||
|
}
|
||||||
|
|
||||||
|
Defines {
|
||||||
|
NEED_TEXCOORD1
|
||||||
|
HAS_GLOWMAP : GlowMap
|
||||||
|
HAS_GLOWCOLOR : GlowColor
|
||||||
|
NUM_BONES : NumberOfBones
|
||||||
|
INSTANCING : UseInstancing
|
||||||
|
HAS_POINTSIZE : PointSize
|
||||||
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
||||||
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
199
jme3-core/src/test/resources/bad-booleans2.j3md
Normal file
199
jme3-core/src/test/resources/bad-booleans2.j3md
Normal file
@ -0,0 +1,199 @@
|
|||||||
|
MaterialDef bad-booleans2 {
|
||||||
|
|
||||||
|
MaterialParameters {
|
||||||
|
Texture2D ColorMap
|
||||||
|
Texture2D LightMap
|
||||||
|
Color Color (Color)
|
||||||
|
Boolean VertexColor (UseVertexColor)
|
||||||
|
Float PointSize : 1.0
|
||||||
|
Boolean SeparateTexCoord
|
||||||
|
|
||||||
|
// Texture of the glowing parts of the material
|
||||||
|
Texture2D GlowMap
|
||||||
|
// The glow color of the object
|
||||||
|
Color GlowColor
|
||||||
|
|
||||||
|
// For instancing
|
||||||
|
Boolean UseInstancing
|
||||||
|
|
||||||
|
// For hardware skinning
|
||||||
|
Int NumberOfBones
|
||||||
|
Matrix4Array BoneMatrices
|
||||||
|
|
||||||
|
// For Morph animation
|
||||||
|
FloatArray MorphWeights
|
||||||
|
Int NumberOfMorphTargets
|
||||||
|
Int NumberOfTargetsBuffers
|
||||||
|
|
||||||
|
// Alpha threshold for fragment discarding
|
||||||
|
Float AlphaDiscardThreshold (AlphaTestFallOff)
|
||||||
|
|
||||||
|
//Shadows
|
||||||
|
Int FilterMode
|
||||||
|
Boolean HardwareShadows
|
||||||
|
|
||||||
|
Texture2D ShadowMap0
|
||||||
|
Texture2D ShadowMap1
|
||||||
|
Texture2D ShadowMap2
|
||||||
|
Texture2D ShadowMap3
|
||||||
|
//pointLights
|
||||||
|
Texture2D ShadowMap4
|
||||||
|
Texture2D ShadowMap5
|
||||||
|
|
||||||
|
Float ShadowIntensity
|
||||||
|
Vector4 Splits
|
||||||
|
Vector2 FadeInfo
|
||||||
|
|
||||||
|
Matrix4 LightViewProjectionMatrix0
|
||||||
|
Matrix4 LightViewProjectionMatrix1
|
||||||
|
Matrix4 LightViewProjectionMatrix2
|
||||||
|
Matrix4 LightViewProjectionMatrix3
|
||||||
|
//pointLight
|
||||||
|
Matrix4 LightViewProjectionMatrix4
|
||||||
|
Matrix4 LightViewProjectionMatrix5
|
||||||
|
Vector3 LightPos
|
||||||
|
Vector3 LightDir
|
||||||
|
|
||||||
|
Float PCFEdge
|
||||||
|
|
||||||
|
Float ShadowMapSize
|
||||||
|
|
||||||
|
Boolean BackfaceShadows: true
|
||||||
|
}
|
||||||
|
|
||||||
|
Technique {
|
||||||
|
VertexShader GLSL100 GLSL150: Common/MatDefs/Misc/Unshaded.vert
|
||||||
|
FragmentShader GLSL100 GLSL150: Common/MatDefs/Misc/Unshaded.frag
|
||||||
|
|
||||||
|
WorldParameters {
|
||||||
|
WorldViewProjectionMatrix
|
||||||
|
ViewProjectionMatrix
|
||||||
|
ViewMatrix
|
||||||
|
}
|
||||||
|
|
||||||
|
Defines {
|
||||||
|
INSTANCING : UseInstancing
|
||||||
|
SEPARATE_TEXCOORD : SeparateTexCoord
|
||||||
|
HAS_COLORMAP : ColorMap
|
||||||
|
HAS_LIGHTMAP : LightMap
|
||||||
|
HAS_VERTEXCOLOR : VertexColor
|
||||||
|
HAS_POINTSIZE : PointSize
|
||||||
|
HAS_COLOR : Color
|
||||||
|
NUM_BONES : NumberOfBones
|
||||||
|
DISCARD_ALPHA : AlphaDiscardThreshold
|
||||||
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
||||||
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Technique PreNormalPass {
|
||||||
|
|
||||||
|
VertexShader GLSL100 GLSL150 : Common/MatDefs/SSAO/normal.vert
|
||||||
|
FragmentShader GLSL100 GLSL150 : Common/MatDefs/SSAO/normal.frag
|
||||||
|
|
||||||
|
WorldParameters {
|
||||||
|
WorldViewProjectionMatrix
|
||||||
|
WorldViewMatrix
|
||||||
|
NormalMatrix
|
||||||
|
ViewProjectionMatrix
|
||||||
|
ViewMatrix
|
||||||
|
}
|
||||||
|
|
||||||
|
Defines {
|
||||||
|
NUM_BONES : NumberOfBones
|
||||||
|
INSTANCING : UseInstancing
|
||||||
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
||||||
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Technique PreShadow {
|
||||||
|
|
||||||
|
VertexShader GLSL100 GLSL150 : Common/MatDefs/Shadow/PreShadow.vert
|
||||||
|
FragmentShader GLSL100 GLSL150 : Common/MatDefs/Shadow/PreShadow.frag
|
||||||
|
|
||||||
|
WorldParameters {
|
||||||
|
WorldViewProjectionMatrix
|
||||||
|
WorldViewMatrix
|
||||||
|
ViewProjectionMatrix
|
||||||
|
ViewMatrix
|
||||||
|
}
|
||||||
|
|
||||||
|
Defines {
|
||||||
|
COLOR_MAP : ColorMap
|
||||||
|
DISCARD_ALPHA : AlphaDiscardThreshold
|
||||||
|
NUM_BONES : NumberOfBones
|
||||||
|
INSTANCING : UseInstancing
|
||||||
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
||||||
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
||||||
|
}
|
||||||
|
|
||||||
|
ForcedRenderState {
|
||||||
|
FaceCull Off
|
||||||
|
DepthTest On
|
||||||
|
DepthWrite on
|
||||||
|
PolyOffset 5 3
|
||||||
|
ColorWrite Off
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Technique PostShadow {
|
||||||
|
VertexShader GLSL100 GLSL150: Common/MatDefs/Shadow/PostShadow.vert
|
||||||
|
FragmentShader GLSL100 GLSL150: Common/MatDefs/Shadow/PostShadow.frag
|
||||||
|
|
||||||
|
WorldParameters {
|
||||||
|
WorldViewProjectionMatrix
|
||||||
|
WorldMatrix
|
||||||
|
ViewProjectionMatrix
|
||||||
|
ViewMatrix
|
||||||
|
}
|
||||||
|
|
||||||
|
Defines {
|
||||||
|
HARDWARE_SHADOWS : HardwareShadows
|
||||||
|
FILTER_MODE : FilterMode
|
||||||
|
PCFEDGE : PCFEdge
|
||||||
|
DISCARD_ALPHA : AlphaDiscardThreshold
|
||||||
|
COLOR_MAP : ColorMap
|
||||||
|
SHADOWMAP_SIZE : ShadowMapSize
|
||||||
|
FADE : FadeInfo
|
||||||
|
PSSM : Splits
|
||||||
|
POINTLIGHT : LightViewProjectionMatrix5
|
||||||
|
NUM_BONES : NumberOfBones
|
||||||
|
INSTANCING : UseInstancing
|
||||||
|
BACKFACE_SHADOWS: BackfaceShadows
|
||||||
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
||||||
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
||||||
|
}
|
||||||
|
|
||||||
|
ForcedRenderState {
|
||||||
|
Blend Modulate
|
||||||
|
DepthWrite Off
|
||||||
|
PolyOffset -0.1 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Technique Glow {
|
||||||
|
|
||||||
|
VertexShader GLSL100 GLSL150: Common/MatDefs/Misc/Unshaded.vert
|
||||||
|
FragmentShader GLSL100 GLSL150: Common/MatDefs/Light/Glow.frag
|
||||||
|
|
||||||
|
WorldParameters {
|
||||||
|
WorldViewProjectionMatrix
|
||||||
|
ViewProjectionMatrix
|
||||||
|
ViewMatrix
|
||||||
|
}
|
||||||
|
|
||||||
|
Defines {
|
||||||
|
NEED_TEXCOORD1
|
||||||
|
HAS_GLOWMAP : GlowMap
|
||||||
|
HAS_GLOWCOLOR : GlowColor
|
||||||
|
NUM_BONES : NumberOfBones
|
||||||
|
INSTANCING : UseInstancing
|
||||||
|
HAS_POINTSIZE : PointSize
|
||||||
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
||||||
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
200
jme3-core/src/test/resources/bad-booleans3.j3md
Normal file
200
jme3-core/src/test/resources/bad-booleans3.j3md
Normal file
@ -0,0 +1,200 @@
|
|||||||
|
MaterialDef bad-booleans3 {
|
||||||
|
|
||||||
|
MaterialParameters {
|
||||||
|
Texture2D ColorMap
|
||||||
|
Texture2D LightMap
|
||||||
|
Color Color (Color)
|
||||||
|
Boolean VertexColor (UseVertexColor)
|
||||||
|
Float PointSize : 1.0
|
||||||
|
Boolean SeparateTexCoord
|
||||||
|
|
||||||
|
// Texture of the glowing parts of the material
|
||||||
|
Texture2D GlowMap
|
||||||
|
// The glow color of the object
|
||||||
|
Color GlowColor
|
||||||
|
|
||||||
|
// For instancing
|
||||||
|
Boolean UseInstancing
|
||||||
|
|
||||||
|
// For hardware skinning
|
||||||
|
Int NumberOfBones
|
||||||
|
Matrix4Array BoneMatrices
|
||||||
|
|
||||||
|
// For Morph animation
|
||||||
|
FloatArray MorphWeights
|
||||||
|
Int NumberOfMorphTargets
|
||||||
|
Int NumberOfTargetsBuffers
|
||||||
|
|
||||||
|
// Alpha threshold for fragment discarding
|
||||||
|
Float AlphaDiscardThreshold (AlphaTestFallOff)
|
||||||
|
|
||||||
|
//Shadows
|
||||||
|
Int FilterMode
|
||||||
|
Boolean HardwareShadows
|
||||||
|
|
||||||
|
Texture2D ShadowMap0
|
||||||
|
Texture2D ShadowMap1
|
||||||
|
Texture2D ShadowMap2
|
||||||
|
Texture2D ShadowMap3
|
||||||
|
//pointLights
|
||||||
|
Texture2D ShadowMap4
|
||||||
|
Texture2D ShadowMap5
|
||||||
|
|
||||||
|
Float ShadowIntensity
|
||||||
|
Vector4 Splits
|
||||||
|
Vector2 FadeInfo
|
||||||
|
|
||||||
|
Matrix4 LightViewProjectionMatrix0
|
||||||
|
Matrix4 LightViewProjectionMatrix1
|
||||||
|
Matrix4 LightViewProjectionMatrix2
|
||||||
|
Matrix4 LightViewProjectionMatrix3
|
||||||
|
//pointLight
|
||||||
|
Matrix4 LightViewProjectionMatrix4
|
||||||
|
Matrix4 LightViewProjectionMatrix5
|
||||||
|
Vector3 LightPos
|
||||||
|
Vector3 LightDir
|
||||||
|
|
||||||
|
Float PCFEdge
|
||||||
|
|
||||||
|
Float ShadowMapSize
|
||||||
|
|
||||||
|
Boolean BackfaceShadows: true
|
||||||
|
}
|
||||||
|
|
||||||
|
Technique {
|
||||||
|
VertexShader GLSL100 GLSL150: Common/MatDefs/Misc/Unshaded.vert
|
||||||
|
FragmentShader GLSL100 GLSL150: Common/MatDefs/Misc/Unshaded.frag
|
||||||
|
|
||||||
|
WorldParameters {
|
||||||
|
WorldViewProjectionMatrix
|
||||||
|
ViewProjectionMatrix
|
||||||
|
ViewMatrix
|
||||||
|
}
|
||||||
|
|
||||||
|
Defines {
|
||||||
|
INSTANCING : UseInstancing
|
||||||
|
SEPARATE_TEXCOORD : SeparateTexCoord
|
||||||
|
HAS_COLORMAP : ColorMap
|
||||||
|
HAS_LIGHTMAP : LightMap
|
||||||
|
HAS_VERTEXCOLOR : VertexColor
|
||||||
|
HAS_POINTSIZE : PointSize
|
||||||
|
HAS_COLOR : Color
|
||||||
|
NUM_BONES : NumberOfBones
|
||||||
|
DISCARD_ALPHA : AlphaDiscardThreshold
|
||||||
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
||||||
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Technique PreNormalPass {
|
||||||
|
|
||||||
|
VertexShader GLSL100 GLSL150 : Common/MatDefs/SSAO/normal.vert
|
||||||
|
FragmentShader GLSL100 GLSL150 : Common/MatDefs/SSAO/normal.frag
|
||||||
|
|
||||||
|
WorldParameters {
|
||||||
|
WorldViewProjectionMatrix
|
||||||
|
WorldViewMatrix
|
||||||
|
NormalMatrix
|
||||||
|
ViewProjectionMatrix
|
||||||
|
ViewMatrix
|
||||||
|
}
|
||||||
|
|
||||||
|
Defines {
|
||||||
|
NUM_BONES : NumberOfBones
|
||||||
|
INSTANCING : UseInstancing
|
||||||
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
||||||
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Technique PreShadow {
|
||||||
|
|
||||||
|
VertexShader GLSL100 GLSL150 : Common/MatDefs/Shadow/PreShadow.vert
|
||||||
|
FragmentShader GLSL100 GLSL150 : Common/MatDefs/Shadow/PreShadow.frag
|
||||||
|
|
||||||
|
WorldParameters {
|
||||||
|
WorldViewProjectionMatrix
|
||||||
|
WorldViewMatrix
|
||||||
|
ViewProjectionMatrix
|
||||||
|
ViewMatrix
|
||||||
|
}
|
||||||
|
|
||||||
|
Defines {
|
||||||
|
COLOR_MAP : ColorMap
|
||||||
|
DISCARD_ALPHA : AlphaDiscardThreshold
|
||||||
|
NUM_BONES : NumberOfBones
|
||||||
|
INSTANCING : UseInstancing
|
||||||
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
||||||
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
||||||
|
}
|
||||||
|
|
||||||
|
ForcedRenderState {
|
||||||
|
Wireframe true
|
||||||
|
FaceCull Off
|
||||||
|
DepthTest On
|
||||||
|
DepthWrite On
|
||||||
|
PolyOffset 5 3
|
||||||
|
ColorWrite Off
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Technique PostShadow {
|
||||||
|
VertexShader GLSL100 GLSL150: Common/MatDefs/Shadow/PostShadow.vert
|
||||||
|
FragmentShader GLSL100 GLSL150: Common/MatDefs/Shadow/PostShadow.frag
|
||||||
|
|
||||||
|
WorldParameters {
|
||||||
|
WorldViewProjectionMatrix
|
||||||
|
WorldMatrix
|
||||||
|
ViewProjectionMatrix
|
||||||
|
ViewMatrix
|
||||||
|
}
|
||||||
|
|
||||||
|
Defines {
|
||||||
|
HARDWARE_SHADOWS : HardwareShadows
|
||||||
|
FILTER_MODE : FilterMode
|
||||||
|
PCFEDGE : PCFEdge
|
||||||
|
DISCARD_ALPHA : AlphaDiscardThreshold
|
||||||
|
COLOR_MAP : ColorMap
|
||||||
|
SHADOWMAP_SIZE : ShadowMapSize
|
||||||
|
FADE : FadeInfo
|
||||||
|
PSSM : Splits
|
||||||
|
POINTLIGHT : LightViewProjectionMatrix5
|
||||||
|
NUM_BONES : NumberOfBones
|
||||||
|
INSTANCING : UseInstancing
|
||||||
|
BACKFACE_SHADOWS: BackfaceShadows
|
||||||
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
||||||
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
||||||
|
}
|
||||||
|
|
||||||
|
ForcedRenderState {
|
||||||
|
Blend Modulate
|
||||||
|
DepthWrite Off
|
||||||
|
PolyOffset -0.1 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Technique Glow {
|
||||||
|
|
||||||
|
VertexShader GLSL100 GLSL150: Common/MatDefs/Misc/Unshaded.vert
|
||||||
|
FragmentShader GLSL100 GLSL150: Common/MatDefs/Light/Glow.frag
|
||||||
|
|
||||||
|
WorldParameters {
|
||||||
|
WorldViewProjectionMatrix
|
||||||
|
ViewProjectionMatrix
|
||||||
|
ViewMatrix
|
||||||
|
}
|
||||||
|
|
||||||
|
Defines {
|
||||||
|
NEED_TEXCOORD1
|
||||||
|
HAS_GLOWMAP : GlowMap
|
||||||
|
HAS_GLOWCOLOR : GlowColor
|
||||||
|
NUM_BONES : NumberOfBones
|
||||||
|
INSTANCING : UseInstancing
|
||||||
|
HAS_POINTSIZE : PointSize
|
||||||
|
NUM_MORPH_TARGETS: NumberOfMorphTargets
|
||||||
|
NUM_TARGETS_BUFFERS: NumberOfTargetsBuffers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user