[osg-users] 32bit DEPTH for RTT

Glenn Waldron gwaldron at gmail.com
Thu Oct 20 09:52:09 PDT 2016


Up vector doesn't really matter, so just pick one like:

side = cross(view_vec, (0,0,1));
up = cross(side, view_vec);



Glenn Waldron

On Thu, Oct 20, 2016 at 12:00 PM, Trajce Nikolov NICK <
trajce.nikolov.nick at gmail.com> wrote:

> Just last question .. What the 'up' vector would be now for making the
> light matrix in view space?
>
> On Thu, Oct 20, 2016 at 5:39 PM, Trajce Nikolov NICK <
> trajce.nikolov.nick at gmail.com> wrote:
>
>> Glenn,
>>
>> this worked ... :-) ... Thanks for the hint ...
>>
>> On Thu, Oct 20, 2016 at 5:02 PM, Trajce Nikolov NICK <
>> trajce.nikolov.nick at gmail.com> wrote:
>>
>>> wops ..
>>>
>>> mx.makeLookAt(lightPosInViewSpace,lightPosInViewSpace+lightD
>>> irInViewSpace,up)
>>>
>>> On Thu, Oct 20, 2016 at 5:00 PM, Trajce Nikolov NICK <
>>> trajce.nikolov.nick at gmail.com> wrote:
>>>
>>>> Thanks Glenn,
>>>>
>>>> actually I was expecting this. I have the math to get the light
>>>> direction in view space, just the construction of the light matrix in view
>>>> space hurts my head a bit ( I missed that part of the class :-) )
>>>>
>>>> vec3 lightDirInViewSpace;
>>>> vec3 lightPosInViewSpace;
>>>> mx.makeLookAt(lightPosInViewSpace,lightPosInViewSpace+lightP
>>>> osInViewSpace,up)
>>>>
>>>> Something like this?
>>>>
>>>> On Thu, Oct 20, 2016 at 4:04 PM, Glenn Waldron <gwaldron at gmail.com>
>>>> wrote:
>>>>
>>>>> There's your precision loss, you can't do that with ECEF coordinates
>>>>> or they will be truncated.
>>>>>
>>>>> Better idea: build your light matrix in view space on the CPU (instead
>>>>> of world space), and then use it on the view-space vertex in the shader.
>>>>> (You'll have to update it every time the camera moves, of course.)
>>>>>
>>>>>
>>>>> Glenn Waldron
>>>>>
>>>>> On Thu, Oct 20, 2016 at 10:00 AM, Trajce Nikolov NICK <
>>>>> trajce.nikolov.nick at gmail.com> wrote:
>>>>>
>>>>>> Hi Glenn,
>>>>>>
>>>>>> vec3 vVertex = vec3(gl_ModelViewMatrix * VertexMODEL);
>>>>>> worldSpaceVertex = osg_ViewMatrixInverse * vec4( vVertex, 1.0 );
>>>>>>
>>>>>> Part of VP
>>>>>>
>>>>>> On Thu, Oct 20, 2016 at 3:52 PM, Glenn Waldron <gwaldron at gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Nick, how did you calculate "worldSpaceVertex"?
>>>>>>>
>>>>>>> Glenn Waldron
>>>>>>>
>>>>>>> On Thu, Oct 20, 2016 at 9:13 AM, Trajce Nikolov NICK <
>>>>>>> trajce.nikolov.nick at gmail.com> wrote:
>>>>>>>
>>>>>>>> hehe .. ok :-) .. Maybe you give me a hint.
>>>>>>>>
>>>>>>>> I have F+ lighting (written by a friend of mine) and I have
>>>>>>>> extended it so local lights cast shadows (a bit of complex code -
>>>>>>>> relatively actually, but for me it is ;-) ). Works well for flat terrains
>>>>>>>> with reasonable sizes. I am trying to make it work with ECEF terrain (for
>>>>>>>> testing I use osgearth). The debug code works just fine, I am seeing the
>>>>>>>> renderings from the local lights are correct, so the light view matrix
>>>>>>>> passed to the shader is correct, but getting z-fights with
>>>>>>>> setInternalFormat(GL_DEPTH_COMPONENT); only. Here is my setup for
>>>>>>>> the RTT (it is texturearray):
>>>>>>>>
>>>>>>>> http://pastebin.com/Nnc2iA1F
>>>>>>>>
>>>>>>>> With DEPTH32bit (really naive approach, I "was" thinking fast the
>>>>>>>> increase of the DEPTH precision will solve this issue, just recently
>>>>>>>> started with reading papers and I must admit I am not a "shadowing expert").
>>>>>>>>
>>>>>>>> Further, I am calculating the Light View Matrix and passing it to
>>>>>>>> the shader - this one is correct as well, since I am seeing the light in
>>>>>>>> the scene with the z artifacts as I mentioned .... and this is my GLSL
>>>>>>>> snippet:
>>>>>>>>
>>>>>>>> http://pastebin.com/r2W0gh0L
>>>>>>>>
>>>>>>>> I am trying to get it done as simple as is ... meanwhile found this:
>>>>>>>>
>>>>>>>> http://developer.download.nvidia.com/SDK/10/direct3d/Source/
>>>>>>>> VarianceShadowMapping/Doc/VarianceShadowMapping.pdf
>>>>>>>>
>>>>>>>> that looks promising and apparently should help with the Z issues.
>>>>>>>>
>>>>>>>> This is my story for now, any hints are highly appreciated !!!!!
>>>>>>>>
>>>>>>>> And thanks a bunch for so far!
>>>>>>>>
>>>>>>>> Cheers,
>>>>>>>>
>>>>>>>> On Thu, Oct 20, 2016 at 2:56 PM, Voerman, L. <l.voerman at rug.nl>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> yes?
>>>>>>>>> we use a variation on OpenSceneGraph\src\osgShadow\P
>>>>>>>>> arallelSplitShadowMap.cpp
>>>>>>>>> regards, Laurens.
>>>>>>>>>
>>>>>>>>> On Thu, Oct 20, 2016 at 2:35 PM, Trajce Nikolov NICK <
>>>>>>>>> trajce.nikolov.nick at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Laurens,
>>>>>>>>>>
>>>>>>>>>> do you have experience with DEPTH32bit and shadowcomparation set
>>>>>>>>>> to true - for shadow mapping?
>>>>>>>>>>
>>>>>>>>>> On Thu, Oct 20, 2016 at 12:08 PM, Trajce Nikolov NICK <
>>>>>>>>>> trajce.nikolov.nick at gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Voerman,
>>>>>>>>>>>
>>>>>>>>>>> Yes, GL_DEPTH_COMPONENT32 was what I was missing ... Thanks a
>>>>>>>>>>> lot!
>>>>>>>>>>>
>>>>>>>>>>> Trajce
>>>>>>>>>>>
>>>>>>>>>>> On Thu, Oct 20, 2016 at 9:25 AM, Voerman, L. <l.voerman at rug.nl>
>>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Trajce,
>>>>>>>>>>>> maybe this sniplet helps?
>>>>>>>>>>>> _textureDepthBuffer = new osg::Texture2D;
>>>>>>>>>>>> _textureDepthBuffer->setTextureSize(_width+2.0f*_width*_guardBandPercentage,
>>>>>>>>>>>> _height+2.0f*_height*_guardBandPercentage);
>>>>>>>>>>>> _textureDepthBuffer->setSourceFormat(GL_DEPTH_COMPONENT);
>>>>>>>>>>>> _textureDepthBuffer->setInternalFormat(GL_DEPTH_COMPONENT32);
>>>>>>>>>>>> _textureDepthBuffer->setFilter(osg::Texture2D::MIN_FILTER,os
>>>>>>>>>>>> g::Texture2D::NEAREST);
>>>>>>>>>>>> _textureDepthBuffer->setFilter(osg::Texture2D::MAG_FILTER,os
>>>>>>>>>>>> g::Texture2D::NEAREST);
>>>>>>>>>>>> _textureDepthBuffer->setShadowComparison(false);
>>>>>>>>>>>> _textureDepthBuffer->setWrap(osg::Texture::WRAP_R,osg::Textu
>>>>>>>>>>>> re::CLAMP_TO_EDGE);
>>>>>>>>>>>> _textureDepthBuffer->setWrap(osg::Texture::WRAP_S,osg::Textu
>>>>>>>>>>>> re::CLAMP_TO_EDGE);
>>>>>>>>>>>>
>>>>>>>>>>>> // camera
>>>>>>>>>>>> _colorDepthCamera = new osg::Camera;
>>>>>>>>>>>> _colorDepthCamera->setStats(new osg::Stats("Camera"));
>>>>>>>>>>>> _colorDepthCamera->setName("colorDepth");
>>>>>>>>>>>> _colorDepthCamera->setClearMask(GL_COLOR_BUFFER_BIT |
>>>>>>>>>>>> GL_DEPTH_BUFFER_BIT);
>>>>>>>>>>>> _colorDepthCamera->setReferenceFrame(osg::Transform::RELATIV
>>>>>>>>>>>> E_RF);
>>>>>>>>>>>> // set viewport
>>>>>>>>>>>> _colorDepthCamera->setViewport(0,0,_width+2.0f*_width*_guard
>>>>>>>>>>>> BandPercentage,_height+2.0f*_height*_guardBandPercentage);
>>>>>>>>>>>> _colorDepthCamera->setRenderOrder(osg::Camera::PRE_RENDER,0);
>>>>>>>>>>>> _colorDepthCamera->setRenderTargetImplementation(osg::Camera
>>>>>>>>>>>> ::FRAME_BUFFER_OBJECT);
>>>>>>>>>>>> _colorDepthCamera->attach(osg::Camera::DEPTH_BUFFER,
>>>>>>>>>>>> _textureDepthBuffer.get(),0,0,false,0,0); // depth
>>>>>>>>>>>> _colorDepthCamera->attach(osg::Camera::COLOR_BUFFER,
>>>>>>>>>>>> _textureColorBuffer.get(),0,0,false,_msaa,_msaa); // color
>>>>>>>>>>>> regards, Laurens.
>>>>>>>>>>>>
>>>>>>>>>>>> On Wed, Oct 19, 2016 at 11:15 PM, Trajce Nikolov NICK <
>>>>>>>>>>>> trajce.nikolov.nick at gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Hi Community,
>>>>>>>>>>>>>
>>>>>>>>>>>>> anyone with clue how to set RTT osg::Texture with 32bit DEPTH?
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks a bunch as always!
>>>>>>>>>>>>> Cheers,
>>>>>>>>>>>>> Nick
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> trajce nikolov nick
>>>>>>>>>>>>>
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> osg-users mailing list
>>>>>>>>>>>>> osg-users at lists.openscenegraph.org
>>>>>>>>>>>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-opens
>>>>>>>>>>>>> cenegraph.org
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> osg-users mailing list
>>>>>>>>>>>> osg-users at lists.openscenegraph.org
>>>>>>>>>>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-opens
>>>>>>>>>>>> cenegraph.org
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> trajce nikolov nick
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> trajce nikolov nick
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> osg-users mailing list
>>>>>>>>>> osg-users at lists.openscenegraph.org
>>>>>>>>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-opens
>>>>>>>>>> cenegraph.org
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> osg-users mailing list
>>>>>>>>> osg-users at lists.openscenegraph.org
>>>>>>>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-opens
>>>>>>>>> cenegraph.org
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> trajce nikolov nick
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> osg-users mailing list
>>>>>>>> osg-users at lists.openscenegraph.org
>>>>>>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-opens
>>>>>>>> cenegraph.org
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> osg-users mailing list
>>>>>>> osg-users at lists.openscenegraph.org
>>>>>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-opens
>>>>>>> cenegraph.org
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> trajce nikolov nick
>>>>>>
>>>>>> _______________________________________________
>>>>>> osg-users mailing list
>>>>>> osg-users at lists.openscenegraph.org
>>>>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-opens
>>>>>> cenegraph.org
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> osg-users mailing list
>>>>> osg-users at lists.openscenegraph.org
>>>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-opens
>>>>> cenegraph.org
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> trajce nikolov nick
>>>>
>>>
>>>
>>>
>>> --
>>> trajce nikolov nick
>>>
>>
>>
>>
>> --
>> trajce nikolov nick
>>
>
>
>
> --
> trajce nikolov nick
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20161020/7eb390d1/attachment-0003.htm>


More information about the osg-users mailing list