[osg-users] Error when using osgShadow
david boublil
davboub at gmail.com
Mon Jun 29 04:42:36 PDT 2015
Hi,
I am trying to run a simple code that I got from tutorial which is supposed to add shadows to the scene but I am getting a "floating point exception" error. I have no idea how I can solve it, I would really appreciated some help...
Here is the source code:
using namespace osg;
int main()
{
//Declaration of the objects that will form our scene
osgViewer::Viewer viewer;
ref_ptr<Group> scene (new Group);
ref_ptr<Geode> objectGeode (new Geode);
ref_ptr<Geode> terrainGeode (new Geode);
ref_ptr<Geode> lightMarkerGeode (new Geode);
//Shadow stuff!!
ref_ptr<osgShadow::ShadowedScene> shadowedScene = new osgShadow::ShadowedScene;
ref_ptr<osgShadow::ShadowMap> sm = new osgShadow::ShadowMap;
shadowedScene->setShadowTechnique(sm.get());
//Main light source
Vec3 lightPosition(0,0,3);
LightSource* ls = new LightSource;
ls->getLight()->setPosition(Vec4(lightPosition,1));
ls->getLight()->setAmbient(Vec4(0.2,0.2,0.2,1.0));
ls->getLight()->setDiffuse(Vec4(0.6,0.6,0.6,1.0));
shadowedScene->addChild(scene.get());
shadowedScene->addChild(ls);
shadowedScene->addChild(lightMarkerGeode.get());
//Next we define the material property of our objects
// material
ref_ptr<Material> matirial = new Material;
matirial->setColorMode(Material::DIFFUSE);
matirial->setAmbient(Material::FRONT_AND_BACK, Vec4(0, 0, 0, 1));
matirial->setSpecular(Material::FRONT_AND_BACK, Vec4(1, 1, 1, 1));
matirial->setShininess(Material::FRONT_AND_BACK, 64);
scene->getOrCreateStateSet()->setAttributeAndModes(matirial.get(), StateAttribute::ON);
//Adding the terrain and object nodes to the root node
scene->addChild(objectGeode.get());
scene->addChild(terrainGeode.get());
//The terrain first, a flatten box
terrainGeode->addDrawable(new ShapeDrawable(new Box(Vec3f(),5,7,0.05f)));
//Now we can define our world made of several objects
//The capsule
objectGeode->addDrawable(new ShapeDrawable(new Capsule(Vec3(1,-1,1),0.3f,0.5f)));
//The box
objectGeode->addDrawable(new ShapeDrawable(new Box(Vec3(-1,1,1),1,1,1)));
//The sphere
objectGeode->addDrawable(new ShapeDrawable(new Sphere(Vec3(1,2,1),0.5f)));
//objectGeode->addDrawable(new ShapeDrawable(new Sphere(Vec3(0,0,4.5f),0.1f)));
//And finally the light marker: a small sphere
lightMarkerGeode->addDrawable(new ShapeDrawable(new Sphere(lightPosition+osg::Vec3(0,0,0.5f),0.1f)));
viewer.setSceneData( shadowedScene.get() );
//Stats Event Handler s key
viewer.addEventHandler(new osgViewer::StatsHandler);
// add the state manipulator
viewer.addEventHandler( new osgGA::StateSetManipulator(viewer.getCamera()->getOrCreateStateSet()) );
//Windows size handler
viewer.addEventHandler(new osgViewer::WindowSizeHandler);
return(viewer .run());
}
I used the debug mode and got the following output:
RegisterWindowingSystemInterfaceProxy()
X11WindowingSystemInterface()
GraphicsContext::setWindowingSystemInterface() 0x2030620 0x7fdb2a28a5f0
CullSettings::readEnvironmentalVariables()
DatabasePager::addDatabaseThread() HANDLE_NON_HTTP
DatabasePager::addDatabaseThread() HANDLE_ONLY_HTTP
CullSettings::readEnvironmentalVariables()
CullSettings::readEnvironmentalVariables()
CullSettings::readEnvironmentalVariables()
CullSettings::readEnvironmentalVariables()
CullSettings::readEnvironmentalVariables()
itr='/opt/matlab/sys/openscenegraph/lib/glnxa64'
FindFileInPath() : trying /opt/matlab/sys/openscenegraph/lib/glnxa64/osgPlugins-2.8.1/osgdb_jpeg.so ...
itr='/opt/matlab/sys/os/glnxa64'
FindFileInPath() : trying /opt/matlab/sys/os/glnxa64/osgPlugins-2.8.1/osgdb_jpeg.so ...
itr='/opt/matlab/bin/glnxa64'
FindFileInPath() : trying /opt/matlab/bin/glnxa64/osgPlugins-2.8.1/osgdb_jpeg.so ...
itr='/opt/matlab/extern/lib/glnxa64'
FindFileInPath() : trying /opt/matlab/extern/lib/glnxa64/osgPlugins-2.8.1/osgdb_jpeg.so ...
itr='/opt/matlab/sys/java/jre/glnxa64/jre/lib/amd64/native_threads'
FindFileInPath() : trying /opt/matlab/sys/java/jre/glnxa64/jre/lib/amd64/native_threads/osgPlugins-2.8.1/osgdb_jpeg.so ...
itr='/opt/matlab/sys/java/jre/glnxa64/jre/lib/amd64/server'
FindFileInPath() : trying /opt/matlab/sys/java/jre/glnxa64/jre/lib/amd64/server/osgPlugins-2.8.1/osgdb_jpeg.so ...
itr='/homes/davidb/Downloads/local/Mesa-7.0.3/lib64/'
FindFileInPath() : trying /homes/davidb/Downloads/local/Mesa-7.0.3/lib64/osgPlugins-2.8.1/osgdb_jpeg.so ...
itr='/homes/davidb/Downloads/local/lib64/osgPlugins-2.8.1/'
FindFileInPath() : trying /homes/davidb/Downloads/local/lib64/osgPlugins-2.8.1/osgPlugins-2.8.1/osgdb_jpeg.so ...
itr='/homes/davidb/Downloads/local/lib64'
FindFileInPath() : trying /homes/davidb/Downloads/local/lib64/osgPlugins-2.8.1/osgdb_jpeg.so ...
FindFileInPath() : USING /homes/davidb/Downloads/local/lib64/osgPlugins-2.8.1/osgdb_jpeg.so
Opened DynamicLibrary osgPlugins-2.8.1/osgdb_jpeg.so
FindFileInPath(ground.jpg): returning ground.jpg
try to read image
can't read image with osgdb
View::setSceneData() Reusing exisitng scene0x2031480
CullSettings::readEnvironmentalVariables()
CullSettings::readEnvironmentalVariables()
CullSettings::readEnvironmentalVariables()
CullSettings::readEnvironmentalVariables()
CullSettings::readEnvironmentalVariables()
Viewer::realize() - No valid contexts found, setting up view across all screens.
GraphicsContext::getWindowingSystemInterface() 0x2030620 0x7fdb2a28a5f0
GraphicsContext::registerGraphicsContext 0x204b140
GraphicsContext::getWindowingSystemInterface() 0x2030620 0x7fdb2a28a5f0
GraphicsContext::createNewContextID() creating contextID=0
Updating the MaxNumberOfGraphicsContexts to 1
GraphicsWindow has been created successfully.
Viewer::startThreading() - starting threading
Viewer::startThreading() - contexts.size()=1
Making scene thread safe
Doing add
Doing add
Doing add
gc->getGraphicsThread()->startThread() 0x233c5e0
Set up threading
View::init()
FocusOut/UnmapNotify event received
FocusIn event received
KeymapNotify event received
CullSettings::readEnvironmentalVariables()
Done DatabasePager::addLoadedDataToSceneGraph0.001ms, 0ms objects0
Doing run 0x233c5e0 isRunning()=1
OpenGL extensions supported by installed OpenGL drivers are:
GL_APPLE_packed_pixels
GL_APPLE_vertex_array_object
GL_ARB_depth_texture
GL_ARB_draw_buffers
GL_ARB_fragment_program
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_shading_language_120
GL_ARB_shadow
GL_ARB_shadow_ambient
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_crossbar
GL_ARB_texture_env_dot3
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_blend_equation_separate
GL_ATI_fragment_shader
GL_ATI_separate_stencil
GL_ATI_texture_env_combine3
GL_ATI_texture_mirror_once
GL_EXT_abgr
GL_EXT_bgra
GL_EXT_blend_color
GL_EXT_blend_equation_separate
GL_EXT_blend_func_separate
GL_EXT_blend_logic_op
GL_EXT_blend_minmax
GL_EXT_blend_subtract
GL_EXT_clip_volume_hint
GL_EXT_compiled_vertex_array
GL_EXT_convolution
GL_EXT_copy_texture
GL_EXT_depth_bounds_test
GL_EXT_draw_range_elements
GL_EXT_fog_coord
GL_EXT_framebuffer_blit
GL_EXT_framebuffer_object
GL_EXT_gpu_program_parameters
GL_EXT_histogram
GL_EXT_multi_draw_arrays
GL_EXT_packed_depth_stencil
GL_EXT_packed_pixels
GL_EXT_paletted_texture
GL_EXT_pixel_buffer_object
GL_EXT_point_parameters
GL_EXT_polygon_offset
GL_EXT_rescale_normal
GL_EXT_secondary_color
GL_EXT_separate_specular_color
GL_EXT_shadow_funcs
GL_EXT_shared_texture_palette
GL_EXT_stencil_wrap
GL_EXT_subtexture
GL_EXT_texture
GL_EXT_texture3D
GL_EXT_texture_edge_clamp
GL_EXT_texture_env_add
GL_EXT_texture_env_combine
GL_EXT_texture_env_dot3
GL_EXT_texture_lod_bias
GL_EXT_texture_mirror_clamp
GL_EXT_texture_object
GL_EXT_texture_rectangle
GL_EXT_texture_sRGB
GL_EXT_timer_query
GL_EXT_vertex_array
GL_IBM_multimode_draw_arrays
GL_IBM_rasterpos_clip
GL_IBM_texture_mirrored_repeat
GL_INGR_blend_func_separate
GL_MESA_pack_invert
GL_MESA_program_debug
GL_MESA_resize_buffers
GL_MESA_window_pos
GL_MESA_ycbcr_texture
GL_NV_blend_square
GL_NV_fragment_program
GL_NV_light_max_exponent
GL_NV_point_sprite
GL_NV_texgen_reflection
GL_NV_texture_rectangle
GL_NV_vertex_program
GL_NV_vertex_program1_1
GL_OES_read_format
GL_SGIS_generate_mipmap
GL_SGIS_texture_border_clamp
GL_SGIS_texture_edge_clamp
GL_SGIS_texture_lod
GL_SGIX_depth_texture
GL_SGIX_shadow
GL_SGIX_shadow_ambient
GL_SGI_color_matrix
GL_SGI_color_table
GL_SGI_texture_color_table
GL_SUN_multi_draw_arrays
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 not supported.
OpenGL extension 'GL_ARB_occlusion_query' is supported.
OpenGL extension 'GL_EXT_timer_query' is supported.
OpenGL extension '' is not supported.
Done DatabasePager::addLoadedDataToSceneGraph0ms, 0.001ms objects0
OpenGL extension 'GL_ARB_pixel_buffer_object' is supported.
OpenGL extension 'GL_ARB_fragment_program' is supported.
OpenGL extension 'GL_EXT_framebuffer_object' is supported.
OpenGL extension 'GL_EXT_framebuffer_blit' is supported.
OpenGL extension 'GL_EXT_framebuffer_multisample' is not supported.
OpenGL extension 'GL_NV_framebuffer_multisample_coverage' is not supported.
OpenGL extension 'GL_EXT_packed_depth_stencil' 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.
OpenGL extension 'GL_EXT_geometry_shader4' is not supported.
OpenGL extension 'GL_EXT_gpu_shader4' is not supported.
glVersion=2.1, isGlslSupported=YES, glslLanguageVersion=1.1
OpenGL extension 'GL_ARB_vertex_program' is supported.
Setting up osg::Camera::FRAME_BUFFER_OBJECT
OpenGL extension 'GL_ARB_multitexture' is supported.
OpenGL extension 'GL_EXT_texture_filter_anisotropic' is not supported.
OpenGL extension 'GL_ARB_texture_compression' is supported.
OpenGL extension 'GL_EXT_texture_compression_s3tc' is not supported.
OpenGL extension 'GL_IBM_texture_mirrored_repeat' is supported.
OpenGL extension 'GL_EXT_texture_edge_clamp' is supported.
OpenGL extension 'GL_ARB_texture_border_clamp' is supported.
OpenGL extension 'GL_SGIS_generate_mipmap' is supported.
OpenGL extension 'GL_ARB_shadow' is supported.
OpenGL extension 'GL_ARB_shadow_ambient' is supported.
OpenGL extension 'GL_APPLE_client_storage' is not supported.
OpenGL extension 'GL_ARB_texture_non_power_of_two' is supported.
OpenGL extension 'GL_EXT_texture_integer' is not supported.
Setting up osg::Camera::FRAME_BUFFER
Compiling FRAGMENT source:
uniform sampler2D osgShadow_baseTexture;
uniform sampler2DShadow osgShadow_shadowTexture;
uniform vec2 osgShadow_ambientBias;
void main(void)
{
vec4 color = gl_Color * texture2D( osgShadow_baseTexture, gl_TexCoord[0].xy );
gl_FragColor = color * (osgShadow_ambientBias.x + shadow2DProj( osgShadow_shadowTexture, gl_TexCoord[1] ) * osgShadow_ambientBias.y);
}
Linking osg::Program "" id=1 contextID=0
Floating point exception
./a.out: Floating point exception
Thank a lot!
Cheers,
David
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=64208#64208
More information about the osg-users
mailing list