Jump to content

  • Log In with Google      Sign In   
  • Create Account

Awesome job so far everyone! Please give us your feedback on how our article efforts are going. We still need more finished articles for our May contest theme: Remake the Classics

#Actualopengl_beginner

Posted 18 November 2012 - 04:02 AM

Short answer: You can't really. Representing a point-light requires an infinite number of coefficients. Long answer: You can approximate it using a circular shape. The paper "Algorithms for Spherical Harmonic-Lighting" By Ian G. Lisle and S.-L. Tracy Huang gives a method for calculating the coefficients for this directly.


Hey ginkgo! Well, yes - but isn't that exactly the idea behind spherical harmonics - approximating a function using a polynomial of a finite degree (e.g. degree 2 already gives an error rate less than 1%).

I have found several methods for computing the coefficients, amongst others, the original project page for irradiance computation:
Link, which provides the function prefilter.c to compute coefficients.

But the input to this function is an environment map (an image), for which the lighting is computed.


You'd also have to know the distance to the light.


Well, as I mentioned, let's take the direction vector [0 0 1], with an infinite point light source.


Further suggestions?

#3opengl_beginner

Posted 18 November 2012 - 04:01 AM

Short answer: You can't really. Representing a point-light requires an infinite number of coefficients. Long answer: You can approximate it using a circular shape. The paper "Algorithms for Spherical Harmonic-Lighting" By Ian G. Lisle and S.-L. Tracy Huang gives a method for calculating the coefficients for this directly.


Hey ginkgo! Well, yes - but isn't that exactly the idea behind spherical harmonics - approximating a function using a polynomial of a finite degree (e.g. degree 2 already gives an error rate less than 1%).

I have found several methods for computing the coefficients, amongst others, the original project page for irradiance computation:
Link, which provides the function prefilter.c to compute coefficients.

But the input to this function is an environment map (an image), for which the lighting is computed.


You'd also have to know the distance to the light.


Well, as I mentioned, let's take the direction vector [0 0 1], with an infinite point light source.


Further suggestions?

#2opengl_beginner

Posted 18 November 2012 - 04:01 AM

Short answer: You can't really. Representing a point-light requires an infinite number of coefficients. Long answer: You can approximate it using a circular shape. The paper "Algorithms for Spherical Harmonic-Lighting" By Ian G. Lisle and S.-L. Tracy Huang gives a method for calculating the coefficients for this directly.


Hey ginkgo! Well, yes - but isn't that exactly the idea behind spherical harmonics - approximating a function using a polynomial of a finite degree (e.g. degree 2 already gives an error rate less than 1%).

I have found several methods for computing the coefficients, amongst others, the original project page for irradiance computation:
Link, which provides the function prefilter.c to compute coefficients.

But the input to this function is an environment map (an image), for which the lighting is computed.


You'd also have to know the distance to the light.


Well, as I mentioned, let's take the direction vector [0 0 1], with an infinite point light source.


Further suggestions?

#1opengl_beginner

Posted 18 November 2012 - 04:00 AM

Short answer: You can't really. Representing a point-light requires an infinite number of coefficients. Long answer: You can approximate it using a circular shape. The paper "Algorithms for Spherical Harmonic-Lighting" By Ian G. Lisle and S.-L. Tracy Huang gives a method for calculating the coefficients for this directly.

Hey ginkgo! Well, yes - but isn't that exactly the idea behind spherical harmonics - approximating a function using a polynomial of a finite degree (e.g. degree 2 already gives an error rate less than 1%).

I have found several methods for computing the coefficients, amongst others, the original project page for irradiance computation:
Link, which provides the function prefilter.c to compute coefficients.

But the input to this function is an environment map (an image), for which the lighting is computed.


You'd also have to know the distance to the light.


Well, as I mentioned, let's take the direction vector [0 0 1], with an infinite point light source.


Further suggestions?

PARTNERS