09 real time area lights
play

09 Real time area lights Steve Marschner CS5625 Spring 2019 - PowerPoint PPT Presentation

09 Real time area lights Steve Marschner CS5625 Spring 2019 <latexit


  1. 09 Real time area lights Steve Marschner CS5625 Spring 2019

  2. <latexit sha1_base64="5cykLyE0VWrwpOC4rThjC1qBA=">ACb3icbZDfbtMwFMbd8G8U2LpxwQUSsqiQWqk0SduxcjExiRsQlRgS3SY1VeQ4J5012wm2E62K9kx7ml3sBl4B3gAnGQgQR7L083fO8fH5owzbTzvuXcun3n7r2N+0HDx9tbnW2d450misKc5ryVJ1ERANnEuaGQ4nmQIiIg7H0dnbKn9cgNIslZ/NOoOlICvJEkaJsVLYeT8LVS8oij7exwGTJgw+ClgRnDTyAcF7wcDPAtZr0JsuQIc0Dg1NisrKbZK2Ol6w6m/6+2NcQOT1zfwaoz9oVdH9813VMdhuN3aDOKU5gKkoZxovfC9zAwSDl/ksiTKMrhoh3kGjJCz8gKFhYlEaCXZb35BX5hlRgnqbJHGlyrf3aURGi9FpGtFMSc6n9zlfi/3CI3yXRZMpnlBiRtBiU5xybFlY04Zgqo4WsLhCpm/4rpKVGEGmt2O6gbS3eu7c3VSrgzFimi1q6Bc5G4TFKex+DauYqdvyzsU3ab2sHJaDSdVA5WMPZ/wfS3g0ejoT8ep8m3YMPjZVoAz1Fz1EP+WgPHaB36BDNEUWX6Ap9Rd9aP5wnzjMHN6VO6bnMfornP5PFCa8nw=</latexit> Area lighting when lights are not point-like, we have an integration problem Z L r ( v ) = f r ( v , l ) L i ( l ) ( l · n ) d l Ω • for real time we need fast analytic solutions to (approximations of) this definite integral • the form of the solution depends on the form of L i and f r . di ff use This is all with no • polygonal lights: analytical solution due to Lambert (1760) shadows! That is a (large-ish) topic for • environment lights: irradiance environment maps later in the course. specular • polygonal lights: linearly transformed cosines • environment lights: prefiltered environment maps

  3. <latexit sha1_base64="mnZwKcjMwFPBAkOHUka0pds4Fc=">ACpHicbVFb9MwGHUyLqPA1jHeLGoQENsTdIWVh4mJvGCRB/Gpdukuo0cx9ms2U5mO9UqL/xP3vkB/ASctFy1T7J0fM53/NnHScGZNmH4zfPXbt2+c3f9Xuv+g4cbm+2tR8c6LxWhY5LzXJ0mWFPOJB0bZjg9LRTFIuH0JLl4V+snc6o0y+UXsyjoVOAzyTJGsHFU3P46ihU8gChTmNhPle2hglVIlyK27CqZhIikuZ3YuqHTnMXP7NDewxpa9jKoXEO2u7CvdMEH1n4bKoubFXRdxe1O2B1Gr8L9PlyCwZsVeN2HUTdsqvP2B2jqKN7yNlCak1JQaQjHWk+isDC7GaeXcmqxMoxwWrVQqWmByQU+oxMHJXaDp7aJq4LPHJPCLFduSQMb9m+HxULrhUhcp8DmXP+v1eRN2qQ02XBqmSxKQyVZDspKDk0O6+xhyhQlhi8cwEQxd1dIzrGLzrgfaqHGaIOxdrtAKxGMWKwWgSGXoksYJLwMqWBm6vY1d7cHeVe0yQ46PWGgzrBGvSjX2D4O8HjXjfqd8OPg87h2WUYB08AU/BDojAPjgE78ERGAMCvnstb9t7D/3R/5nf7xs9b2VZxv8U/7sJ46u0Tk=</latexit> <latexit sha1_base64="Mf+1bOjbrUsK5ynE+094bVt9+c=">ACYXicbZDdbtMwFMfd8LUVGN243I1FhdRJo0nabitCaJO4QWIS46PbpLqKHOeks2Y7wXaqVEeZk/DLVxyzQvwCDjpQIA4kuW/+cH/sX54IbGwTfWt6t23fu3ltb9/8HDjUWdz69RkhWYwYZnI9HlMDQiuYGK5FXCea6AyFnAWX76q82cL0IZn6qNd5jCTdK54yhm1zo6L4jV9ikmrKyvdVSXJeYcKVjUryVsKc9j7sVLhHFgoTlmQWk4XYwWQ3cXvU6Qb9cbgXHAzxSoye34j9IQ7QRPdwx+oiZNos7VBkowVEpRlghozDYPc7qYCPqlZSbXlTEDVJoWBnLJLOoepk4pKMLOy+WuFnzonwWm3VIWN+6fHSWVxixl7ColtRfm31xt/i83LWw6npVc5YUFxVaD0kJgm+EaHE64BmbF0gnKNHdvxeyCOmzW4W2TprH0J8adfKOlf8xjTfXSt3AlU58rJoEfDdX86tnC3eV+01DcDQYjEc1wVoMw19i/Jvg6aAfDvBu1H36M0KJVpD2+gJ6qEQHaAj9BqdoAli6Bp9Rl/Q19Z3b93reFurUq910/MY/RXe9k8Oqrk4</latexit> Di ff use, polygonal lights In this case the illumination integral simplifies to L r = R Z ( n · l ) d l π Ω ( S ) Lambert worked out a solution to this in 1760 n cos − 1 ( l i · l i +1 ) l i ⇥ l i +1 L r = R X 2 π k l i ⇥ l i +1 k i =1 • where the index is understood to wrap around for the last term • (derivation on board; refer to Eric Heitz’s notes linked on the schedule)

  4. <latexit sha1_base64="HBl5J1d6jqBm4WGWpOvSZYEuLA=">ACTXicbZDNbtNAEMfXKdASoJ/HXlZEiCDR2E7SNj21EpdKgFQk0laKQ7Vej9NV98PdXUeNrDxCn4YrPAPnvkUvSHE2i4IECOt9Nv/zOzs/OM2OD4MZrLDx4+Ghx6XHzydNnyura+vHRuWawpAqrvRpTAxwJmFomeVwmkgIuZwEl+8KfMnU9CGKfnRzjIYCzKRLGWUWCedrb6ctKMpf4WjTKvMKtyOxPtPxVY4x7VME2UduspW0BmE28FuD9fQ37uHnR4O0EVrf1bVMXR2Zq3HCWK5gKkpZwYMwqDzL5OVzKcUG0ZTDvBnlBjJCL8gERg4lEWDGRbXHL9wSoJTpd2RFlfqnx0FEcbMROwqBbHn5t9cKf4vN8ptOhgXTGa5BUnrQWnOsTOgNAknTAO1fOaAUM3cXzE9J5pQ6xsRlVj4Q+Nu/lGC/8dizXRM9/ClUh9JinPE/DdXM2utqbuKbdN5WC/2x30SwdL6IW/YPDbweNuJ+x1g/91sHb2kq0hDbRc9RGIdpFB+gQHaEhougafUZf0Ffvm3fnfd+1KUN75nA/0VjcWfPGW0Ew=</latexit> <latexit sha1_base64="FEpCGka8LG0GNewNpSZ3sZ546i8=">ACZ3icbVDdihMxGE3Hv7XqbldBG+iRWihdmba6tYLcUbwQVXtLsLTRkymW+6YZPMmGTKlqHP49N4q/gI3vkIZmZWUfGDkJNzvp98J84FNzYIvrW8S5evXL2db194+at7Z3O7u0jkxWawYxlItMnMTUguIKZ5VbASa6ByljAcXz2qtKPV6ANz9QHu85hIelS8ZQzah0VdV4eRLpHVqs+fo4JVzYqyVsJS9p739/gtNEGmKxEnwcVpiwJLM1gckgcXfU6QbDafgk2BvjBkyeXYCnYxwOgzq6L36gOg6j3dY2STJWSFCWCWrMPAxyO0gFfFSLkmrLmYBNmxQGcsrO6BLmDioqwSzKeuMNfuSYBKeZdkdZXLN/VpRUGrOWscuU1J6af7WK/J82L2w6XZRc5YUFxZpBaSGwzXBlH064BmbF2gHKNHd/xeyUasqsM7lN6sLSnxn38o2W/gGPNdVr38K5TH2umCgS8N1czc8fr1wrt03t4GQ0mk4qByswDn+B6W8Hj0bDcDwM3k26+28aK9EWuo8eoh4K0R7aR6/RIZohj6hz+gL+tr67u14d717TarXuqi5g/4K78FP4L6YA=</latexit> <latexit sha1_base64="NIaNkXowvgmkLOD9ZFIFM7fh9QY=">ACKnicbVDLThsxFL0DtNDQ8uqyG4sIiUqQmUkChBVISKgLFiA1ASmJkMe5Ewy2Z7A9EdGIf+iWfkO/h1iywfwCfVMaFVQr2Tp+Jx7fK9PlApubBA8eFPTM+/ez859qMx/LSwuLS80jFJphm2WSISfRZRg4IrbFtuBZ6lGqmMBJ5GVweFfjpCbXivtxin1Jh4rHnFHrqM5wvTcSX8+XqkGtFW4FOw0yAc3dF7DdIGEtKu69wxlHZ8vewu9QcIyicoyQY3phkFqN2KB16qfU205E3hb6WUGU8qu6BC7Dioq0fTzculbsuaYAYkT7Y6ypGT/deRUGjOWkeuU1F6Yt1pB/k/rZjZu9XOu0syiYpNBcSaITUiRABlwjcyKsQOUae52JeyCasqsy6nSK4253zbu5hst/SMearHvsUbGftcMZEN0HdzNb/ZHLmn3G/KBJv1eqtZJFiARvgHtP4m2KnXwkYtOGlW9w8nUcIcfIFVWIcQdmAfvsExtIHBJfyAO/jp/fLuvQfvcdI65b14PsOr8p5+Azx+qFM=</latexit> <latexit sha1_base64="TsjAxMJMrTyGLsEJW3pfsN5VrZI=">ACMXicbVDLbtQwFL1p6YMpfS/ZWIyQitROkpmBTldUQkIsWBSp01aRCPHczO1ajup7UQdRf0OtvANfE13iC0bPgEnUypAvZKl43Pu8b0+S64sUFw5y0sPlaXl92lp7tr6xubW9c2ayQjMcskxk+iKhBgVXOLTcCrzINVKZCDxPrt7V+nmJ2vBMndpZjrGkU8VTzqh1VJyO9V5UlvskKsWr8VY76AzC18Fhj8xB/+gevOmRsBM01X7C5o6GW97G9EkY4VEZmgxozCILf7qcBrFVdUW84E3raiwmBO2RWd4shBRSWauGp2vyUvHTMhabdUZY07N+OikpjZjJxnZLaS/O/VpOPaPCpoO4iovLCo2H5QWgtiM1EGQCdfIrJg5QJnmblfCLqmzLq4WlFjrPyhcTfaOl/5ImeuZbvJGpzxUTxQR9N1fzm4PSPeV+0yTY73YH/TrBGvTCP2DwkOBZtxP2OsGnfv4/TxKWIXn8AL2IRDOIYPcAJDYHANn+ELfPW+eXfed+/HvHXBu/fswj/l/fwNiNSq/Q=</latexit> <latexit sha1_base64="PjepGxitSPyZKjvVdjExvkQDYUQ=">ACTXicbVBNb9NAEB2nQEuA0pZjLysiRJFKbCeBhlMrISEOHIpE2kpxiNbrcbvqfpjdtdXI6k/g13CF38CZf8GFG0KsnYIAMdJKb9+b2dn30kJw6LoS9BZuXb9xuraze6t23fW725sbh1ZXRqGE6aFNicptSi4wonjTuBJYZDKVOBxev680Y8rNJZr9cYtCpxJeqp4zhl1npvPMznZiepql2SVOIRSQqjC6eJpwxJWKZdy7/1nb2oP46fRHtDsgSjZ1fg6ZDE/ait3v5XaOtwvhmsJ5lmpUTlmKDWTuOocLu5wHdqVlPjOBN42U1KiwVl5/QUpx4qKtHO6tbXJXngmYzk2vijHGnZPydqKq1dyNR3SurO7L9aQ/5Pm5YuH89qrorSoWLRXkpiHfehEQybpA5sfCAMsP9Xwk7o4Yy56PsJu1gHU6sv4XWyPAVTw01i9DhcxDrpgoMwz9XsMvHlf+Ke+mTXA0GIxHTYINGMa/wPh3gkeDfjzsR69HvYMXyhDbhPuxADHtwAC/hECbA4D18gI/wKfgcfAu+Bz+WrZ3gauYe/FWd1Z/CY7RY</latexit> Specular shading, polygonal lights Now the integral (for unit source radiance) reads Z L r ( v ) = f r ( v , l ) ( n · l ) d l Ω ( S ) and analytic solutions are only available for special forms of the BRDF • Phong BRDF: 
 f r ( v , l ) ∝ ( r · l ) n solution due to Arvo via a generalization of Lambert’s formula • Other BRDFs: approximate the function by some convenient function g ( l ) f r ( v , l ) • Clever idea due to Heitz: linearly transformed cosine function: g ( l ) ∝ ( M − 1 l ) · n

  5. Linearly transformed cosines See Heitz’s slides, video, and WebGL demo • https://eheitzresearch.wordpress.com/415-2/

  6. Real-time environment illumination Now incident radiance field is stored in a texture, not defined by a polygon • this makes it easy to do mirror reflections: single cubemap lookup Two special kinds of BRDFs are convenient • di ff use BRDFs: irradiance depends only on surface normal (not v ) 
 …leads to irradiance environment maps • rotationally symmetric lobes (e.g. Phong): it’s a convolution of the environment map 
 …leads to prefiltered environment maps

  7. <latexit sha1_base64="lzHQhec/0+3wgVOSm7sGDJyI+ec=">ACQ3icbZDPahRBEMZrEv/EVeMmOYrQuAhZiDszu2uyOYgBL4J7iOAmgZ1l6OmtSZp094zdPUOWIac8jVd9Bh/CZ/Ai4lWwZzaKigUNv/q6vrS3LBjQ2Cz97K6o2bt26v3WndvXd/UF7Y/PIZIVmOGZyPRJQg0KrnBiuRV4kmukMhF4nJy/rOvHJWrDM/XWLnKcSXqeMoZtU6K24/Gsd6OyrJLnpNxzB026Q6JStXtxu1O0BuFz4K9AVnCcP8adgck7AVNdF58hSYO4w1vPZpnrJCoLBPUmGkY5HYnFfhOzSqLWcCL1tRYTCn7Jye4tShohLNrGq2uSRPnDInabdUZY06p8dFZXGLGTibkpqz8y/tVr8X21a2HQ0q7jKC4uKLQelhSA2I7U1ZM41MisWDijT3P2VsDOqKbPOwFbUNFb+xLjMN1r6Y5oqhe+xQuZ+lwxUczRd3M1v3hauqfcNo2Dw35/NKwdrGEQ/oLRbweP+r1w0AveDsHr5dWwho8hMewDSHswQG8gkOYAIMreA8f4KP3yfvifO+L6+ueNc9W/BXeD9+Au1BsHo=</latexit> Standard reflection map For mirror-specular surface, the illumination integral reduces to L r ( v ) = L i ( r ( v , n )) This is a function only of r • so store it in a cubemap and look up using r ( v , n ).

  8. <latexit sha1_base64="IaqHgxQwXRGt6294Fawpmh2WdCM=">ACZnicbVBdb9MwFHUzPrYCpRuaeODFokIa0miStrDuAVGJFyQqMRDdJtV5Dg3nTXbCbZTrYr6d/ZreAWJf8AjPwEnLQgQV7Lu8bn3+PqeOBfc2CD41vC2bty8dXt7p3n7r3W/fbu3qnJCs1gwjKR6fOYGhBcwcRyK+A810BlLOAsvnxd1c8WoA3P1Ee7zGEm6VzxlDNqHRW1R+NI45eYpJqy8sOqJDlfYcKVjcg7CXOKxE/IAvxFJNDlxVhSWbxhkhcjtqdoDsMnwdHfbwGg+MNeNHYTeo/PqB6rjJNptEiSsUKCskxQY6ZhkNvDVMAnNSuptpwJWDVJYSCn7JLOYeqgohLMrKwXuEnjklwml3lMU1+6eipNKYpYxdp6T2wvxbq8j/1aFTYezkqu8sKDYelBaCGwzXLmHE6BWbF0gDLN3V8xu6DO+s8bpJaWPoT426+0dIf81hTvfQtXMnU54qJIgHfzdX86tnCPeW2qR0c9HrDQeVgBfrhLzD87eBprxv2u8H7QWf0dm0l2kaP0GN0gEJ0hEboDTpBE8TQNfqMvqCvje9ey9v3Hq5bvcZG8wD9FR7+Cex5uvk=</latexit> Irradiance environment map For di ff use surface, illumination integral reduces to L r = R Z L i ( l ) ( n · l ) d l π Ω This is a function only of n • so store it in a cubemap and look up using n .

  9. Irradiance environment map environment map irradiance map Gary King in GPU Gems 2 http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter10.html

  10. Irradiance map illumination McGuire et al. HPG ’11 10.1145/2018323.2018327

  11. McGuire et al. HPG ’11 10.1145/2018323.2018327 Irradiance map illumination

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend