Which version are you using the latest SVN, the latest PSSM (see post from
friday to yesterday) ?

2008/5/19 Alejandro Segovia <[EMAIL PROTECTED]>:

>
> On Mon, May 19, 2008 at 6:03 PM, Alejandro Segovia <[EMAIL PROTECTED]>
> wrote:
>
>> Hello List,
>>
>> I'm having a hard time using PSSM (or anything besides ShadowTexture for
>> that matter) to add shadows to my scene.
>>
>> I've got some initialization code inspired in the osgshadow example, which
>> seems to work fine when I pass the --NVidea parameter, but when I try the
>> very same technique in my code, it just crashes inside the PSSM's cull()
>> method.
>>
>> This is the backtrace I get from the core dump:
>>
>> #0  0xb6f961c9 in osgShadow::ParallelSplitShadowMap::cull ()
>>    from /usr/local/OpenSceneGraph/2.2.0/lib/libosgShadow.so.25
>> #1  0xb6f87656 in osgShadow::ShadowTechnique::traverse ()
>>    from /usr/local/OpenSceneGraph/2.2.0/lib/libosgShadow.so.25
>> #2  0xb6f8e7c0 in osgShadow::ShadowedScene::traverse ()
>>    from /usr/local/OpenSceneGraph/2.2.0/lib/libosgShadow.so.25
>> #3  0xb6d38196 in osgUtil::CullVisitor::apply ()
>>    from /usr/local/OpenSceneGraph/2.2.0/lib/libosgUtil.so.25
>> #4  0xb6f8eb11 in osgShadow::ShadowedScene::accept ()
>>    from /usr/local/OpenSceneGraph/2.2.0/lib/libosgShadow.so.25
>> #5  0xb726fa84 in osg::Group::traverse ()
>>    from /usr/local/OpenSceneGraph/2.2.0/lib/libosg.so.25
>> #6  0xb6d38196 in osgUtil::CullVisitor::apply ()
>>    from /usr/local/OpenSceneGraph/2.2.0/lib/libosgUtil.so.25
>> #7  0xb727095f in osg::Group::accept ()
>>    from /usr/local/OpenSceneGraph/2.2.0/lib/libosg.so.25
>> #8  0xb6dc89f7 in osgUtil::SceneView::cullStage ()
>>    from /usr/local/OpenSceneGraph/2.2.0/lib/libosgUtil.so.25
>> #9  0xb6dc7cd6 in osgUtil::SceneView::cull ()
>>    from /usr/local/OpenSceneGraph/2.2.0/lib/libosgUtil.so.25
>> #10 0xb6a596ef in Canvas::customEvent (this=0x80c4780,
>>     event=0x80deb60) at Canvas.cpp:200
>>
>> Canvas is just a custom class derived from QGLWidget.
>>
>> This is the initialization code I'm using, please note the ShadowedScene
>> node is not the root of the scene graph.
>>
>> osg::ref_ptr<osgShadow::ParallelSplitShadowMap> shadowTech =
>>       new osgShadow::ParallelSplitShadowMap(NULL, 3);
>>   shadowTech->setTextureResolution(1024);
>>   shadowTech->setMinNearDistanceForSplits(0);
>>   shadowTech->setMaxFarDistance(0);
>>   shadowTech->setMoveVCamBehindRCamFactor(0);
>>   double polyoffsetfactor = 10.0f; //-0.02;
>>   double polyoffsetunit = 20.0f; //1.0;
>>
>> shadowTech->setPolygonOffset(osg::Vec2(polyoffsetfactor,polyoffsetunit));
>>
>>   _shadowNode = new osgShadow::ShadowedScene();
>>   _shadowNode->setShadowTechnique(shadowTech.get());
>>
>>   _shadowNode->setCastsShadowTraversalMask(0x2|0x8);
>>   _shadowNode->setReceivesShadowTraversalMask(0x1|0x8);
>>
>> I'm also using SceneView objects to hold the camera information such as
>> the projection and modelview matrices. There are two lights in the scene and
>> only one object (a floor).
>>
>> Thanks in advance,
>> Alejandro Segovia.-
>>
>> --
>> [EMAIL PROTECTED]
>> http://varrojo.linuxuruguay.org
>
>
>
> Setting the OSG_NOTIFY_LEVEL variable to DEBUG in order to determine what
> could possibly be wrong, I noticed the shader program is never compiled for
> PSSM! Is there some way to force program compilation in OSG?
>
> I attach the dump for osgshadow and then for my application. Notice mine
> never gets its shader compiled.
>
> Dump for osgshadow:
>
> ...
> View::init()
> ParallelSplitShadowMap : Texture ID=0 Resolution=1024
> CullSettings::readEnvironmentalVariables()
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> ParallelSplitShadowMap : Texture ID=1 Resolution=1024
> CullSettings::readEnvironmentalVariables()
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> ParallelSplitShadowMap : Texture ID=2 Resolution=1024
> CullSettings::readEnvironmentalVariables()
>
> ParallelSplitShadowMap: GLSL shader code:
> -------------------------------------------------------------------
> uniform sampler2D baseTexture;
> uniform sampler2D randomTexture;
> uniform float enableBaseTexture;
> uniform sampler2DShadow shadowTexture0;
> uniform float zShadow0;
> uniform sampler2DShadow shadowTexture1;
> uniform float zShadow1;
> uniform sampler2DShadow shadowTexture2;
> uniform float zShadow2;
> void main(void)
> {
>     vec4 coord   = gl_FragCoord;
>     float shadow0 = shadow2DProj( shadowTexture0,gl_TexCoord[1]).r;
>         vec4 random0 =
> 0.0012207*coord.z*texture2D(randomTexture,gl_TexCoord[1].st);
>         float shadow10 = shadow2DProj(
> shadowTexture0,gl_TexCoord[1]+random0.r*vec4(-1,-1,0,0)).r;
>         float shadow20 = shadow2DProj(
> shadowTexture0,gl_TexCoord[1]+random0.g*vec4(1,-1,0,0)).r;
>         float shadow30 = shadow2DProj(
> shadowTexture0,gl_TexCoord[1]+random0.b*vec4(1,1,0,0)).r;
>         float shadow40 = shadow2DProj(
> shadowTexture0,gl_TexCoord[1]+random0.a*vec4(-1,1,0,0)).r;
>         shadow0 = shadow0 + shadow10 + shadow20 + shadow30 + shadow40;
>         shadow0 = shadow0*0.2;
>     float shadow1 = shadow2DProj( shadowTexture1,gl_TexCoord[2]).r;
>         vec4 random1 =
> 0.0012207*coord.z*texture2D(randomTexture,gl_TexCoord[2].st);
>         float shadow11 = shadow2DProj(
> shadowTexture1,gl_TexCoord[2]+random1.r*vec4(-1,-1,0,0)).r;
>         float shadow21 = shadow2DProj(
> shadowTexture1,gl_TexCoord[2]+random1.g*vec4(1,-1,0,0)).r;
>         float shadow31 = shadow2DProj(
> shadowTexture1,gl_TexCoord[2]+random1.b*vec4(1,1,0,0)).r;
>         float shadow41 = shadow2DProj(
> shadowTexture1,gl_TexCoord[2]+random1.a*vec4(-1,1,0,0)).r;
>         shadow1 = shadow1 + shadow11 + shadow21 + shadow31 + shadow41;
>         shadow1 = shadow1*0.2;
>     float shadow2 = shadow2DProj( shadowTexture2,gl_TexCoord[3]).r;
>         vec4 random2 =
> 0.0012207*coord.z*texture2D(randomTexture,gl_TexCoord[3].st);
>         float shadow12 = shadow2DProj(
> shadowTexture2,gl_TexCoord[3]+random2.r*vec4(-1,-1,0,0)).r;
>         float shadow22 = shadow2DProj(
> shadowTexture2,gl_TexCoord[3]+random2.g*vec4(1,-1,0,0)).r;
>         float shadow32 = shadow2DProj(
> shadowTexture2,gl_TexCoord[3]+random2.b*vec4(1,1,0,0)).r;
>         float shadow42 = shadow2DProj(
> shadowTexture2,gl_TexCoord[3]+random2.a*vec4(-1,1,0,0)).r;
>         shadow2 = shadow2 + shadow12 + shadow22 + shadow32 + shadow42;
>         shadow2 = shadow2*0.2;
>     float term0 = (1.0-shadow0);
>     float term1 = (1.0-shadow1);
>     float term2 = (1.0-shadow2);
>     float v = clamp(term0+term1+term2,0.0,1.0);
>     vec4 color    = gl_Color;
>     vec4 texcolor = texture2D(baseTexture,gl_TexCoord[0].st);
>     float enableBaseTextureFilter = enableBaseTexture*(1.0 -
> step(texcolor.x+texcolor.y+texcolor.z+texcolor.a,0.0));
>    vec4 colorTex = color*texcolor;
>     gl_FragColor = (color*(1.0-enableBaseTextureFilter) +
> colorTex*enableBaseTextureFilter)*(1.0-0.30*v);
> }
>
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> cull_draw() 0x8074200
> OpenGL extensions supported by installed OpenGL drivers are:
>     GL_ARB_color_buffer_float
>     GL_ARB_depth_texture
>     GL_ARB_draw_buffers
>     GL_ARB_fragment_program
>     GL_ARB_fragment_program_shadow
>     GL_ARB_fragment_shader
>     GL_ARB_half_float_pixel
>     GL_ARB_imaging
>     GL_ARB_multisample
>     GL_ARB_multitexture
>     GL_ARB_occlusion_query
>     GL_ARB_pixel_buffer_object
>     GL_ARB_point_parameters
>     GL_ARB_point_sprite
>     GL_ARB_shader_objects
>     GL_ARB_shading_language_100
>     GL_ARB_shadow
>     GL_ARB_texture_border_clamp
>     GL_ARB_texture_compression
>     GL_ARB_texture_cube_map
>     GL_ARB_texture_env_add
>     GL_ARB_texture_env_combine
>     GL_ARB_texture_env_dot3
>     GL_ARB_texture_float
>     GL_ARB_texture_mirrored_repeat
>     GL_ARB_texture_non_power_of_two
>     GL_ARB_texture_rectangle
>     GL_ARB_transpose_matrix
>     GL_ARB_vertex_buffer_object
>     GL_ARB_vertex_program
>     GL_ARB_vertex_shader
>     GL_ARB_window_pos
>     GL_ATI_draw_buffers
>     GL_ATI_texture_float
>     GL_ATI_texture_mirror_once
>     GL_EXTX_framebuffer_mixed_formats
>     GL_EXT_Cg_shader
>     GL_EXT_abgr
>     GL_EXT_bgra
>     GL_EXT_bindable_uniform
>     GL_EXT_blend_color
>     GL_EXT_blend_equation_separate
>     GL_EXT_blend_func_separate
>     GL_EXT_blend_minmax
>     GL_EXT_blend_subtract
>     GL_EXT_compiled_vertex_array
>     GL_EXT_depth_bounds_test
>     GL_EXT_draw_buffers2
>     GL_EXT_draw_instanced
>     GL_EXT_draw_range_elements
>     GL_EXT_fog_coord
>     GL_EXT_framebuffer_blit
>     GL_EXT_framebuffer_multisample
>     GL_EXT_framebuffer_object
>     GL_EXT_framebuffer_sRGB
>     GL_EXT_geometry_shader4
>     GL_EXT_gpu_program_parameters
>     GL_EXT_gpu_shader4
>     GL_EXT_multi_draw_arrays
>     GL_EXT_packed_depth_stencil
>     GL_EXT_packed_float
>     GL_EXT_packed_pixels
>     GL_EXT_pixel_buffer_object
>     GL_EXT_point_parameters
>     GL_EXT_rescale_normal
>     GL_EXT_secondary_color
>     GL_EXT_separate_specular_color
>     GL_EXT_shadow_funcs
>     GL_EXT_stencil_two_side
>     GL_EXT_stencil_wrap
>     GL_EXT_texture3D
>     GL_EXT_texture_array
>     GL_EXT_texture_buffer_object
>     GL_EXT_texture_compression_latc
>     GL_EXT_texture_compression_rgtc
>     GL_EXT_texture_compression_s3tc
>     GL_EXT_texture_cube_map
>     GL_EXT_texture_edge_clamp
>     GL_EXT_texture_env_add
>     GL_EXT_texture_env_combine
>     GL_EXT_texture_env_dot3
>     GL_EXT_texture_filter_anisotropic
>     GL_EXT_texture_integer
>     GL_EXT_texture_lod
>     GL_EXT_texture_lod_bias
>     GL_EXT_texture_mirror_clamp
>     GL_EXT_texture_object
>     GL_EXT_texture_sRGB
>     GL_EXT_texture_shared_exponent
>     GL_EXT_timer_query
>     GL_EXT_vertex_array
>     GL_IBM_rasterpos_clip
>     GL_IBM_texture_mirrored_repeat
>     GL_KTX_buffer_region
>     GL_NVX_conditional_render
>     GL_NV_blend_square
>     GL_NV_conditional_render
>     GL_NV_copy_depth_to_color
>     GL_NV_depth_buffer_float
>     GL_NV_depth_clamp
>     GL_NV_fence
>     GL_NV_float_buffer
>     GL_NV_fog_distance
>     GL_NV_fragment_program
>     GL_NV_fragment_program2
>     GL_NV_fragment_program_option
>     GL_NV_framebuffer_multisample_coverage
>     GL_NV_geometry_shader4
>     GL_NV_gpu_program4
>     GL_NV_half_float
>     GL_NV_light_max_exponent
>     GL_NV_multisample_coverage
>     GL_NV_multisample_filter_hint
>     GL_NV_occlusion_query
>     GL_NV_packed_depth_stencil
>     GL_NV_parameter_buffer_object
>     GL_NV_pixel_data_range
>     GL_NV_point_sprite
>     GL_NV_primitive_restart
>     GL_NV_register_combiners
>     GL_NV_register_combiners2
>     GL_NV_texgen_reflection
>     GL_NV_texture_compression_vtc
>     GL_NV_texture_env_combine4
>     GL_NV_texture_expand_normal
>     GL_NV_texture_rectangle
>     GL_NV_texture_shader
>     GL_NV_texture_shader2
>     GL_NV_texture_shader3
>     GL_NV_transform_feedback
>     GL_NV_vertex_array_range
>     GL_NV_vertex_array_range2
>     GL_NV_vertex_program
>     GL_NV_vertex_program1_1
>     GL_NV_vertex_program2
>     GL_NV_vertex_program2_option
>     GL_NV_vertex_program3
>     GL_S3_s3tc
>     GL_SGIS_generate_mipmap
>     GL_SGIS_texture_lod
>     GL_SGIX_depth_texture
>     GL_SGIX_shadow
>     GL_SUN_slice_accum
> OpenGL extension 'GL_ARB_vertex_program' is supported.
> OpenGL extension 'GL_EXT_secondary_color' is supported.
> OpenGL extension 'GL_EXT_fog_coord' is supported.
> OpenGL extension 'GL_ARB_multitexture' is supported.
> OpenGL extension 'GL_NV_occlusion_query' is supported.
> OpenGL extension 'GL_ARB_occlusion_query' is supported.
> OpenGL extension 'GL_EXT_timer_query' is supported.
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> OpenGL extension '' is not supported.
> OpenGL extension 'GL_EXT_framebuffer_object' is supported.
> OpenGL extension 'GL_ARB_vertex_program' is supported.
> OpenGL extension 'GL_ARB_fragment_program' is supported.
> OpenGL extension 'GL_ARB_shader_objects' is supported.
> OpenGL extension 'GL_ARB_vertex_shader' is supported.
> OpenGL extension 'GL_ARB_fragment_shader' is supported.
> OpenGL extension 'GL_ARB_shading_language_100' is supported.
> glVersion=2.1, isGlslSupported=YES, glslLanguageVersion=1.2
> OpenGL extension 'GL_ARB_pixel_buffer_object' is supported.
> Setting up osg::Camera::FRAME_BUFFER_OBJECT
> OpenGL extension 'GL_EXT_texture_filter_anisotropic' is supported.
> OpenGL extension 'GL_EXT_texture_compression_s3tc' is supported.
> OpenGL extension 'GL_ARB_shadow' is supported.
> OpenGL extension 'GL_ARB_shadow_ambient' is not supported.
> OpenGL extension 'GL_APPLE_client_storage' is not supported.
> OpenGL extension 'GL_EXT_texture_integer' is supported.
> Setting up osg::Camera::FRAME_BUFFER_OBJECT
> Setting up osg::Camera::FRAME_BUFFER_OBJECT
> Setting up osg::Camera::FRAME_BUFFER
>
> Compiling FRAGMENT source:
> uniform sampler2D baseTexture;
> uniform sampler2D randomTexture;
> uniform float enableBaseTexture;
> uniform sampler2DShadow shadowTexture0;
> uniform float zShadow0;
> uniform sampler2DShadow shadowTexture1;
> uniform float zShadow1;
> uniform sampler2DShadow shadowTexture2;
> uniform float zShadow2;
> void main(void)
> {
>     vec4 coord   = gl_FragCoord;
>     float shadow0 = shadow2DProj( shadowTexture0,gl_TexCoord[1]).r;
>         vec4 random0 =
> 0.0012207*coord.z*texture2D(randomTexture,gl_TexCoord[1].st);
>         float shadow10 = shadow2DProj(
> shadowTexture0,gl_TexCoord[1]+random0.r*vec4(-1,-1,0,0)).r;
>         float shadow20 = shadow2DProj(
> shadowTexture0,gl_TexCoord[1]+random0.g*vec4(1,-1,0,0)).r;
>         float shadow30 = shadow2DProj(
> shadowTexture0,gl_TexCoord[1]+random0.b*vec4(1,1,0,0)).r;
>         float shadow40 = shadow2DProj(
> shadowTexture0,gl_TexCoord[1]+random0.a*vec4(-1,1,0,0)).r;
>         shadow0 = shadow0 + shadow10 + shadow20 + shadow30 + shadow40;
>         shadow0 = shadow0*0.2;
>     float shadow1 = shadow2DProj( shadowTexture1,gl_TexCoord[2]).r;
>         vec4 random1 =
> 0.0012207*coord.z*texture2D(randomTexture,gl_TexCoord[2].st);
>         float shadow11 = shadow2DProj(
> shadowTexture1,gl_TexCoord[2]+random1.r*vec4(-1,-1,0,0)).r;
>         float shadow21 = shadow2DProj(
> shadowTexture1,gl_TexCoord[2]+random1.g*vec4(1,-1,0,0)).r;
>         float shadow31 = shadow2DProj(
> shadowTexture1,gl_TexCoord[2]+random1.b*vec4(1,1,0,0)).r;
>         float shadow41 = shadow2DProj(
> shadowTexture1,gl_TexCoord[2]+random1.a*vec4(-1,1,0,0)).r;
>         shadow1 = shadow1 + shadow11 + shadow21 + shadow31 + shadow41;
>         shadow1 = shadow1*0.2;
>     float shadow2 = shadow2DProj( shadowTexture2,gl_TexCoord[3]).r;
>         vec4 random2 =
> 0.0012207*coord.z*texture2D(randomTexture,gl_TexCoord[3].st);
>         float shadow12 = shadow2DProj(
> shadowTexture2,gl_TexCoord[3]+random2.r*vec4(-1,-1,0,0)).r;
>         float shadow22 = shadow2DProj(
> shadowTexture2,gl_TexCoord[3]+random2.g*vec4(1,-1,0,0)).r;
>         float shadow32 = shadow2DProj(
> shadowTexture2,gl_TexCoord[3]+random2.b*vec4(1,1,0,0)).r;
>         float shadow42 = shadow2DProj(
> shadowTexture2,gl_TexCoord[3]+random2.a*vec4(-1,1,0,0)).r;
>         shadow2 = shadow2 + shadow12 + shadow22 + shadow32 + shadow42;
>         shadow2 = shadow2*0.2;
>     float term0 = (1.0-shadow0);
>     float term1 = (1.0-shadow1);
>     float term2 = (1.0-shadow2);
>     float v = clamp(term0+term1+term2,0.0,1.0);
>     vec4 color    = gl_Color;
>     vec4 texcolor = texture2D(baseTexture,gl_TexCoord[0].st);
>     float enableBaseTextureFilter = enableBaseTexture*(1.0 -
> step(texcolor.x+texcolor.y+texcolor.z+texcolor.a,0.0));
>    vec4 colorTex = color*texcolor;
>     gl_FragColor = (color*(1.0-enableBaseTextureFilter) +
> colorTex*enableBaseTextureFilter)*(1.0-0.30*v);
> }
>
> Linking osg::Program "" id=1 contextID=0
>     Uniform "baseTexture" loc=0 size=1 type=sampler2D
>     Uniform "enableBaseTexture" loc=1 size=1 type=float
>     Uniform "randomTexture" loc=2 size=1 type=sampler2D
>     Uniform "shadowTexture0" loc=3 size=1 type=sampler2DShadow
>     Uniform "shadowTexture1" loc=4 size=1 type=sampler2DShadow
>     Uniform "shadowTexture2" loc=5 size=1 type=sampler2DShadow
>
> end cull_draw() 0x8074200
>
> == My app ==
>
> ParallelSplitShadowMap : Texture ID=0 Resolution=1024
> CullSettings::readEnvironmentalVariables()
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> ParallelSplitShadowMap : Texture ID=1 Resolution=1024
> CullSettings::readEnvironmentalVariables()
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> ParallelSplitShadowMap : Texture ID=2 Resolution=1024
> CullSettings::readEnvironmentalVariables()
>
> ParallelSplitShadowMap: GLSL shader code:
> -------------------------------------------------------------------
> uniform sampler2D baseTexture;
> uniform sampler2D randomTexture;
> uniform float enableBaseTexture;
> uniform sampler2DShadow shadowTexture0;
> uniform float zShadow0;
> uniform sampler2DShadow shadowTexture1;
> uniform float zShadow1;
> uniform sampler2DShadow shadowTexture2;
> uniform float zShadow2;
> void main(void)
> {
>     vec4 coord   = gl_FragCoord;
>     float shadow0 = shadow2DProj( shadowTexture0,gl_TexCoord[1]).r;
>         vec4 random0 =
> 0.0012207*coord.z*texture2D(randomTexture,gl_TexCoord[1].st);
>         float shadow10 = shadow2DProj(
> shadowTexture0,gl_TexCoord[1]+random0.r*vec4(-1,-1,0,0)).r;
>         float shadow20 = shadow2DProj(
> shadowTexture0,gl_TexCoord[1]+random0.g*vec4(1,-1,0,0)).r;
>         float shadow30 = shadow2DProj(
> shadowTexture0,gl_TexCoord[1]+random0.b*vec4(1,1,0,0)).r;
>         float shadow40 = shadow2DProj(
> shadowTexture0,gl_TexCoord[1]+random0.a*vec4(-1,1,0,0)).r;
>         shadow0 = shadow0 + shadow10 + shadow20 + shadow30 + shadow40;
>         shadow0 = shadow0*0.2;
>     float shadow1 = shadow2DProj( shadowTexture1,gl_TexCoord[2]).r;
>         vec4 random1 =
> 0.0012207*coord.z*texture2D(randomTexture,gl_TexCoord[2].st);
>         float shadow11 = shadow2DProj(
> shadowTexture1,gl_TexCoord[2]+random1.r*vec4(-1,-1,0,0)).r;
>         float shadow21 = shadow2DProj(
> shadowTexture1,gl_TexCoord[2]+random1.g*vec4(1,-1,0,0)).r;
>         float shadow31 = shadow2DProj(
> shadowTexture1,gl_TexCoord[2]+random1.b*vec4(1,1,0,0)).r;
>         float shadow41 = shadow2DProj(
> shadowTexture1,gl_TexCoord[2]+random1.a*vec4(-1,1,0,0)).r;
>         shadow1 = shadow1 + shadow11 + shadow21 + shadow31 + shadow41;
>         shadow1 = shadow1*0.2;
>     float shadow2 = shadow2DProj( shadowTexture2,gl_TexCoord[3]).r;
>         vec4 random2 =
> 0.0012207*coord.z*texture2D(randomTexture,gl_TexCoord[3].st);
>         float shadow12 = shadow2DProj(
> shadowTexture2,gl_TexCoord[3]+random2.r*vec4(-1,-1,0,0)).r;
>         float shadow22 = shadow2DProj(
> shadowTexture2,gl_TexCoord[3]+random2.g*vec4(1,-1,0,0)).r;
>         float shadow32 = shadow2DProj(
> shadowTexture2,gl_TexCoord[3]+random2.b*vec4(1,1,0,0)).r;
>         float shadow42 = shadow2DProj(
> shadowTexture2,gl_TexCoord[3]+random2.a*vec4(-1,1,0,0)).r;
>         shadow2 = shadow2 + shadow12 + shadow22 + shadow32 + shadow42;
>         shadow2 = shadow2*0.2;
>     float term0 = (1.0-shadow0);
>     float term1 = (1.0-shadow1);
>     float term2 = (1.0-shadow2);
>     float v = clamp(term0+term1+term2,0.0,1.0);
>     vec4 color    = gl_Color;
>     vec4 texcolor = texture2D(baseTexture,gl_TexCoord[0].st);
>     float enableBaseTextureFilter = enableBaseTexture*(1.0 -
> step(texcolor.x+texcolor.y+texcolor.z+texcolor.a,0.0));
>    vec4 colorTex = color*texcolor;
>     gl_FragColor = (color*(1.0-enableBaseTextureFilter) +
> colorTex*enableBaseTextureFilter)*(1.0-0.30*v);
> }
>
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
>
> Then it segfaults.
>
>
> --
> [EMAIL PROTECTED]
> http://varrojo.linuxuruguay.org
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>


-- 
********************************************
Adrian Egli
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to