TestCinematic error: LwjglRenderer / HARDWARE_SHADOWS

I really don’t know where to post this topic, so if it is in the wrong place, forgive me and move it away.

I’ve run TestCinematic for the first time [and with the latest nightly build], and I saw a green floor, with the Ogre onto it.

Then when I pressed the spacebar, it shown me this:



AVVERTENZA = WARNING

[java]

30-gen-2011 11.58.13 com.jme3.material.MaterialDef <init>

INFO: Loaded material definition: Fade

30-gen-2011 11.58.13 com.jme3.renderer.lwjgl.LwjglRenderer updateUniformLocation

INFO: Uniform g_WorldViewMatrix is not declared in shader.

30-gen-2011 11.58.13 com.jme3.renderer.lwjgl.LwjglRenderer updateUniformLocation

INFO: Uniform m_Shininess is not declared in shader.

30-gen-2011 11.58.13 com.jme3.renderer.lwjgl.LwjglRenderer updateUniformLocation

INFO: Uniform m_UseVertexColor is not declared in shader.

30-gen-2011 11.58.13 com.jme3.renderer.lwjgl.LwjglRenderer updateUniformLocation

INFO: Uniform m_UseMaterialColors is not declared in shader.

30-gen-2011 11.58.13 com.jme3.renderer.lwjgl.LwjglRenderer updateUniformLocation

INFO: Uniform m_Diffuse is not declared in shader.

30-gen-2011 11.58.13 com.jme3.renderer.lwjgl.LwjglRenderer updateUniformLocation

INFO: Uniform m_Ambient is not declared in shader.

30-gen-2011 11.58.13 com.jme3.renderer.lwjgl.LwjglRenderer updateUniformLocation

INFO: Uniform m_Specular is not declared in shader.

30-gen-2011 11.58.13 com.jme3.renderer.lwjgl.LwjglRenderer updateUniformLocation

INFO: Uniform g_WorldViewMatrix is not declared in shader.

30-gen-2011 11.58.13 com.jme3.renderer.lwjgl.LwjglRenderer updateUniformLocation

INFO: Uniform m_UseMaterialColors is not declared in shader.

30-gen-2011 11.58.13 com.jme3.renderer.lwjgl.LwjglRenderer updateUniformLocation

INFO: Uniform m_UseVertexColor is not declared in shader.

30-gen-2011 11.58.13 com.jme3.renderer.lwjgl.LwjglRenderer updateUniformLocation

INFO: Uniform m_UseMaterialColors is not declared in shader.

30-gen-2011 11.58.13 com.jme3.renderer.lwjgl.LwjglRenderer updateShaderSourceData

AVVERTENZA: Common/MatDefs/Shadow/PostShadowPSSM.frag compile error: Fragment shader failed to compile with the following errors:

ERROR: 0:91: ‘KERNEL’ : undeclared identifier

ERROR: compilation errors. No code generated.



30-gen-2011 11.58.13 com.jme3.renderer.lwjgl.LwjglRenderer updateShaderSourceData

AVVERTENZA: #define FILTER_MODE 1

#define HARDWARE_SHADOWS 1

#define PCFEDGE 1.0

#ifdef HARDWARE_SHADOWS

#define SHADOWMAP sampler2DShadow

#define SHADOWCOMPARE(tex,coord) shadow2DProj(tex, coord).r

#else

#define SHADOWMAP sampler2D

#define SHADOWCOMPARE(tex,coord) step(coord.z, texture2DProj(tex, coord).r)

#endif



#if FILTER_MODE == 0

#define GETSHADOW Shadow_DoShadowCompare

#elif FILTER_MODE == 1

#ifdef HARDWARE_SHADOWS

#define GETSHADOW Shadow_DoShadowCompare

#else

#define GETSHADOW Shadow_DoBilinear_2x2

#endif

#elif FILTER_MODE == 2

#define GETSHADOW Shadow_DoDither_2x2

#elif FILTER_MODE == 3

#define GETSHADOW Shadow_DoPCF

#define KERNEL 4

#elif FILTER_MODE == 4

#define GETSHADOW Shadow_DoPCF

#define KERNEL 8

#endif



uniform SHADOWMAP m_ShadowMap0;

uniform SHADOWMAP m_ShadowMap1;

uniform SHADOWMAP m_ShadowMap2;

uniform SHADOWMAP m_ShadowMap3;



uniform vec4 m_Splits;



uniform float m_ShadowIntensity;



varying vec4 projCoord0;

varying vec4 projCoord1;

varying vec4 projCoord2;

varying vec4 projCoord3;



varying float shadowPosition;



