Sign in to follow this  
AxeGuywithanAxe

PBR Implementation Details

Recommended Posts

AxeGuywithanAxe    1211

Hello all, this is my first time posting on this forum so i'm hoping that this will be a good experience for me. As of right now I'm working on a Tiled Deferred Shading Pipeline with PBR(simplified version of Disney PBR in the same vein as unreal engine 4), and am having difficulty getting proper results. I have gone through dozens of implementations, and even source code, from Disney and Ready At Dawn implementations, and have still not been able to gain the proper look. As of right now my implementation suffers from heavy light artifacts, banding, and specular highlight shearing, and also just overall looking wrong. 

 

       Implementation Details:

                      I am currently using a GBuffer With this layout

                                        Diffuse Albedo( based on metallic) and ambient occlusion(from prebaked occlusion map) in an RGBA8

                                        Specular Albedo ( lerp from  F0 of 0.04 to Base Color based on metallic property) in an RGBA8

                                        World Space Normal and Roughness in an RGBA8 ( I also tried an RGBA16 and multiple encoding methods to see if                                               that was the issue I was having, but there weren't any changes) 

                     In my compute shader I do the regular tiled shading approach, currently only with point lights, and my output results seem bland.

                     I will attach pictures showing the issue , source code if necessary, and will add more details to help me solve this issue. Thank you                         all in advanced.

                                        

Share this post


Link to post
Share on other sites
Hodgman    51224

The main problem I can see is that there seems to be a lot of quantization of your normals. How are they being stored in the gbuffer?

 

Also, the highlights on the non-metallic spheres are saturating to yellow in the centre, probably due to there not being enough of a high dynamic range? How are you tone-mapping the images?

Share this post


Link to post
Share on other sites
AxeGuywithanAxe    1211

Thank you for the quick response! I went through a few encoding methods, from the simplistic, -1 to 1 range to 0,1 mapping, to BFN. I also tried the method in a forward rendering pass and the same issues seem to occur, though to a lesser extent. As of right now I do not have any HDR/Tonemapping passes, but seeing as a few of the examples that I went through still retained the proper result with the lack of post processing, I'm hoping that tonemapping isn't the issue. The pictures don't show the rendering that well, but they spheres are covered by thousands of rectangles. As a disclaimer, I am also using the FBX Sdk, which I know is filled with bugs, but I believe that I have accurately extracted the normals . 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this