[osg-users] 32bit DEPTH for RTT

Trajce Nikolov NICK trajce.nikolov.nick at gmail.com
Thu Oct 20 06:13:36 PDT 2016


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\
> ParallelSplitShadowMap.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::RELATIVE_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-openscenegraph.org
>>
>>
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>


-- 
trajce nikolov nick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20161020/57b24ed8/attachment-0003.htm>


More information about the osg-users mailing list