Jump to content

  • Log In with Google      Sign In   
  • Create Account

David Neubelt

Member Since 01 Mar 2007
Offline Last Active Jan 31 2016 01:29 AM

Posts I've Made

In Topic: Questions on Baked GI Spherical Harmonics

02 January 2016 - 11:11 PM

For the figure on page (18) it was generated with SH9 baked into light map texels. However, you're approach with a grid will work as well if it's dense enough.The occlusion will come naturally and there are no additional techniques you need to apply because at every position in shadow the cubemap will receive less light.


This works for both diffuse and ambient.


I suspect the reason you aren't seeing any occlusion is because you are adding an ambient term artificially flattening out the scene.


I've also noticed these weird arfiacts on my light probes. Is this "ringing"? Or am I just really messing up the projection step?



If there is a bright light on the opposite side of the probe then yes. Ringing can occur when you have a bright light on one side which causes that side of the probe to generate really high numbers. On the opposite side of the probe facing away from the light it will need a really high negative number to counter act the high number. 


The negative numbers are the cause of the ringing

In Topic: The Order 1886: Spherical Gaussian Lightmaps

21 August 2015 - 03:10 PM

1) To uniformly distribute the basis vectors - you can choose any distribution you want but that is just the one we went with.


2) Yes, the free parameters you want are the sharpness and amplitude.


There really is no rotation its just use the lights direction vector.


-= Dave

In Topic: View matrix - explanation of its elements

31 December 2013 - 01:40 PM

 you can perform an optimized 4x4 matrix inverse by transposing the 3x3 portion and doing the dot products to get the last row.


To expand,


If you have a transformation that is a rotation and a translation, e.g. the 3d camera's position is t and it's rotation is R then it's world transform is,


x' = Rx + t,  where R is a 3x3 matrix, x is a 3x1 matrix(column vector) and t is a 3x1 matrix(column vector). The output is x', your transformed vector.


To get a view matrix you want to bring all vertices in the frame of reference of the camera so the camera sits at the origin looking down one of the Cartesian axis. You simply need to invert the above equation and solve for x.


x' = Rx + t

x' - t = Rx

R-1(x' - t) = (R-1)Rx

RT(x' - t) = x            // because a rotation matrix is orthogonal then its transpose equals its inverse

x = RTx' - RTt


So to invert a 4x4 camera transformation matrix, efficiently, you will want to transpose the upper 3x3 block of the matrix and for the translation part of the matrix you will want to negate and transform your translation vector by the transposed rotation matrix.


-= Dave

In Topic: Spherical Worlds using Spherical Coordinates

08 October 2013 - 02:27 PM

Geodesic grids work with minimal distortion. They work by starting with an icosahedron and subdividing.



In Topic: Deferred Shading Different Light Models

19 September 2013 - 08:54 PM

We use GGX for iso/anisotropic materials at Ready At Dawn.


You can see the details in the section Core Shading Model http://blog.selfshadow.com/publications/s2013-shading-course/rad/s2013_pbs_rad_notes.pdf


-= Dave