[ShaderNodes] Very simple material definition gives white texels

I created my first material definition.
Current goal is to derivate tex cords from Global.position.xz

Syntax of j3md file is correct.
Texture is delivered and named correctly (no exceptions, texture works in other material).
Geometry is correct.

OS: Linux Debian 64
Renderer: GeForce GT 610/PCIe/SSE2
OpenGL Version: 4.4.0 NVIDIA 331.67

I just don’t know what went wrong :frowning:

j3md file
[java]
MaterialDef Terrain {
MaterialParameters {
Texture2D difuseAtlas
}
Technique {
WorldParameters {
WorldViewProjectionMatrix
}
VertexShaderNodes {
ShaderNode CommonVert {
Definition : TransformPosition : Common/MatDefs/ShaderNodes/Basic/TransformPosition.j3sn
InputMappings {
transformsMatrix = WorldParam.WorldViewProjectionMatrix
inputPosition = Global.position.xyz
}
OutputMappings {
Global.position = outPosition
}
}
}
FragmentShaderNodes {
ShaderNode TextureFetch {
Definition : TextureFetch : Common/MatDefs/ShaderNodes/Basic/TextureFetch.j3sn
InputMappings {
texCoord = Global.position.xz
texture = MatParam.difuseAtlas
}
OutputMappings {
}
}
ShaderNode ColorMult {
Definition : ColorMult : Common/MatDefs/ShaderNodes/Basic/ColorMult.j3sn
InputMappings {
color1 = TextureFetch.outColor
color2 = Global.color
}
OutputMappings {
Global.color = outColor
}
}
}
}
}
[/java]

Generated Vertex Shader in GLSL100
[java]

uniform mat4 g_WorldViewProjectionMatrix;

attribute vec4 inPosition;

void main(){
vec4 Global_position = inPosition;

//CommonVert : Begin
vec3 CommonVert_inputPosition = Global_position.xyz;
vec4 CommonVert_outPosition;

 CommonVert_outPosition = g_WorldViewProjectionMatrix * vec4(CommonVert_inputPosition, 1.0);
Global_position = CommonVert_outPosition;
//CommonVert : End

gl_Position = Global_position;

}
[/java]

Generated Vertex Shader in GLSL150
[java]

uniform mat4 g_WorldViewProjectionMatrix;

in vec4 inPosition;

void main(){
vec4 Global_position = inPosition;

//CommonVert : Begin
vec3 CommonVert_inputPosition = Global_position.xyz;
vec4 CommonVert_outPosition;

 CommonVert_outPosition = g_WorldViewProjectionMatrix * vec4(CommonVert_inputPosition, 1.0);
Global_position = CommonVert_outPosition;
//CommonVert : End
gl_Position = Global_position;

}
[/java]

Generated Fragment Shader in GLSL100
[java]

uniform sampler2D m_difuseAtlas;

void main(){
vec4 Global_position = vec4(1.0);
vec4 Global_color = vec4(1.0);

//TextureFetch : Begin
vec2 TextureFetch_texCoord = Global_position.xz;
vec4 TextureFetch_outColor;

TextureFetch_outColor = texture2D(m_difuseAtlas,TextureFetch_texCoord);
//TextureFetch : End

//ColorMult : Begin
vec4 ColorMult_color1 = TextureFetch_outColor;
vec4 ColorMult_color2 = Global_color;
vec4 ColorMult_outColor;

ColorMult_outColor = ColorMult_color1 * ColorMult_color2;
Global_color = ColorMult_outColor;
//ColorMult : End

gl_FragData[0] = Global_position;
gl_FragData[1] = Global_color;

}
[/java]

Generated Fragment Shader in GLSL150
[java]

uniform sampler2D m_difuseAtlas;

out vec4 Global_position;
out vec4 Global_color;

void main(){
Global_position = vec4(1.0);
Global_color = vec4(1.0);

//TextureFetch : Begin
vec2 TextureFetch_texCoord = Global_position.xz;
vec4 TextureFetch_outColor;

TextureFetch_outColor = texture2D(m_difuseAtlas,TextureFetch_texCoord);
//TextureFetch : End

//ColorMult : Begin
vec4 ColorMult_color1 = TextureFetch_outColor;
vec4 ColorMult_color2 = Global_color;
vec4 ColorMult_outColor;

ColorMult_outColor = ColorMult_color1 * ColorMult_color2;
Global_color = ColorMult_outColor;
//ColorMult : End

}
[/java]

Fixed

[java]
ShaderNode TexCord {
Definition : AttributeToVarying : Common/MatDefs/ShaderNodes/Basic/AttributeToVarying.j3sn
InputMappings {
vec2Variable = Global.position.xz
}
}
[/java]

Documentation for ShaderNodes are very lacking…

@SQLek said:

Documentation for ShaderNodes are very lacking…


Read this? https://wiki.jmonkeyengine.org/legacy/doku.php/jme3:advanced:jme3_shadernodes

This can also be useful, I thought that I had linked it in the doc but I can’t find it https://docs.google.com/document/d/1S6xO3d1TBz0xcKe_MPTqY9V-QI59AKdg1OGy3U-HeVY/edit?usp=sharing
this is the shader nodes specs with explanations of chosen design.

1 Like
@nehon said: This can also be useful, I thought that I had linked it in the doc but I can't find it https://docs.google.com/document/d/1S6xO3d1TBz0xcKe_MPTqY9V-QI59AKdg1OGy3U-HeVY/edit?usp=sharing this is the shader nodes specs with explanations of chosen design.
Very thank You for this link :*

After weekend i’ll try made jme3:advanced:jme3_shadernodes more user friendly. If You have power to edit thread title, then mark it as [Solved].