• Create Account

Banner advertising on our site currently available from just \$5!

skytiger

Member Since 28 Sep 2007
Offline Last Active Jul 06 2013 02:34 PM

Topics I've Started

05 May 2013 - 01:33 AM

Imagine a surface which radiates light equally in all directions from all points

if we measure the radiance of the surface from two positions

one opposite the surface

and one at a 45 degree angle

would the measured radiance be the same?

Luminance

08 April 2013 - 05:14 PM

I have read many papers in my efforts to understand Luminance

I understand the other photometric terms (Intensity, Flux, Illuminance, Reflectance, Emittance)

and I have no problem with 3D geometry (solid angles, projected areas) or cosine laws etc.

Units for HDR Textures

01 April 2013 - 02:15 PM

What units are the values in an HDR texture?

Unless they use radiometric or photometric units wouldn't it be hard to combine HDR textures in one game?

In MAX photometric rendering I can specify light values in lumens or candelas ... but what is stored in the output texture?

Is there an important difference between illuminance and luminance?

I think an HDR light map (recording incident light on a surface) would need to store illuminance

whereas an HDR environment map or light probe would store luminance?

Gamma from sRGB Texture to Human Brain

30 March 2013 - 01:45 PM

Trying to understand the full gamma pipeline from sRGB Texture to Human Brain

To simplify discussion I am using these terms:

LIGHTEN = gamma encode / correct = pow(linear, 1 / 2.2)

DARKEN = gamma decode = pow(linear, 2.2)

LINEAR = color data in color space where human perceives 50% as half way between 0% and 100%

LIGHT = gamma encoded color data
DARK = gamma decoded color data

The non-linear transfer functions in the pipeline are:

sRGB Gamma Encode = pow(linear, 1 / 2.2) // LIGHTEN

CRT Gamma Response = pow(corrected, 2.2) // DARKEN

Human Perception of Luminance = pow(luminance, 1 / 2.2) // LIGHTEN

The pipeline:

------------------------------------------------------------------------
ELEMENT                     CHANGE      STATE
------------------------------------------------------------------------
SRGB FILE                               LIGHT

GAMMA DECODING SAMPLER      DARKEN                      // sRGBTexture

LINEAR WORKSPACE                        LINEAR          // Interpolation and Blending

GAMMA CORRECTION            LIGHTEN                     // sRGBWrite

LIGHT LEAVING GPU                       LIGHT           // Gamma Corrected

LIGHT LEAVING CRT           DARKEN                      // CRT Gamma Response

LIGHT ENTERING EYE                      LINEAR          // Luminance

HUMAN PERCEPTION            LIGHTEN                     // We are sensitive to dark

BRAIN                                   LIGHT           // This should be LINEAR ...
------------------------------------------------------------------------

However I rearrange this pipeline I can't get LINEAR in both the BRAIN
and the LINEAR WORKSPACE

Here is another attempt:

------------------------------------------------------------------------
ELEMENT                     CHANGE      STATE
------------------------------------------------------------------------
SRGB FILE                               LINEAR

GAMMA DECODING SAMPLER      DARKEN                      // sRGBTexture

LINEAR WORKSPACE                        DARK            // THIS DOESN'T WORK NOW

GAMMA CORRECTION            LIGHTEN                     // sRGBWrite

LIGHT LEAVING GPU                       LINEAR          // Gamma Corrected

LIGHT LEAVING CRT           DARKEN                      // CRT Gamma Response

LIGHT ENTERING EYE                      DARK            // Luminance

HUMAN PERCEPTION            LIGHTEN                     // We are sensitive to dark

BRAIN                                   LINEAR          // This works!
------------------------------------------------------------------------

Can anybody illuminate things for me? Preferably gamma corrected ...

float2 dx = ddx(uv.xy * size.x); // does this make sense?

06 December 2012 - 08:22 AM

(given that uv is float2)

shouldn't it be:

[source lang="cpp"]float dx = ddx(uv.x * size.x);float dy = ddy(uv.y * size.y);[/source]

and why is there an ddx() and a ddy() ? why not just a dd() ?

PARTNERS