Hi Clement, The numerical issue you have found causing a crash is a curious one.
The gl_Vertex isn't a normalized on any system, osgVolume::RayTracedTechnique does use a unit cube for it's geometry though, so the vertex data should all be in the 0.0f to 1.0f range. Perhaps the intel driver/hardware combination is resulting in some numerical precision issue so that the values are going slightly outside the 0 to 1.0f range, but even if it does I wouldn't expect the fragment shaders to suddenly have problems. Is there are specific line in the shader that you think is cause the crash? FYI, osgVolume checks for the shader/volume.vert and shader/volume.frag filenames first then fallsback to the built in shaders that are found in the src/osgVolume/Shaders/volume_frag.cpp. The shader/volume.frag can be found in OpenSceneGraph-Data/shader so if you have this available and it's on the OSG_FILE_PATH then you should be able to edit the shader files without recompiling the application. Robert. Robert. On 1 September 2017 at 08:11, <[email protected]> wrote: > Hi, > > Finally I found where causes the problem. For some reasons, gl_Vertex > is not normalized. I looked at osg shader source code > (src\osgVolume\Shaders). For example, in file volume_frag.cpp, > > vec4 t0 = vertexPos; > vec4 te = cameraPos; > > // by default te did to check the range (0 and 1), but t0 did not. > // If I added some codes to check the range, then the problem is > completed gone. > > if (t0.x<0.0) t0.x = 0.0; if (t0.x>1.0) t0.x = 1.0; > if (t0.y<0.0) t0.y = 0.0; if (t0.y>1.0) t0.y = 1.0; > f (t0.z<0.0) t0.z = 0.0; if (t0.z>1.0) t0.z = 1.0; > > > I believe the problem is related to GLSL version and latest Intel HD > Graphics driver is using higher version of GLSL, but gl_Vertex does not > normalize or the value is just over 1 or less then 0 (eg. 1.00001). Then > it causes the crash when running the sampling loop. I am not an expert on > GLSL, so I would like to confirm the best solution to handle this problem. > Thanks. > > > Regards, > Clement Chu > > ________________________________________ > From: osg-users <[email protected]> on behalf of > [email protected] <[email protected]> > Sent: Wednesday, 30 August 2017 17:31 > To: [email protected] > Subject: [ExternalEmail] [osg-users] RayTracedTechnique hangs with Intel > HD Graphics > > Hi, > > My program uses RayTracedTechnique for volume rendering, but it hangs > with Intel HD graphics 520, 530 and 620. My old laptop works fine which is > using Intel HD Graphic 3000. Other machines with Nvidia cards are working > fine too. I believe the problem is on shaders in the sampling loop. My > program is using osg 3.2.3. I also tried to upgrade to osg 3.4.1, but the > same problem occurred with Intel HD Graphic 520, 530 and 620. Do anyone > have similar problem and any solution to fix it? Many thanks. > > > Regards, > Clement Chu > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org >
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

