> On March 25, 2012, 2:55 a.m., Tofu Buzzard wrote:
> > I'd like to see the mis-named handleReleaseLUTBufferChanged be called 
> > handleLUTBufferChanged, and ideally I'd like some comment (probably in the 
> > LUT creation) about why the results of lookups should be multiplied by 4 
> > (to avoid saturation in the LUT?).
> > Otherwise, I reckon this is great.
> 
> Oz Linden wrote:
>     I concur with both of these comments, and have asked for a review from 
> Dave.

The reasoning for doing this is basically just as you said, to avoid saturation 
in the LUT since most energy conserving specular models tend to exceed a 
floating point range of 0 to 1, something that should be accounted for when 
storing the results in an R8 LUT.
Granted, one could just use a floating point LUT instead, but driver support 
can be a bit spotty for R16F and R32F.  However, storing in an R16F LUT is 
something to look into in the future regardless if only to reduce banding.
Scaling by 6 allows us to get a bit more of a higher range (same scale used by 
RGBM encoding), though whether or not it's really necessary is something 
potentially worth investigating.


- Geenz


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://codereview.secondlife.com/r/565/#review1183
-----------------------------------------------------------


On March 25, 2012, 2:07 p.m., Geenz Spad wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://codereview.secondlife.com/r/565/
> -----------------------------------------------------------
> 
> (Updated March 25, 2012, 2:07 p.m.)
> 
> 
> Review request for Viewer and David Parks.
> 
> 
> Description
> -------
> 
> For a while now, Second Life's deferred renderer has had a somewhat "toonish" 
> looking specular model, as opposed to other platforms which try to go for 
> more physically accurate looking models, such as blinn-phong and similar.
> 
> This feature changes the specular model to a technique called normalized 
> blinn-phong. The specular model applies the usual blinn-phong term (assume 
> NdotV to the power of n), multiplied by a normalization function of:
> ((n + 2) * (n + 4)) / (8 * PI * (powf(2, -n/2) + n))
> Where n is the specular exponent.
> 
> Gamma correction is also applied to the result to bring the visual results 
> more in line with what you see in high end game engines such as Unreal Engine 
> 3 and Frostbite 2, and stored in a lookup texture.
> 
> Test plan can be found in the JIRA.
> Repository can be found here: https://bitbucket.org/Geenz/viewer-nbp
> 
> 
> This addresses bug STORM-1823.
>     http://jira.secondlife.com/browse/STORM-1823
> 
> 
> Diffs
> -----
> 
>   indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl 
> b32595c5170f92ac2dbab635955b1b86634f1475 
>   indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl 
> b32595c5170f92ac2dbab635955b1b86634f1475 
>   indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl 
> b32595c5170f92ac2dbab635955b1b86634f1475 
>   indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl 
> b32595c5170f92ac2dbab635955b1b86634f1475 
>   indra/newview/llviewercontrol.cpp b32595c5170f92ac2dbab635955b1b86634f1475 
>   indra/newview/pipeline.cpp b32595c5170f92ac2dbab635955b1b86634f1475 
> 
> Diff: http://codereview.secondlife.com/r/565/diff/diff
> 
> 
> Testing
> -------
> 
> * Tested performance characteristics - both Normalized Blinn-Phong and the 
> previous model seem to have the same performance
> * Checked the perceived "brightness" of the new highlights vs. the old ones - 
> new ones seem much brighter at higher shiny values than the old ones, and 
> seem much less "cartoonish" as such
> * Checked the impact on different bumpiness values at the test rig at Hippo 
> Hollow - noticeable visual improvement across all objects (though low shiny 
> seems to have a much more subtle light reflectance term - this is expected 
> for normalized blinn-phong)
> * Tested different LUT resolutions - best looking seems to be 512x128 with 
> seemingly no measurable decrease in performance
> 
> You can find the latest build here: 
> http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/oz_project-8/rev/251711/index.html
> 
> 
> Thanks,
> 
> Geenz Spad
> 
>

_______________________________________________
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges

Reply via email to