const float texSize = 1024.0;

const float pixSize = 1.0 / texSize;

const vec2 pixSize2 = vec2(pixSize);



float Shadow_DoShadowCompareOffset(in SHADOWMAP tex, in vec4 projCoord, in vec2 offset){

vec4 coord = vec4(projCoord.xy + offset.xy * pixSize2, projCoord.zw);

return SHADOWCOMPARE(tex, coord);

}



float Shadow_DoShadowCompare(in SHADOWMAP tex, vec4 projCoord){

return SHADOWCOMPARE(tex, projCoord);

}



float Shadow_BorderCheck(in vec2 coord){

// Fastest, “hack” method (uses 4-5 instructions)

vec4 t = vec4(coord.xy, 0.0, 1.0);

t = step(t.wwxy, t.xyzz);

return dot(t,t);

}



float Shadow_DoDither_2x2(in SHADOWMAP tex, in vec4 projCoord){

float shadow = 0.0;

vec2 o = mod(floor(gl_FragCoord.xy), 2.0);

shadow += Shadow_DoShadowCompareOffset(tex,projCoord,vec2(-1.5, 1.5) + o);

shadow += Shadow_DoShadowCompareOffset(tex,projCoord,vec2( 0.5, 1.5) + o);

shadow += Shadow_DoShadowCompareOffset(tex,projCoord,vec2(-1.5, -0.5) + o);

shadow += Shadow_DoShadowCompareOffset(tex,projCoord,vec2( 0.5, -0.5) + o);

shadow *= 0.25 ;

return shadow;

}



float Shadow_DoBilinear_2x2(in SHADOWMAP tex, in vec4 projCoord){

vec4 gather = vec4(0.0);

gather.x = Shadow_DoShadowCompareOffset(tex, projCoord, vec2(0.0, 0.0));

gather.y = Shadow_DoShadowCompareOffset(tex, projCoord, vec2(1.0, 0.0));

gather.z = Shadow_DoShadowCompareOffset(tex, projCoord, vec2(0.0, 1.0));

gather.w = Shadow_DoShadowCompareOffset(tex, projCoord, vec2(1.0, 1.0));



vec2 f = fract( projCoord.xy * texSize );

vec2 mx = mix( gather.xz, gather.yw, f.x );

return mix( mx.x, mx.y, f.y );

}



float Shadow_DoPCF(in SHADOWMAP tex, in vec4 projCoord){

float shadow = 0.0;

float bound = KERNEL * 0.5 - 0.5;

bound *= PCFEDGE;

for (float y = -bound; y <= bound; y += PCFEDGE){

for (float x = -bound; x <= bound; x += PCFEDGE){

shadow += clamp(Shadow_DoShadowCompareOffset(tex,projCoord,vec2(x,y)) +

Shadow_BorderCheck(projCoord.xy),

0.0, 1.0);

}

}



shadow = shadow / (KERNEL * KERNEL);

return shadow;

}



void main(){

vec4 shadowPerSplit = vec4(0.0);

shadowPerSplit.x = GETSHADOW(m_ShadowMap0, projCoord0);

shadowPerSplit.y = GETSHADOW(m_ShadowMap1, projCoord1);

shadowPerSplit.z = GETSHADOW(m_ShadowMap2, projCoord2);

shadowPerSplit.w = GETSHADOW(m_ShadowMap3, projCoord3);



vec4 less = step( shadowPosition, m_Splits );

vec4 more = vec4(1.0) - step( shadowPosition, vec4(0.0, m_Splits.xyz) );

float shadow = dot(shadowPerSplit, less * more );



shadow = shadow * m_ShadowIntensity + (1.0 - m_ShadowIntensity);

gl_FragColor = vec4(shadow, shadow, shadow, 1.0);

}



30-gen-2011 11.58.13 com.jme3.renderer.lwjgl.LwjglRenderer updateUniformLocation

INFO: Uniform m_VertexColor is not declared in shader.

[/java]

Is it related to my graphic card or what else?

it’s grafic related it seems, it gives an error at compiling a shader.



So eithers you have a hardware unsupported shader, or you need to update the graficdriver. (Or the shader simply has a error)

This should be fixed in last SVN

EmpirePhoenix said:
it's grafic related it seems, it gives an error at compiling a shader.

So eithers you have a hardware unsupported shader, or you need to update the graficdriver. (Or the shader simply has a error)

In fact there are 2 shaders now : a opengl3.0 (glsl 1.5) compatible shader and a opengl 2.0 (glsl 1.0) compatible shader.
There was a compilation issue in the 1.0 one, so if you have recent hardware that supports opengl 3.0 this was working fine.