Jump to content

  • Log In with Google      Sign In   
  • Create Account

PBR Implementation Details


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
3 replies to this topic

#1 AxeGuywithanAxe   Members   -  Reputation: 188

Like
0Likes
Like

Posted 31 August 2014 - 07:45 PM

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.

                                        

Attached Thumbnails

  • Diffuse_And_Specular_Roughness_0_1_Metallic_0.PNG
  • Diffuse_And_Specular_Roughness_1_0_Metallic_0.PNG
  • Specular_Only_Roughness_0_1_Metallic_1_0.PNG
  • Specular_Only_Roughness_1_0_Metallic_1_0.PNG


Sponsor:

#2 AxeGuywithanAxe   Members   -  Reputation: 188

Like
0Likes
Like

Posted 31 August 2014 - 07:47 PM

The pictures do not show the rectangular squares that the actual rendering produces, and I am currently using the gold F0 values courtesy of https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/PhysicallyBased/index.html



#3 Hodgman   Moderators   -  Reputation: 31799

Like
0Likes
Like

Posted 31 August 2014 - 07:57 PM

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?



#4 AxeGuywithanAxe   Members   -  Reputation: 188

Like
0Likes
Like

Posted 31 August 2014 - 08:32 PM

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 . 






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS