top: lightmap on zanzibar bottom left: artist’s output bottom right: optimized lightmap
DESCRIPTION
Top: lightmap on Zanzibar Bottom left: artist’s output Bottom right: optimized lightmap. Sub chart optimization. Inter charts optimization is not good enough for big charts with only several high frequency triangles Cut the connected low frequency triangles out of the original chart. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Top: lightmap on Zanzibar Bottom left: artist’s output Bottom right: optimized lightmap](https://reader035.vdocument.in/reader035/viewer/2022062321/56812f43550346895d94d597/html5/thumbnails/1.jpg)
Top: lightmap on ZanzibarBottom left: artist’s outputBottom right: optimized lightmap
![Page 2: Top: lightmap on Zanzibar Bottom left: artist’s output Bottom right: optimized lightmap](https://reader035.vdocument.in/reader035/viewer/2022062321/56812f43550346895d94d597/html5/thumbnails/2.jpg)
Sub chart optimization
• Inter charts optimization is not good enough for big charts with only several high frequency triangles
• Cut the connected low frequency triangles out of the original chart
![Page 3: Top: lightmap on Zanzibar Bottom left: artist’s output Bottom right: optimized lightmap](https://reader035.vdocument.in/reader035/viewer/2022062321/56812f43550346895d94d597/html5/thumbnails/3.jpg)
Top: One chart on RiverworldBottom left: signal analysisBottom right: optimized charts
![Page 4: Top: lightmap on Zanzibar Bottom left: artist’s output Bottom right: optimized lightmap](https://reader035.vdocument.in/reader035/viewer/2022062321/56812f43550346895d94d597/html5/thumbnails/4.jpg)
Key idea 2/2 - DXT compression
• Use two DXT5 textures to compress the SH coefficients (HDR, positive/negative)
Alpha (Luminance) / 64 bits
RGB / 64 bits
Alpha (Luminance) / 64 bits
RGB / 64 bits
DXT[0]:
DXT[1]:
4 x 4 block:
![Page 5: Top: lightmap on Zanzibar Bottom left: artist’s output Bottom right: optimized lightmap](https://reader035.vdocument.in/reader035/viewer/2022062321/56812f43550346895d94d597/html5/thumbnails/5.jpg)
“Luvw” space
• Each band of the SH coefficients (RGB) are converted to “Luvw” space.
• L: magnitude of the RGB vector – Nonnegative– Stored in DXT5’s alpha channel because
of its better precision (3 bits palette)
• Uvw: normalized vector– Has a good coherence usually when we
store it in DXT5’s rgb channels
![Page 6: Top: lightmap on Zanzibar Bottom left: artist’s output Bottom right: optimized lightmap](https://reader035.vdocument.in/reader035/viewer/2022062321/56812f43550346895d94d597/html5/thumbnails/6.jpg)
Luminance
• Compress the square root of the luminance to have a higher dynamic range
• Similar to log space, but it is cheaper to decode it
![Page 7: Top: lightmap on Zanzibar Bottom left: artist’s output Bottom right: optimized lightmap](https://reader035.vdocument.in/reader035/viewer/2022062321/56812f43550346895d94d597/html5/thumbnails/7.jpg)
Luminance compression
• Use the 2nd DXT to compensate the error( L_block: input block )
Block[0] = DXT_compress ( sqrt ( L_block ) )DXT[0]:
Alpha channel of a 4 x 4 block
Block[1] = DXT_compress ( L_block / Decompress ( Block[0] ) ) )
DXT[1]:
![Page 8: Top: lightmap on Zanzibar Bottom left: artist’s output Bottom right: optimized lightmap](https://reader035.vdocument.in/reader035/viewer/2022062321/56812f43550346895d94d597/html5/thumbnails/8.jpg)
Decode and result
• Luminance = alpha0*alpha1*maximum_luminance
• Result ( after 5x exposure )– Alpha0 *Alpha1
– Alpha0 * Alpha0
– Alpha1 * Alpha1
![Page 9: Top: lightmap on Zanzibar Bottom left: artist’s output Bottom right: optimized lightmap](https://reader035.vdocument.in/reader035/viewer/2022062321/56812f43550346895d94d597/html5/thumbnails/9.jpg)
Color / uvw
Block[0] = DXT_compress ( RGB_block / 2 +0.5 )
Block[1] = DXT_compress ( ( RGB_block – Decompress ( Block[0] ) ) / 2 + 0.5 )
DXT[0]:
DXT[1]:
RGB channel of a 4 x 4 block
• Use the 2nd DXT to compensate the error( RGB_block is the input block )
• Decode:• RGB = ( rgb0 + rgb1 ) * 2 - 2
![Page 10: Top: lightmap on Zanzibar Bottom left: artist’s output Bottom right: optimized lightmap](https://reader035.vdocument.in/reader035/viewer/2022062321/56812f43550346895d94d597/html5/thumbnails/10.jpg)
3 Dimensional compression
• Signal compression:• Inter chart and sub chart
optimization• Get smaller width and height
• DXT compression:• Two DXT textures for each SH
coefficient channel• Smaller space per texel
![Page 11: Top: lightmap on Zanzibar Bottom left: artist’s output Bottom right: optimized lightmap](https://reader035.vdocument.in/reader035/viewer/2022062321/56812f43550346895d94d597/html5/thumbnails/11.jpg)
Misc Items
• Use 2nd order derivative to analysis the signal
• Intra chart optimization• Geometry optimization• Its effect on lightmap farm:
– Resample or regenerate
• Noise reduction• Use exp ( alpha0 + alpha1 ) if you need
more
![Page 12: Top: lightmap on Zanzibar Bottom left: artist’s output Bottom right: optimized lightmap](https://reader035.vdocument.in/reader035/viewer/2022062321/56812f43550346895d94d597/html5/thumbnails/12.jpg)
Acknowledgement
• Bungie– Xi Wang ( DXT compression )
• Microsoft Research Asia– Minmin Gong ( signal compression )