Hi Peter,

Do you have a link to a paper/slides explaining why they store an
“optimal linear” direction separately? I’m not sure why you wouldn’t want to
just use the L1 coeffs as a vector?

I couldn’t find an explanation in the links below.

Thanks,

Sam

**From:** Peter-Pike Sloan
[mailto:peter_pike_sloan@hotmail.com]

**Sent:** 01 February 2010 21:45

**To:** gdalgorithms-list@lists.sourceforge.net

**Subject:** Re: [Algorithms] Some question about "Lighting and
Material of Halo3" and "Lightmap compression in Halo 3"

Hi,

I believe the source of confusion is that
in this equation (5) things are expressed in the local coordinate frame, the
fact that they show 3 coefficients implies they are using quadratic SH (so when
rotated into the local frame and integrated against a clamped cosine function
you only need the 3 ZH coefficients.) The general case (where you don't
know the coordinate frame, or you want to evaluate for any normal) requires all
9 coefficients.

I
think the "5*3" comes from the compression mentioned in Hao's slides
(linear SH + RGB for directional light in "optimal linear" direction.
Which is 5*3 scalars.)

The
compression work is Wang et al, I think Yaohua's slides are more indicative of
what was actually used...

Peter-Pike
Sloan

Date: Fri, 29 Jan 2010 16:28:57 +0100

From: sebastien.lagarde@dont-nod.com

To: gdalgorithms-list@lists.sourceforge.net

Subject: [Algorithms] Some question about "Lighting and Material of
Halo3" and "Lightmap compression in Halo 3"

Hello
all,

I
tried to contact the author of this two (now old) paper, without success,:

"Lighting
and Material of Halo 3" published at siggraph 2008
(http://ati.amd.com/developer/SIGGRAPH08/Chapter01-Chen-Lighting_and_Material_of_Halo3.pdf)

and
GDC 2008 conference "Lightmap compression in Halo 3"
(http://toomuchlogic.com/Lightmap_Compression_2008_02_22.pdf)

so
I will ask some question to the list, if anyone is interested by the subject
and has better understanding of math than me :)

1.
"Lighting and Material of Halo 3" About equation (5) the
diffuse reflectance using SH basis

the
diffuse reflectance using SH basis is : k_d R_d Sum Lambda_i A_i

A_i
is the projection of the cosine lobe in SH, and as it is radially symetric.

all
coefficient with m != 0 are 0.

After
that the author give the first three term of A_i.

I
wondering how many band are use for this calculation ? (order 3, 4 or
more ?)

I
read from "Stupid spherical harmonics tricks" from Perter Pike sloan
(http://www.ppsloan.org/publications/StupidSH36.pdf)

that
order 3 SH is sufficient for approximate light source

but
for HDR light sources he recommand order 5.

As
order 4 is 0 (From paper http://www.eecs.berkeley.edu/~ravir/lighting.pdf I get
the formula for A_i)

This
mean 4 coefficient to store by color channel.

As
I am pretty sure the author store HDR data, can someone lighten me ?

2.
About texture storage (which are deduced from above statement)

I
try to figure out how are encoded the incident radiance in their SHLightmap.

From
GDC 2008 conference "Lightmap compression in Halo 3" I can read that
the author need to

store
for each texel a vector of 5 * 3 float values.

I
don't figure what are the values exactly.

My
assumption is that "3" is for each channel color RGB,

But
I can't figure what's the 5 is ?

Are
they 5 first band of SH order like I suppose above (but as I said, we only need
4 coefficient in this case)

or
maybe order 6 ?

In
this same paper later I found:

A.
Two DXT5 texture for each SH coefficient channel (HDR, positive/negative)

And

B.
Each band of the SH coefficients (RGB) are converted to Luvw space

I
suppose that Luvw space is what is describe in this paper "Rendering from
Compressed High Dynamic Range Textures on

Programmable
Graphics Hardware" by Peter Pike sloan and
al.(ftp://ftp.research.microsoft.com/pub/tr/TR-2006-152.pdf)

What
I don't understand is that A and B seem different. I can't understand what is
store.

Are
they storing for each band the triplet RGB of SH coeeficient, mean 3 float
value for two DXT5 x order

or
do they store store 5 SH coefficient for channel color R in two DXT5 ?

So
what are the total storage cost of all the 5 * 3 float value in term of DXT5
texture ?

Cause
It looks like to be pretty big.

Thanks
for anyone interested by this post

Best
regards

Lagarde
Sébastien