Ray Tracing: shading CS 4620 Lecture 6 2018 Steve Marschner 1
Image so far With eye ray generation and scene intersection for 0 <= iy < ny for 0 <= ix < nx { ray = camera.getray(ix, iy); c = scene.trace(ray, 0, +inf); image.set(ix, iy, c); } Scene.trace(ray, tmin, tmax) { surface, t = surfs.intersect(ray, tmin, tmax); if (surface!= null) return surface.color(); else return black; } 2018 Steve Marschner 2
Shading Compute light reflected toward camera Inputs: eye direction light direction (for each of many lights) surface normal surface parameters (color, roughness, ) l n v 2018 Steve Marschner 3
Shading philosophy Goals of shading depend on purpose of image visualization, CAD: maximize visual clarity visual effects, advertising: maximize resemblance to reality animation, games: somewhere in between Basic starting point: physics of light reflection a set of useful approximations to real surfaces can remove things for simplicity/clarity can add things for increased accuracy/realism 2018 Steve Marschner 4
Light Think of light as a flow of particles through space disregarding wave nature: polarization, interference, diffraction for now disregarding color: only how much light Sources of light point sources (a flashlight) we will stick to this for now. directional sources (the sun) area sources (a fluorescent tube) environment sources (the sky) 2018 Steve Marschner 5
P<latexit sha1_base64="e0l+vdaixf9rbmn3zpt7mbpltkk=">aaacjhicbvbltimxek0gbkiy/ks2fhesi5l0j0qirecwyceispsaleti7vsdhe1ubdciauueboemniyvysggm3aena4gzoasld2/qleff6wcgxsez97y+mspyansdhnm5+zc/mli0h+tzjphybkr6joighrcywi5fxisaqqyengcxewn88dxqa1p1jhtp9iv9ezxmdnqhxxyol2obnwgcpi/ql2dyvyrfne6xftmor2ezrkvzyia064fqf0vc7xu3zxqy5naqbmtguwpu6bn2hzquymmmxf7dsiay3oktrr7ypkc/ariqtsmlynxkak9n//mhur3uxzm42y35yrnlco2ghrngtiedi8npa6rwdf3gdln3a6envnnmxuwltufmpdd436+0di/4jgmuu9bvjaxzxutwq99n1fz699xrpw7pncwua83gxtkbdzqh6d56wbyr25vg8ngzwd35csuyavwyr1qsak7sa8tciebwg3cwp137z14j97tqhtme9csw1/hvbwbclcl/g==</latexit> <latexit sha1_base64="e0l+vdaixf9rbmn3zpt7mbpltkk=">aaacjhicbvbltimxek0gbkiy/ks2fhesi5l0j0qirecwyceispsaleti7vsdhe1ubdciauueboemniyvysggm3aena4gzoasld2/qleff6wcgxsez97y+mspyansdhnm5+zc/mli0h+tzjphybkr6joighrcywi5fxisaqqyengcxewn88dxqa1p1jhtp9iv9ezxmdnqhxxyol2obnwgcpi/ql2dyvyrfne6xftmor2ezrkvzyia064fqf0vc7xu3zxqy5naqbmtguwpu6bn2hzquymmmxf7dsiay3oktrr7ypkc/ariqtsmlynxkak9n//mhur3uxzm42y35yrnlco2ghrngtiedi8npa6rwdf3gdln3a6envnnmxuwltufmpdd436+0di/4jgmuu9bvjaxzxutwq99n1fz699xrpw7pncwua83gxtkbdzqh6d56wbyr25vg8ngzwd35csuyavwyr1qsak7sa8tciebwg3cwp137z14j97tqhtme9csw1/hvbwbclcl/g==</latexit> <latexit sha1_base64="e0l+vdaixf9rbmn3zpt7mbpltkk=">aaacjhicbvbltimxek0gbkiy/ks2fhesi5l0j0qirecwyceispsaleti7vsdhe1ubdciauueboemniyvysggm3aena4gzoasld2/qleff6wcgxsez97y+mspyansdhnm5+zc/mli0h+tzjphybkr6joighrcywi5fxisaqqyengcxewn88dxqa1p1jhtp9iv9ezxmdnqhxxyol2obnwgcpi/ql2dyvyrfne6xftmor2ezrkvzyia064fqf0vc7xu3zxqy5naqbmtguwpu6bn2hzquymmmxf7dsiay3oktrr7ypkc/ariqtsmlynxkak9n//mhur3uxzm42y35yrnlco2ghrngtiedi8npa6rwdf3gdln3a6envnnmxuwltufmpdd436+0di/4jgmuu9bvjaxzxutwq99n1fz699xrpw7pncwua83gxtkbdzqh6d56wbyr25vg8ngzwd35csuyavwyr1qsak7sa8tciebwg3cwp137z14j97tqhtme9csw1/hvbwbclcl/g==</latexit> <latexit sha1_base64="e0l+vdaixf9rbmn3zpt7mbpltkk=">aaacjhicbvbltimxek0gbkiy/ks2fhesi5l0j0qirecwyceispsaleti7vsdhe1ubdciauueboemniyvysggm3aena4gzoasld2/qleff6wcgxsez97y+mspyansdhnm5+zc/mli0h+tzjphybkr6joighrcywi5fxisaqqyengcxewn88dxqa1p1jhtp9iv9ezxmdnqhxxyol2obnwgcpi/ql2dyvyrfne6xftmor2ezrkvzyia064fqf0vc7xu3zxqy5naqbmtguwpu6bn2hzquymmmxf7dsiay3oktrr7ypkc/ariqtsmlynxkak9n//mhur3uxzm42y35yrnlco2ghrngtiedi8npa6rwdf3gdln3a6envnnmxuwltufmpdd436+0di/4jgmuu9bvjaxzxutwq99n1fz699xrpw7pncwua83gxtkbdzqh6d56wbyr25vg8ngzwd35csuyavwyr1qsak7sa8tciebwg3cwp137z14j97tqhtme9csw1/hvbwbclcl/g==</latexit> Light falloff r irradiance here: P/(4 r 2 ) power: <latexit sha1_base64="e0l+vdaixf9rbmn3zpt7mbpltkk=">aaacjhicbvbltimxek0gbkiy/ks2fhesi5l0j0qirecwyceispsaleti7vsdhe1ubdciauueboemniyvysggm3aena4gzoasld2/qleff6wcgxsez97y+mspyansdhnm5+zc/mli0h+tzjphybkr6joighrcywi5fxisaqqyengcxewn88dxqa1p1jhtp9iv9ezxmdnqhxxyol2obnwgcpi/ql2dyvyrfne6xftmor2ezrkvzyia064fqf0vc7xu3zxqy5naqbmtguwpu6bn2hzquymmmxf7dsiay3oktrr7ypkc/ariqtsmlynxkak9n//mhur3uxzm42y35yrnlco2ghrngtiedi8npa6rwdf3gdln3a6envnnmxuwltufmpdd436+0di/4jgmuu9bvjaxzxutwq99n1fz699xrpw7pncwua83gxtkbdzqh6d56wbyr25vg8ngzwd35csuyavwyr1qsak7sa8tciebwg3cwp137z14j97tqhtme9csw1/hvbwbclcl/g==</latexit> 1 irradiance here: P/(4 ) 2018 Steve Marschner 6
P<latexit sha1_base64="e0l+vdaixf9rbmn3zpt7mbpltkk=">aaacjhicbvbltimxek0gbkiy/ks2fhesi5l0j0qirecwyceispsaleti7vsdhe1ubdciauueboemniyvysggm3aena4gzoasld2/qleff6wcgxsez97y+mspyansdhnm5+zc/mli0h+tzjphybkr6joighrcywi5fxisaqqyengcxewn88dxqa1p1jhtp9iv9ezxmdnqhxxyol2obnwgcpi/ql2dyvyrfne6xftmor2ezrkvzyia064fqf0vc7xu3zxqy5naqbmtguwpu6bn2hzquymmmxf7dsiay3oktrr7ypkc/ariqtsmlynxkak9n//mhur3uxzm42y35yrnlco2ghrngtiedi8npa6rwdf3gdln3a6envnnmxuwltufmpdd436+0di/4jgmuu9bvjaxzxutwq99n1fz699xrpw7pncwua83gxtkbdzqh6d56wbyr25vg8ngzwd35csuyavwyr1qsak7sa8tciebwg3cwp137z14j97tqhtme9csw1/hvbwbclcl/g==</latexit> <latexit sha1_base64="e0l+vdaixf9rbmn3zpt7mbpltkk=">aaacjhicbvbltimxek0gbkiy/ks2fhesi5l0j0qirecwyceispsaleti7vsdhe1ubdciauueboemniyvysggm3aena4gzoasld2/qleff6wcgxsez97y+mspyansdhnm5+zc/mli0h+tzjphybkr6joighrcywi5fxisaqqyengcxewn88dxqa1p1jhtp9iv9ezxmdnqhxxyol2obnwgcpi/ql2dyvyrfne6xftmor2ezrkvzyia064fqf0vc7xu3zxqy5naqbmtguwpu6bn2hzquymmmxf7dsiay3oktrr7ypkc/ariqtsmlynxkak9n//mhur3uxzm42y35yrnlco2ghrngtiedi8npa6rwdf3gdln3a6envnnmxuwltufmpdd436+0di/4jgmuu9bvjaxzxutwq99n1fz699xrpw7pncwua83gxtkbdzqh6d56wbyr25vg8ngzwd35csuyavwyr1qsak7sa8tciebwg3cwp137z14j97tqhtme9csw1/hvbwbclcl/g==</latexit> <latexit sha1_base64="e0l+vdaixf9rbmn3zpt7mbpltkk=">aaacjhicbvbltimxek0gbkiy/ks2fhesi5l0j0qirecwyceispsaleti7vsdhe1ubdciauueboemniyvysggm3aena4gzoasld2/qleff6wcgxsez97y+mspyansdhnm5+zc/mli0h+tzjphybkr6joighrcywi5fxisaqqyengcxewn88dxqa1p1jhtp9iv9ezxmdnqhxxyol2obnwgcpi/ql2dyvyrfne6xftmor2ezrkvzyia064fqf0vc7xu3zxqy5naqbmtguwpu6bn2hzquymmmxf7dsiay3oktrr7ypkc/ariqtsmlynxkak9n//mhur3uxzm42y35yrnlco2ghrngtiedi8npa6rwdf3gdln3a6envnnmxuwltufmpdd436+0di/4jgmuu9bvjaxzxutwq99n1fz699xrpw7pncwua83gxtkbdzqh6d56wbyr25vg8ngzwd35csuyavwyr1qsak7sa8tciebwg3cwp137z14j97tqhtme9csw1/hvbwbclcl/g==</latexit> <latexit sha1_base64="e0l+vdaixf9rbmn3zpt7mbpltkk=">aaacjhicbvbltimxek0gbkiy/ks2fhesi5l0j0qirecwyceispsaleti7vsdhe1ubdciauueboemniyvysggm3aena4gzoasld2/qleff6wcgxsez97y+mspyansdhnm5+zc/mli0h+tzjphybkr6joighrcywi5fxisaqqyengcxewn88dxqa1p1jhtp9iv9ezxmdnqhxxyol2obnwgcpi/ql2dyvyrfne6xftmor2ezrkvzyia064fqf0vc7xu3zxqy5naqbmtguwpu6bn2hzquymmmxf7dsiay3oktrr7ypkc/ariqtsmlynxkak9n//mhur3uxzm42y35yrnlco2ghrngtiedi8npa6rwdf3gdln3a6envnnmxuwltufmpdd436+0di/4jgmuu9bvjaxzxutwq99n1fz699xrpw7pncwua83gxtkbdzqh6d56wbyr25vg8ngzwd35csuyavwyr1qsak7sa8tciebwg3cwp137z14j97tqhtme9csw1/hvbwbclcl/g==</latexit> Light falloff r irradiance here: P/(4 r 2 ) power: <latexit sha1_base64="e0l+vdaixf9rbmn3zpt7mbpltkk=">aaacjhicbvbltimxek0gbkiy/ks2fhesi5l0j0qirecwyceispsaleti7vsdhe1ubdciauueboemniyvysggm3aena4gzoasld2/qleff6wcgxsez97y+mspyansdhnm5+zc/mli0h+tzjphybkr6joighrcywi5fxisaqqyengcxewn88dxqa1p1jhtp9iv9ezxmdnqhxxyol2obnwgcpi/ql2dyvyrfne6xftmor2ezrkvzyia064fqf0vc7xu3zxqy5naqbmtguwpu6bn2hzquymmmxf7dsiay3oktrr7ypkc/ariqtsmlynxkak9n//mhur3uxzm42y35yrnlco2ghrngtiedi8npa6rwdf3gdln3a6envnnmxuwltufmpdd436+0di/4jgmuu9bvjaxzxutwq99n1fz699xrpw7pncwua83gxtkbdzqh6d56wbyr25vg8ngzwd35csuyavwyr1qsak7sa8tciebwg3cwp137z14j97tqhtme9csw1/hvbwbclcl/g==</latexit> 1 irradiance here: P/(4 ) 2018 Steve Marschner 6
<latexit sha1_base64="vrv6dp9yvhldalgapxyn1znnobk=">aaacanicbzdlsgmxgix/8vrrrepon8eiucrtdsc6efvdukxgbaezlkyaaumzf5kmuiacg1/fjqsvtz6fo9/crzcdvvf2ipbxzv+t5lgrz1kz5psxmzs3v7cywcour6yurec2ni9lgatcgytkowi5wfloatpqthhaigtfvstp0x2cjvpmnrwshcgfgkbu8xevyb4jwgmrk9uud2rocnwr7qlmktooseyiixfvgnvyebngpkj/otif/pe7pkp3cq92nysxtwnfojayxtqj5srykey4hwxtwniikwhu0bbgaptuokn6hxha004xeahqj1aodb9vjnixcui7etlhqi9/z2pzv6wdk6/ijcyiykudmrniizlsiroxgrpmukl4uammgum3itlhugyla8umjvilusuqowmui59q+sqhusocfsxzk189mzqbgdibxdihihxafc6gdg0gcan38acpxq1xbzwzz5prgwo6swu/zlx8amjwl4u=</latexit> <latexit sha1_base64="vrv6dp9yvhldalgapxyn1znnobk=">aaacanicbzdlsgmxgix/8vrrrepon8eiucrtdsc6efvdukxgbaezlkyaaumzf5kmuiacg1/fjqsvtz6fo9/crzcdvvf2ipbxzv+t5lgrz1kz5psxmzs3v7cywcour6yurec2ni9lgatcgytkowi5wfloatpqthhaigtfvstp0x2cjvpmnrwshcgfgkbu8xevyb4jwgmrk9uud2rocnwr7qlmktooseyiixfvgnvyebngpkj/otif/pe7pkp3cq92nysxtwnfojayxtqj5srykey4hwxtwniikwhu0bbgaptuokn6hxha004xeahqj1aodb9vjnixcui7etlhqi9/z2pzv6wdk6/ijcyiykudmrniizlsiroxgrpmukl4uammgum3itlhugyla8umjvilusuqowmui59q+sqhusocfsxzk189mzqbgdibxdihihxafc6gdg0gcan38acpxq1xbzwzz5prgwo6swu/zlx8amjwl4u=</latexit> <latexit sha1_base64="vrv6dp9yvhldalgapxyn1znnobk=">aaacanicbzdlsgmxgix/8vrrrepon8eiucrtdsc6efvdukxgbaezlkyaaumzf5kmuiacg1/fjqsvtz6fo9/crzcdvvf2ipbxzv+t5lgrz1kz5psxmzs3v7cywcour6yurec2ni9lgatcgytkowi5wfloatpqthhaigtfvstp0x2cjvpmnrwshcgfgkbu8xevyb4jwgmrk9uud2rocnwr7qlmktooseyiixfvgnvyebngpkj/otif/pe7pkp3cq92nysxtwnfojayxtqj5srykey4hwxtwniikwhu0bbgaptuokn6hxha004xeahqj1aodb9vjnixcui7etlhqi9/z2pzv6wdk6/ijcyiykudmrniizlsiroxgrpmukl4uammgum3itlhugyla8umjvilusuqowmui59q+sqhusocfsxzk189mzqbgdibxdihihxafc6gdg0gcan38acpxq1xbzwzz5prgwo6swu/zlx8amjwl4u=</latexit> <latexit sha1_base64="vrv6dp9yvhldalgapxyn1znnobk=">aaacanicbzdlsgmxgix/8vrrrepon8eiucrtdsc6efvdukxgbaezlkyaaumzf5kmuiacg1/fjqsvtz6fo9/crzcdvvf2ipbxzv+t5lgrz1kz5psxmzs3v7cywcour6yurec2ni9lgatcgytkowi5wfloatpqthhaigtfvstp0x2cjvpmnrwshcgfgkbu8xevyb4jwgmrk9uud2rocnwr7qlmktooseyiixfvgnvyebngpkj/otif/pe7pkp3cq92nysxtwnfojayxtqj5srykey4hwxtwniikwhu0bbgaptuokn6hxha004xeahqj1aodb9vjnixcui7etlhqi9/z2pzv6wdk6/ijcyiykudmrniizlsiroxgrpmukl4uammgum3itlhugyla8umjvilusuqowmui59q+sqhusocfsxzk189mzqbgdibxdihihxafc6gdg0gcan38acpxq1xbzwzz5prgwo6swu/zlx8amjwl4u=</latexit> <latexit sha1_base64="vrv6dp9yvhldalgapxyn1znnobk=">aaacanicbzdlsgmxgix/8vrrrepon8eiucrtdsc6efvdukxgbaezlkyaaumzf5kmuiacg1/fjqsvtz6fo9/crzcdvvf2ipbxzv+t5lgrz1kz5psxmzs3v7cywcour6yurec2ni9lgatcgytkowi5wfloatpqthhaigtfvstp0x2cjvpmnrwshcgfgkbu8xevyb4jwgmrk9uud2rocnwr7qlmktooseyiixfvgnvyebngpkj/otif/pe7pkp3cq92nysxtwnfojayxtqj5srykey4hwxtwniikwhu0bbgaptuokn6hxha004xeahqj1aodb9vjnixcui7etlhqi9/z2pzv6wdk6/ijcyiykudmrniizlsiroxgrpmukl4uammgum3itlhugyla8umjvilusuqowmui59q+sqhusocfsxzk189mzqbgdibxdihihxafc6gdg0gcan38acpxq1xbzwzz5prgwo6swu/zlx8amjwl4u=</latexit> <latexit sha1_base64="3ihafynm2egdl5c9t10sw8xhnvi=">aaacj3icbzdlsgmxfibpelfeqi7dbivgqs7uaetctirgcgrrc20tmtsjwcyfjcouyr7hja/irkrfl76bj2a6u0wrbwjf/v8ctvk7ewdsmeabmty+mtk1ptnbmjtfwfwqlq+cyzawhnzjyeprdlgknaw0rpjitbkjin2x04z7fttwgzdusbygz6of0y6plwpmmykvlrrf/wo0h5xudw2hmqa2jzbjndsx2xfd4qksjorp8gqlycdufktm2cwk/qvrckx9d8jk6ryf272qxd4nfofyypzlrqqtykey4tqttgnji0yu8svtaqywt2unyt6aog2t9jaxcn0chtl150scfsn7vqs7fayu5kg3ep/zwrhyqp2ebvgsaedyrv7mkqrridxuy4isxfsambfmvxwrk6xzudrbqhacxalu7w2uw7b1bdxveoqv8m7zplvlb4d5gdada7aom2dbdhzacthqbwk3ca9p8gzcgq/gi/gat44zw5lv+fxg+yfzkkvh</latexit> <latexit sha1_base64="3ihafynm2egdl5c9t10sw8xhnvi=">aaacj3icbzdlsgmxfibpelfeqi7dbivgqs7uaetctirgcgrrc20tmtsjwcyfjcouyr7hja/irkrfl76bj2a6u0wrbwjf/v8ctvk7ewdsmeabmty+mtk1ptnbmjtfwfwqlq+cyzawhnzjyeprdlgknaw0rpjitbkjin2x04z7fttwgzdusbygz6of0y6plwpmmykvlrrf/wo0h5xudw2hmqa2jzbjndsx2xfd4qksjorp8gqlycdufktm2cwk/qvrckx9d8jk6ryf272qxd4nfofyypzlrqqtykey4tqttgnji0yu8svtaqywt2unyt6aog2t9jaxcn0chtl150scfsn7vqs7fayu5kg3ep/zwrhyqp2ebvgsaedyrv7mkqrridxuy4isxfsambfmvxwrk6xzudrbqhacxalu7w2uw7b1bdxveoqv8m7zplvlb4d5gdada7aom2dbdhzacthqbwk3ca9p8gzcgq/gi/gat44zw5lv+fxg+yfzkkvh</latexit> <latexit sha1_base64="3ihafynm2egdl5c9t10sw8xhnvi=">aaacj3icbzdlsgmxfibpelfeqi7dbivgqs7uaetctirgcgrrc20tmtsjwcyfjcouyr7hja/irkrfl76bj2a6u0wrbwjf/v8ctvk7ewdsmeabmty+mtk1ptnbmjtfwfwqlq+cyzawhnzjyeprdlgknaw0rpjitbkjin2x04z7fttwgzdusbygz6of0y6plwpmmykvlrrf/wo0h5xudw2hmqa2jzbjndsx2xfd4qksjorp8gqlycdufktm2cwk/qvrckx9d8jk6ryf272qxd4nfofyypzlrqqtykey4tqttgnji0yu8svtaqywt2unyt6aog2t9jaxcn0chtl150scfsn7vqs7fayu5kg3ep/zwrhyqp2ebvgsaedyrv7mkqrridxuy4isxfsambfmvxwrk6xzudrbqhacxalu7w2uw7b1bdxveoqv8m7zplvlb4d5gdada7aom2dbdhzacthqbwk3ca9p8gzcgq/gi/gat44zw5lv+fxg+yfzkkvh</latexit> <latexit sha1_base64="3ihafynm2egdl5c9t10sw8xhnvi=">aaacj3icbzdlsgmxfibpelfeqi7dbivgqs7uaetctirgcgrrc20tmtsjwcyfjcouyr7hja/irkrfl76bj2a6u0wrbwjf/v8ctvk7ewdsmeabmty+mtk1ptnbmjtfwfwqlq+cyzawhnzjyeprdlgknaw0rpjitbkjin2x04z7fttwgzdusbygz6of0y6plwpmmykvlrrf/wo0h5xudw2hmqa2jzbjndsx2xfd4qksjorp8gqlycdufktm2cwk/qvrckx9d8jk6ryf272qxd4nfofyypzlrqqtykey4tqttgnji0yu8svtaqywt2unyt6aog2t9jaxcn0chtl150scfsn7vqs7fayu5kg3ep/zwrhyqp2ebvgsaedyrv7mkqrridxuy4isxfsambfmvxwrk6xzudrbqhacxalu7w2uw7b1bdxveoqv8m7zplvlb4d5gdada7aom2dbdhzacthqbwk3ca9p8gzcgq/gi/gat44zw5lv+fxg+yfzkkvh</latexit> <latexit sha1_base64="3ihafynm2egdl5c9t10sw8xhnvi=">aaacj3icbzdlsgmxfibpelfeqi7dbivgqs7uaetctirgcgrrc20tmtsjwcyfjcouyr7hja/irkrfl76bj2a6u0wrbwjf/v8ctvk7ewdsmeabmty+mtk1ptnbmjtfwfwqlq+cyzawhnzjyeprdlgknaw0rpjitbkjin2x04z7fttwgzdusbygz6of0y6plwpmmykvlrrf/wo0h5xudw2hmqa2jzbjndsx2xfd4qksjorp8gqlycdufktm2cwk/qvrckx9d8jk6ryf272qxd4nfofyypzlrqqtykey4tqttgnji0yu8svtaqywt2unyt6aog2t9jaxcn0chtl150scfsn7vqs7fayu5kg3ep/zwrhyqp2ebvgsaedyrv7mkqrridxuy4isxfsambfmvxwrk6xzudrbqhacxalu7w2uw7b1bdxveoqv8m7zplvlb4d5gdada7aom2dbdhzacthqbwk3ca9p8gzcgq/gi/gat44zw5lv+fxg+yfzkkvh</latexit> Irradiance from isotropic point source A sphere surrounding the source receives all the power A small, flat surface of area A facing the source receives a fraction (area of surface) / (area of sphere) of that power: P A = P A 4 r 2 Irradiance is power per unit area: E = P A /A = P 4 r 2 = P 4 1 r 2 intensity geometry factor 2018 Steve Marschner 7
Lambert s cosine law l n Top face of cube receives a certain amount of light Top face of 60º rotated cube intercepts half the light In general, light per unit area is proportional to cos θ = l n 2018 Steve Marschner 8
<latexit sha1_base64="wvda6mp+9m2djbttbfqdl1oz6u0=">aaacdxicbzdlsgmxfibpek31vnxpjlgev2v6aetctlpxwcfaovnljs20wcyf5ixqhj6bg1/fjqsvt+7d+ry+gum0ircfah//fw5jfjesqqntv1lt0zozc/ozhezi0vlkam5t/vyhswk8wuizqguxai5fwbsoupklshhqu5i33avjud685kqlmdjdqctbpu0fwhomore6ue16p0b2sz04nqisqrghhdrbpkc6tcpojii6la07ubxdsforv1ccqp7ghvlvo7lxpxuy2ocbmkm1bhxtcnsjvsiy5mose2seuxzfe7xlmka+1+0k/c6qbbuns7xqmrmgsd3vgwn1tr74rpn0kfb172xk/pe1yvsq7uqeuyw8yoolvfgsdmmog9ivijouawoukwheslifml7qnjhns6iustvkmyyhxpye6lcjjvjhr2cfvvkhr+myiaobsau7uirdoiqtqemdgnzahtzao3vr3vtp1vn4dmqa7gzad1kvhyltncy=</latexit> <latexit sha1_base64="wvda6mp+9m2djbttbfqdl1oz6u0=">aaacdxicbzdlsgmxfibpek31vnxpjlgev2v6aetctlpxwcfaovnljs20wcyf5ixqhj6bg1/fjqsvt+7d+ry+gum0ircfah//fw5jfjesqqntv1lt0zozc/ozhezi0vlkam5t/vyhswk8wuizqguxai5fwbsoupklshhqu5i33avjud685kqlmdjdqctbpu0fwhomore6ue16p0b2sz04nqisqrghhdrbpkc6tcpojii6la07ubxdsforv1ccqp7ghvlvo7lxpxuy2ocbmkm1bhxtcnsjvsiy5mose2seuxzfe7xlmka+1+0k/c6qbbuns7xqmrmgsd3vgwn1tr74rpn0kfb172xk/pe1yvsq7uqeuyw8yoolvfgsdmmog9ivijouawoukwheslifml7qnjhns6iustvkmyyhxpye6lcjjvjhr2cfvvkhr+myiaobsau7uirdoiqtqemdgnzahtzao3vr3vtp1vn4dmqa7gzad1kvhyltncy=</latexit> <latexit sha1_base64="wvda6mp+9m2djbttbfqdl1oz6u0=">aaacdxicbzdlsgmxfibpek31vnxpjlgev2v6aetctlpxwcfaovnljs20wcyf5ixqhj6bg1/fjqsvt+7d+ry+gum0ircfah//fw5jfjesqqntv1lt0zozc/ozhezi0vlkam5t/vyhswk8wuizqguxai5fwbsoupklshhqu5i33avjud685kqlmdjdqctbpu0fwhomore6ue16p0b2sz04nqisqrghhdrbpkc6tcpojii6la07ubxdsforv1ccqp7ghvlvo7lxpxuy2ocbmkm1bhxtcnsjvsiy5mose2seuxzfe7xlmka+1+0k/c6qbbuns7xqmrmgsd3vgwn1tr74rpn0kfb172xk/pe1yvsq7uqeuyw8yoolvfgsdmmog9ivijouawoukwheslifml7qnjhns6iustvkmyyhxpye6lcjjvjhr2cfvvkhr+myiaobsau7uirdoiqtqemdgnzahtzao3vr3vtp1vn4dmqa7gzad1kvhyltncy=</latexit> <latexit sha1_base64="wvda6mp+9m2djbttbfqdl1oz6u0=">aaacdxicbzdlsgmxfibpek31vnxpjlgev2v6aetctlpxwcfaovnljs20wcyf5ixqhj6bg1/fjqsvt+7d+ry+gum0ircfah//fw5jfjesqqntv1lt0zozc/ozhezi0vlkam5t/vyhswk8wuizqguxai5fwbsoupklshhqu5i33avjud685kqlmdjdqctbpu0fwhomore6ue16p0b2sz04nqisqrghhdrbpkc6tcpojii6la07ubxdsforv1ccqp7ghvlvo7lxpxuy2ocbmkm1bhxtcnsjvsiy5mose2seuxzfe7xlmka+1+0k/c6qbbuns7xqmrmgsd3vgwn1tr74rpn0kfb172xk/pe1yvsq7uqeuyw8yoolvfgsdmmog9ivijouawoukwheslifml7qnjhns6iustvkmyyhxpye6lcjjvjhr2cfvvkhr+myiaobsau7uirdoiqtqemdgnzahtzao3vr3vtp1vn4dmqa7gzad1kvhyltncy=</latexit> <latexit sha1_base64="wvda6mp+9m2djbttbfqdl1oz6u0=">aaacdxicbzdlsgmxfibpek31vnxpjlgev2v6aetctlpxwcfaovnljs20wcyf5ixqhj6bg1/fjqsvt+7d+ry+gum0ircfah//fw5jfjesqqntv1lt0zozc/ozhezi0vlkam5t/vyhswk8wuizqguxai5fwbsoupklshhqu5i33avjud685kqlmdjdqctbpu0fwhomore6ue16p0b2sz04nqisqrghhdrbpkc6tcpojii6la07ubxdsforv1ccqp7ghvlvo7lxpxuy2ocbmkm1bhxtcnsjvsiy5mose2seuxzfe7xlmka+1+0k/c6qbbuns7xqmrmgsd3vgwn1tr74rpn0kfb172xk/pe1yvsq7uqeuyw8yoolvfgsdmmog9ivijouawoukwheslifml7qnjhns6iustvkmyyhxpye6lcjjvjhr2cfvvkhr+myiaobsau7uirdoiqtqemdgnzahtzao3vr3vtp1vn4dmqa7gzad1kvhyltncy=</latexit> <latexit sha1_base64="yp2i7romeayvwxlitfnycmf2xiy=">aaacg3icbzdlsgmxfibpelfeqi7dbivgqk4vyf2inwsxfawknvoyacygmxesm0iz5khc+cpuxki4elz4fj6c6bsktx8cx/5zdif53ugkjbb9zo2mjo1pte5n52zm5+yx8otlpzqmfemnfspqnbtucykc3kcbkp9hilpflfzmvtro18+uudiide6wf/gwty8d4qlg0vjtfowqbjn6e49skd1djqcos+ppunuikq6vdgu1g12one3urtlt5wt20c5e/kjpciwdd8hub+dfne7iyp8hyctvulmyi2wlvkfgkqc5j9y8ouykxvkmwyd6xles7hmpwtnoh3ihmidakrnfjxlqa93zxdppu+zq37w++v+tganxayuiiglkarss8mjjmct9pehhkm5q9gxqpor5k2fdagjbk2cuc6falteqftkasuktal8hnmrfraj9xc3s7g/cgclygvvyhxjswi4cqr0awoag7uabhq1b6956sp4hrspwcgyzfsh6/qa146gl</latexit> <latexit sha1_base64="yp2i7romeayvwxlitfnycmf2xiy=">aaacg3icbzdlsgmxfibpelfeqi7dbivgqk4vyf2inwsxfawknvoyacygmxesm0iz5khc+cpuxki4elz4fj6c6bsktx8cx/5zdif53ugkjbb9zo2mjo1pte5n52zm5+yx8otlpzqmfemnfspqnbtucykc3kcbkp9hilpflfzmvtro18+uudiide6wf/gwty8d4qlg0vjtfowqbjn6e49skd1djqcos+ppunuikq6vdgu1g12one3urtlt5wt20c5e/kjpciwdd8hub+dfne7iyp8hyctvulmyi2wlvkfgkqc5j9y8ouykxvkmwyd6xles7hmpwtnoh3ihmidakrnfjxlqa93zxdppu+zq37w++v+tganxayuiiglkarss8mjjmct9pehhkm5q9gxqpor5k2fdagjbk2cuc6falteqftkasuktal8hnmrfraj9xc3s7g/cgclygvvyhxjswi4cqr0awoag7uabhq1b6956sp4hrspwcgyzfsh6/qa146gl</latexit> <latexit sha1_base64="yp2i7romeayvwxlitfnycmf2xiy=">aaacg3icbzdlsgmxfibpelfeqi7dbivgqk4vyf2inwsxfawknvoyacygmxesm0iz5khc+cpuxki4elz4fj6c6bsktx8cx/5zdif53ugkjbb9zo2mjo1pte5n52zm5+yx8otlpzqmfemnfspqnbtucykc3kcbkp9hilpflfzmvtro18+uudiide6wf/gwty8d4qlg0vjtfowqbjn6e49skd1djqcos+ppunuikq6vdgu1g12one3urtlt5wt20c5e/kjpciwdd8hub+dfne7iyp8hyctvulmyi2wlvkfgkqc5j9y8ouykxvkmwyd6xles7hmpwtnoh3ihmidakrnfjxlqa93zxdppu+zq37w++v+tganxayuiiglkarss8mjjmct9pehhkm5q9gxqpor5k2fdagjbk2cuc6falteqftkasuktal8hnmrfraj9xc3s7g/cgclygvvyhxjswi4cqr0awoag7uabhq1b6956sp4hrspwcgyzfsh6/qa146gl</latexit> <latexit sha1_base64="yp2i7romeayvwxlitfnycmf2xiy=">aaacg3icbzdlsgmxfibpelfeqi7dbivgqk4vyf2inwsxfawknvoyacygmxesm0iz5khc+cpuxki4elz4fj6c6bsktx8cx/5zdif53ugkjbb9zo2mjo1pte5n52zm5+yx8otlpzqmfemnfspqnbtucykc3kcbkp9hilpflfzmvtro18+uudiide6wf/gwty8d4qlg0vjtfowqbjn6e49skd1djqcos+ppunuikq6vdgu1g12one3urtlt5wt20c5e/kjpciwdd8hub+dfne7iyp8hyctvulmyi2wlvkfgkqc5j9y8ouykxvkmwyd6xles7hmpwtnoh3ihmidakrnfjxlqa93zxdppu+zq37w++v+tganxayuiiglkarss8mjjmct9pehhkm5q9gxqpor5k2fdagjbk2cuc6falteqftkasuktal8hnmrfraj9xc3s7g/cgclygvvyhxjswi4cqr0awoag7uabhq1b6956sp4hrspwcgyzfsh6/qa146gl</latexit> <latexit sha1_base64="yp2i7romeayvwxlitfnycmf2xiy=">aaacg3icbzdlsgmxfibpelfeqi7dbivgqk4vyf2inwsxfawknvoyacygmxesm0iz5khc+cpuxki4elz4fj6c6bsktx8cx/5zdif53ugkjbb9zo2mjo1pte5n52zm5+yx8otlpzqmfemnfspqnbtucykc3kcbkp9hilpflfzmvtro18+uudiide6wf/gwty8d4qlg0vjtfowqbjn6e49skd1djqcos+ppunuikq6vdgu1g12one3urtlt5wt20c5e/kjpciwdd8hub+dfne7iyp8hyctvulmyi2wlvkfgkqc5j9y8ouykxvkmwyd6xles7hmpwtnoh3ihmidakrnfjxlqa93zxdppu+zq37w++v+tganxayuiiglkarss8mjjmct9pehhkm5q9gxqpor5k2fdagjbk2cuc6falteqftkasuktal8hnmrfraj9xc3s7g/cgclygvvyhxjswi4cqr0awoag7uabhq1b6956sp4hrspwcgyzfsh6/qa146gl</latexit> Irradiance from isotropic point source A surface of area A facing at an angle to the source receives a factor of cos θ less light: P A = P A cos 4 r 2 Irradiance is power per unit area: E = P A /A = P 4 cos r 2 intensity geometry factor 2018 Steve Marschner 9
<latexit sha1_base64="1pnc0y2otrxxxqtwixbvcpctuqe=">aaacrnicbvbnb9naeb2hasv8pxdksijcqkjetlqj9fc1aih10emryvqpjql1epyusl6b3xfvy8q/6k/hchd+ar+cxqpe2tgfuwckxb19b2zn5iwlkpbc8lvxubvy+87d1xv+/qcphz3urj35aivkcixeoqpzlhclsmqmsjlco9igzxofh8ns3ui/pevjzae/uf3ioodtltmpodlq0u3hcu6lbvct5sbw+txc35ukbivn3p3ezzhq9a9x0u2f/ban9i8yxipe9gw0st9z87w4lusvoyahulxhg7ckccmnsafw7sevxzklgz9i064zzy8clbksmo5oyi17i4/n1tz54jjztif2b21b/k87rigbjrupy4pqi2wjrfkmcrbwhqxsocbvmy6em7fi5oyqj9xwqc5dp25lmycy7hvykwd7mjhc1ahhwz4fugtvpri4zkaevt51n7l9/na0jefwtlholmb98aumfpswdfub/fbg2nt5uzqpvuezpiexmia3sao7sa8rcdihz/afvnrfvb/epxe1to141zvp4uz04cfsz7en</latexit> <latexit sha1_base64="1pnc0y2otrxxxqtwixbvcpctuqe=">aaacrnicbvbnb9naeb2hasv8pxdksijcqkjetlqj9fc1aih10emryvqpjql1epyusl6b3xfvy8q/6k/hchd+ar+cxqpe2tgfuwckxb19b2zn5iwlkpbc8lvxubvy+87d1xv+/qcphz3urj35aivkcixeoqpzlhclsmqmsjlco9igzxofh8ns3ui/pevjzae/uf3ioodtltmpodlq0u3hcu6lbvct5sbw+txc35ukbivn3p3ezzhq9a9x0u2f/ban9i8yxipe9gw0st9z87w4lusvoyahulxhg7ckccmnsafw7sevxzklgz9i064zzy8clbksmo5oyi17i4/n1tz54jjztif2b21b/k87rigbjrupy4pqi2wjrfkmcrbwhqxsocbvmy6em7fi5oyqj9xwqc5dp25lmycy7hvykwd7mjhc1ahhwz4fugtvpri4zkaevt51n7l9/na0jefwtlholmb98aumfpswdfub/fbg2nt5uzqpvuezpiexmia3sao7sa8rcdihz/afvnrfvb/epxe1to141zvp4uz04cfsz7en</latexit> <latexit sha1_base64="1pnc0y2otrxxxqtwixbvcpctuqe=">aaacrnicbvbnb9naeb2hasv8pxdksijcqkjetlqj9fc1aih10emryvqpjql1epyusl6b3xfvy8q/6k/hchd+ar+cxqpe2tgfuwckxb19b2zn5iwlkpbc8lvxubvy+87d1xv+/qcphz3urj35aivkcixeoqpzlhclsmqmsjlco9igzxofh8ns3ui/pevjzae/uf3ioodtltmpodlq0u3hcu6lbvct5sbw+txc35ukbivn3p3ezzhq9a9x0u2f/ban9i8yxipe9gw0st9z87w4lusvoyahulxhg7ckccmnsafw7sevxzklgz9i064zzy8clbksmo5oyi17i4/n1tz54jjztif2b21b/k87rigbjrupy4pqi2wjrfkmcrbwhqxsocbvmy6em7fi5oyqj9xwqc5dp25lmycy7hvykwd7mjhc1ahhwz4fugtvpri4zkaevt51n7l9/na0jefwtlholmb98aumfpswdfub/fbg2nt5uzqpvuezpiexmia3sao7sa8rcdihz/afvnrfvb/epxe1to141zvp4uz04cfsz7en</latexit> <latexit sha1_base64="1pnc0y2otrxxxqtwixbvcpctuqe=">aaacrnicbvbnb9naeb2hasv8pxdksijcqkjetlqj9fc1aih10emryvqpjql1epyusl6b3xfvy8q/6k/hchd+ar+cxqpe2tgfuwckxb19b2zn5iwlkpbc8lvxubvy+87d1xv+/qcphz3urj35aivkcixeoqpzlhclsmqmsjlco9igzxofh8ns3ui/pevjzae/uf3ioodtltmpodlq0u3hcu6lbvct5sbw+txc35ukbivn3p3ezzhq9a9x0u2f/ban9i8yxipe9gw0st9z87w4lusvoyahulxhg7ckccmnsafw7sevxzklgz9i064zzy8clbksmo5oyi17i4/n1tz54jjztif2b21b/k87rigbjrupy4pqi2wjrfkmcrbwhqxsocbvmy6em7fi5oyqj9xwqc5dp25lmycy7hvykwd7mjhc1ahhwz4fugtvpri4zkaevt51n7l9/na0jefwtlholmb98aumfpswdfub/fbg2nt5uzqpvuezpiexmia3sao7sa8rcdihz/afvnrfvb/epxe1to141zvp4uz04cfsz7en</latexit> <latexit sha1_base64="1pnc0y2otrxxxqtwixbvcpctuqe=">aaacrnicbvbnb9naeb2hasv8pxdksijcqkjetlqj9fc1aih10emryvqpjql1epyusl6b3xfvy8q/6k/hchd+ar+cxqpe2tgfuwckxb19b2zn5iwlkpbc8lvxubvy+87d1xv+/qcphz3urj35aivkcixeoqpzlhclsmqmsjlco9igzxofh8ns3ui/pevjzae/uf3ioodtltmpodlq0u3hcu6lbvct5sbw+txc35ukbivn3p3ezzhq9a9x0u2f/ban9i8yxipe9gw0st9z87w4lusvoyahulxhg7ckccmnsafw7sevxzklgz9i064zzy8clbksmo5oyi17i4/n1tz54jjztif2b21b/k87rigbjrupy4pqi2wjrfkmcrbwhqxsocbvmy6em7fi5oyqj9xwqc5dp25lmycy7hvykwd7mjhc1ahhwz4fugtvpri4zkaevt51n7l9/na0jefwtlholmb98aumfpswdfub/fbg2nt5uzqpvuezpiexmia3sao7sa8rcdihz/afvnrfvb/epxe1to141zvp4uz04cfsz7en</latexit> <latexit sha1_base64="v+7i6oqoqxbnjpakapa33awxr/w=">aaacunicbvlpa9rafh5zf9vy7vapxgyxqqq32w3brsawrfdqqxvjc80sjpox7ddjjj15kq0h/4t/jve9epc/8o7f2wwvqz4y+oz735v33seklzkwwvcbn7hy9dr1g2s3/vvrt+9sddfvfrblbqrgolslouy5rsu1rirj4wflkbepwop05nuyf3cgxspsv6emwnnbf1rmunbyvdj8fqe4klrfu82n4c3jzt9lmvacxbnhon2xzf0bv7jjr30wo87+ecbdutgo+2d/gskfgl34dn3sj5uef2elqavujbs39mgsvjrvusepfhz+xfusudjhc2z71tr20fezy0vjjibws5d0vlc2kvknldgd279zs/j/uaoa8tm8lbqqcbvyncprxahks59yjg0kug3jqrh5a05udnhmnsvk/ptjvrqniutugtvfscdtw00tej4xesc1uhwggets5pmtm/ey28fvtduetmfbw2wftia/woy3adf0vdmo305huy9x5sea3ich8agm8br24q3sqwqcpsin+axfvk/ej4h7jsvpwluouqexyrd+e8amtku=</latexit> <latexit sha1_base64="v+7i6oqoqxbnjpakapa33awxr/w=">aaacunicbvlpa9rafh5zf9vy7vapxgyxqqq32w3brsawrfdqqxvjc80sjpox7ddjjj15kq0h/4t/jve9epc/8o7f2wwvqz4y+oz735v33seklzkwwvcbn7hy9dr1g2s3/vvrt+9sddfvfrblbqrgolslouy5rsu1rirj4wflkbepwop05nuyf3cgxspsv6emwnnbf1rmunbyvdj8fqe4klrfu82n4c3jzt9lmvacxbnhon2xzf0bv7jjr30wo87+ecbdutgo+2d/gskfgl34dn3sj5uef2elqavujbs39mgsvjrvusepfhz+xfusudjhc2z71tr20fezy0vjjibws5d0vlc2kvknldgd279zs/j/uaoa8tm8lbqqcbvyncprxahks59yjg0kug3jqrh5a05udnhmnsvk/ptjvrqniutugtvfscdtw00tej4xesc1uhwggets5pmtm/ey28fvtduetmfbw2wftia/woy3adf0vdmo305huy9x5sea3ich8agm8br24q3sqwqcpsin+axfvk/ej4h7jsvpwluouqexyrd+e8amtku=</latexit> <latexit sha1_base64="v+7i6oqoqxbnjpakapa33awxr/w=">aaacunicbvlpa9rafh5zf9vy7vapxgyxqqq32w3brsawrfdqqxvjc80sjpox7ddjjj15kq0h/4t/jve9epc/8o7f2wwvqz4y+oz735v33seklzkwwvcbn7hy9dr1g2s3/vvrt+9sddfvfrblbqrgolslouy5rsu1rirj4wflkbepwop05nuyf3cgxspsv6emwnnbf1rmunbyvdj8fqe4klrfu82n4c3jzt9lmvacxbnhon2xzf0bv7jjr30wo87+ecbdutgo+2d/gskfgl34dn3sj5uef2elqavujbs39mgsvjrvusepfhz+xfusudjhc2z71tr20fezy0vjjibws5d0vlc2kvknldgd279zs/j/uaoa8tm8lbqqcbvyncprxahks59yjg0kug3jqrh5a05udnhmnsvk/ptjvrqniutugtvfscdtw00tej4xesc1uhwggets5pmtm/ey28fvtduetmfbw2wftia/woy3adf0vdmo305huy9x5sea3ich8agm8br24q3sqwqcpsin+axfvk/ej4h7jsvpwluouqexyrd+e8amtku=</latexit> <latexit sha1_base64="v+7i6oqoqxbnjpakapa33awxr/w=">aaacunicbvlpa9rafh5zf9vy7vapxgyxqqq32w3brsawrfdqqxvjc80sjpox7ddjjj15kq0h/4t/jve9epc/8o7f2wwvqz4y+oz735v33seklzkwwvcbn7hy9dr1g2s3/vvrt+9sddfvfrblbqrgolslouy5rsu1rirj4wflkbepwop05nuyf3cgxspsv6emwnnbf1rmunbyvdj8fqe4klrfu82n4c3jzt9lmvacxbnhon2xzf0bv7jjr30wo87+ecbdutgo+2d/gskfgl34dn3sj5uef2elqavujbs39mgsvjrvusepfhz+xfusudjhc2z71tr20fezy0vjjibws5d0vlc2kvknldgd279zs/j/uaoa8tm8lbqqcbvyncprxahks59yjg0kug3jqrh5a05udnhmnsvk/ptjvrqniutugtvfscdtw00tej4xesc1uhwggets5pmtm/ey28fvtduetmfbw2wftia/woy3adf0vdmo305huy9x5sea3ich8agm8br24q3sqwqcpsin+axfvk/ej4h7jsvpwluouqexyrd+e8amtku=</latexit> <latexit sha1_base64="v+7i6oqoqxbnjpakapa33awxr/w=">aaacunicbvlpa9rafh5zf9vy7vapxgyxqqq32w3brsawrfdqqxvjc80sjpox7ddjjj15kq0h/4t/jve9epc/8o7f2wwvqz4y+oz735v33seklzkwwvcbn7hy9dr1g2s3/vvrt+9sddfvfrblbqrgolslouy5rsu1rirj4wflkbepwop05nuyf3cgxspsv6emwnnbf1rmunbyvdj8fqe4klrfu82n4c3jzt9lmvacxbnhon2xzf0bv7jjr30wo87+ecbdutgo+2d/gskfgl34dn3sj5uef2elqavujbs39mgsvjrvusepfhz+xfusudjhc2z71tr20fezy0vjjibws5d0vlc2kvknldgd279zs/j/uaoa8tm8lbqqcbvyncprxahks59yjg0kug3jqrh5a05udnhmnsvk/ptjvrqniutugtvfscdtw00tej4xesc1uhwggets5pmtm/ey28fvtduetmfbw2wftia/woy3adf0vdmo305huy9x5sea3ich8agm8br24q3sqwqcpsin+axfvk/ej4h7jsvpwluouqexyrd+e8amtku=</latexit> Diffuse reflection Simplest reflection model Reflected light is independent of view direction Reflected light is proportional to irradiance constant of proportionality is the diffuse reflection coefficient L d = k d E More useful to think in terms of reflectance reflectance is the fraction reflected (between 0 and 1) L d = R d E will have to explain the factor of pi later 2018 Steve Marschner 10
<latexit sha1_base64="kefe40amgwkpa/1p/f6ediyu2b0=">aaacdhicbvdlbtqwfhxcq4rhp2wjkcxglqoqk0xaqcmcucegpc4kirrspywc52zq1xac7ywmivjz/av/wblysmwtfesbk1k699xzhz5pkbixuftz869cvxb9xtrn4nbto3fxbxub701raqyjk0sht1jqqhafievwwempgcpuwhf6/njvp16anrxq72xdwltsuei5z9q6ajygjiu5vw18vfrrwj9ug8nzhp9hkmvkmrdtq0rekp0+jziut6mdtbyke5yv1ihxqg30h9hpxgcevpbhqnlggi2ilvc/yhwbhs+/oi6ozhuer7kcvrkuzyiaczqosjttqlaccwgduhkoktunc2i6z7d4y1ezzgvtnrk4yy/pqdsmlqltsmrpzn+1ffm/2mll88m04aqslcjwl8orgw2bv07ijgtgvtsymuburah1d7az6oyyzvgadk1nmbixhubl8jcnmuo6tlcuecgve1ugodus+fljwg1z/wk60/bielk3i3uwo/4fjr9ns+lr01h0jh4evojnq2vopnqittey7amd9aodoqqx9al9qd/qd++h/8af+lu91pcueu6hs+gpfglz0meo</latexit> <latexit sha1_base64="kefe40amgwkpa/1p/f6ediyu2b0=">aaacdhicbvdlbtqwfhxcq4rhp2wjkcxglqoqk0xaqcmcucegpc4kirrspywc52zq1xac7ywmivjz/av/wblysmwtfesbk1k699xzhz5pkbixuftz869cvxb9xtrn4nbto3fxbxub701raqyjk0sht1jqqhafievwwempgcpuwhf6/njvp16anrxq72xdwltsuei5z9q6ajygjiu5vw18vfrrwj9ug8nzhp9hkmvkmrdtq0rekp0+jziut6mdtbyke5yv1ihxqg30h9hpxgcevpbhqnlggi2ilvc/yhwbhs+/oi6ozhuer7kcvrkuzyiaczqosjttqlaccwgduhkoktunc2i6z7d4y1ezzgvtnrk4yy/pqdsmlqltsmrpzn+1ffm/2mll88m04aqslcjwl8orgw2bv07ijgtgvtsymuburah1d7az6oyyzvgadk1nmbixhubl8jcnmuo6tlcuecgve1ugodus+fljwg1z/wk60/bielk3i3uwo/4fjr9ns+lr01h0jh4evojnq2vopnqittey7amd9aodoqqx9al9qd/qd++h/8af+lu91pcueu6hs+gpfglz0meo</latexit> <latexit sha1_base64="kefe40amgwkpa/1p/f6ediyu2b0=">aaacdhicbvdlbtqwfhxcq4rhp2wjkcxglqoqk0xaqcmcucegpc4kirrspywc52zq1xac7ywmivjz/av/wblysmwtfesbk1k699xzhz5pkbixuftz869cvxb9xtrn4nbto3fxbxub701raqyjk0sht1jqqhafievwwempgcpuwhf6/njvp16anrxq72xdwltsuei5z9q6ajygjiu5vw18vfrrwj9ug8nzhp9hkmvkmrdtq0rekp0+jziut6mdtbyke5yv1ihxqg30h9hpxgcevpbhqnlggi2ilvc/yhwbhs+/oi6ozhuer7kcvrkuzyiaczqosjttqlaccwgduhkoktunc2i6z7d4y1ezzgvtnrk4yy/pqdsmlqltsmrpzn+1ffm/2mll88m04aqslcjwl8orgw2bv07ijgtgvtsymuburah1d7az6oyyzvgadk1nmbixhubl8jcnmuo6tlcuecgve1ugodus+fljwg1z/wk60/bielk3i3uwo/4fjr9ns+lr01h0jh4evojnq2vopnqittey7amd9aodoqqx9al9qd/qd++h/8af+lu91pcueu6hs+gpfglz0meo</latexit> <latexit sha1_base64="kefe40amgwkpa/1p/f6ediyu2b0=">aaacdhicbvdlbtqwfhxcq4rhp2wjkcxglqoqk0xaqcmcucegpc4kirrspywc52zq1xac7ywmivjz/av/wblysmwtfesbk1k699xzhz5pkbixuftz869cvxb9xtrn4nbto3fxbxub701raqyjk0sht1jqqhafievwwempgcpuwhf6/njvp16anrxq72xdwltsuei5z9q6ajygjiu5vw18vfrrwj9ug8nzhp9hkmvkmrdtq0rekp0+jziut6mdtbyke5yv1ihxqg30h9hpxgcevpbhqnlggi2ilvc/yhwbhs+/oi6ozhuer7kcvrkuzyiaczqosjttqlaccwgduhkoktunc2i6z7d4y1ezzgvtnrk4yy/pqdsmlqltsmrpzn+1ffm/2mll88m04aqslcjwl8orgw2bv07ijgtgvtsymuburah1d7az6oyyzvgadk1nmbixhubl8jcnmuo6tlcuecgve1ugodus+fljwg1z/wk60/bielk3i3uwo/4fjr9ns+lr01h0jh4evojnq2vopnqittey7amd9aodoqqx9al9qd/qd++h/8af+lu91pcueu6hs+gpfglz0meo</latexit> <latexit sha1_base64="kefe40amgwkpa/1p/f6ediyu2b0=">aaacdhicbvdlbtqwfhxcq4rhp2wjkcxglqoqk0xaqcmcucegpc4kirrspywc52zq1xac7ywmivjz/av/wblysmwtfesbk1k699xzhz5pkbixuftz869cvxb9xtrn4nbto3fxbxub701raqyjk0sht1jqqhafievwwempgcpuwhf6/njvp16anrxq72xdwltsuei5z9q6ajygjiu5vw18vfrrwj9ug8nzhp9hkmvkmrdtq0rekp0+jziut6mdtbyke5yv1ihxqg30h9hpxgcevpbhqnlggi2ilvc/yhwbhs+/oi6ozhuer7kcvrkuzyiaczqosjttqlaccwgduhkoktunc2i6z7d4y1ezzgvtnrk4yy/pqdsmlqltsmrpzn+1ffm/2mll88m04aqslcjwl8orgw2bv07ijgtgvtsymuburah1d7az6oyyzvgadk1nmbixhubl8jcnmuo6tlcuecgve1ugodus+fljwg1z/wk60/bielk3i3uwo/4fjr9ns+lr01h0jh4evojnq2vopnqittey7amd9aodoqqx9al9qd/qd++h/8af+lu91pcueu6hs+gpfglz0meo</latexit> Lambertian shading Shading independent of view direction diffuse reflectance irradiance from source l n v L d = R max(0, n l) r 2 I diffuse coefficient distance to source intensity of source diffusely reflected radiance 2018 Steve Marschner 11
Lambertian shading Produces matte appearance [Foley et al.] k d 2018 Steve Marschner 12
Diffuse shading 2018 Steve Marschner 13
Image so far Scene.trace(Ray ray, tmin, tmax) { surface, t = hit(ray, tmin, tmax); if surface is not null { point = ray.evaluate(t); normal = surface.getnormal(point); return surface.shade(ray, point, normal, light); } else return backgroundcolor; } Surface.shade(ray, point, normal, light) { v = normalize(ray.direction); l = normalize(light.pos point); // compute shading } 2018 Steve Marschner 14
Shadows Surface is only illuminated if nothing blocks the light i.e. if the surface can see the light With ray tracing it s easy to check just intersect a ray with the scene! 2018 Steve Marschner 15
Image so far Surface.shade(ray, point, normal, light) { shadray = (point, light.pos point); if (shadray not blocked) { v = normalize(ray.direction); l = normalize(light.pos point); // compute shading } return black; } 2018 Steve Marschner 16
Shadow rounding errors Don t fall victim to one of the classic blunders: What s going on? hint: at what t does the shadow ray intersect the surface you re shading? 2018 Steve Marschner 17
Shadow rounding errors Solution: shadow rays start a tiny distance from the surface Do this by moving the start point, or by limiting the t range 2018 Steve Marschner 18
Multiple lights Important to fill in black shadows Just loop over lights, add contributions Ambient shading black shadows are not really right one solution: dim light at camera alternative: add a constant ambient color to the shading 2018 Steve Marschner 19
Image so far shade(ray, point, normal, lights) { result = ambient; for light in lights { if (shadow ray not blocked) { result += shading contribution; } } return result; } 2018 Steve Marschner 20
Specular shading diffuse specular 2018 Steve Marschner 21
Light reflection: full picture when writing a shader, think like a bug standing on the surface bug sees an incident distribution of light arriving at the surface physics question: what is the outgoing distribution of light? incident distribution (function of direction) reflected distribution (function of direction) 2018 Steve Marschner 22
BRDF Bidirectional Reflectance Distribution Function 2018 Steve Marschner 23
Reciprocity Interchanging arguments Physical requirement 2018 Steve Marschner 24
Specular reflection Intensity depends on view direction bright near mirror configuration l n v Caution: in notes and assignment, v is called ωr and l is called ωi. No meaningful difference, just notational. 2018 Steve Marschner 25
Smooth surfaces metal dielectric 2018 Steve Marschner 26
Ideal specular reflection Smooth surfaces of pure materials have ideal specular reflection Metals (conductors) and dielectrics (insulators) behave differently Reflectance (fraction of light reflected) depends on angle metal dielectric 2018 Steve Marschner 27
Refraction at boundary of media 2018 Steve Marschner 28
Specular reflection from metal Reflectance does depend on angle but not much safely ignored in basic rendering Aluminum 2018 Steve Marschner 29
Specular reflection from glass/water Dependence on angle is dramatic! about 4% at normal incidence always 100% at grazing remaining light is transmitted This is important for proper appearance Glass 2018 Steve Marschner 30
Fresnel s formulas They predict how much light reflects from a smooth interface between two materials usually one material is empty space where R is the fraction that is reflected (1 R) is the fraction that is transmitted note: the formula in the notes and assignment is different but equivalent. 2018 Steve Marschner 31
2018 Steve Marschner 32
Fresnel reflection [Mike Hill & Gaain Kwan Stanford cs348 competition 2001] 2018 Steve Marschner 33
Microfacet BRDF Model The microfacet idea surface modeled as random collection of planar facets an incoming ray hits exactly one facet, at random Key input: probability distribution of facet angle [Stephen Westin] 2018 Steve Marschner 34
Facet Reflection H vector used to define facets that contribute L and V determine H; only facets with that normal matter reflected light is proportional to number of facets 2018 Steve Marschner 35
Microfacet BRDF Model f r (n, l, v) = F (l, h)d(h)g(l, v, h) 4 n l n v 2018 Steve Marschner 36
Microfacet BRDF Model Facet distribution f r (n, l, v) = F (l, h)d(h)g(l, v, h) 4 n l n v [Stephen Westin] 2018 Steve Marschner 37
Facet Distribution D function describes distribution of h Many choices, depending on surface characteristics A classic choice is due to Beckmann derivation based on Gaussian random processes D(h) = tan 2 (h,n) e m 2 m 2 cos 4 (h, n) 2018 Steve Marschner 38
Cook-Torrance BRDF Model Fresnel Reflectance f r (n, l, v) = F (l, h)d(h)g(l, v, h) 4 n l n v Fresnel reflectance for smooth facet more light reflected at grazing angles 2018 Steve Marschner 39
Cook-Torrance BRDF Model Masking/shadowing f r (n, l, v) = F (l, h)d(h)g(l, v, h) 4 n l n v 2018 Steve Marschner 40
<latexit sha1_base64="bbyn6thxut64aynit6opoi8b8js=">aaadrnicbvllbtnafb27peqapmdjzkrelarfjzyaoicoxkiswbsj0eqznbqpx8mo43gygydgltd8dvv4bj6br4anysvytkt4xmnwuefco9f3eiizz0p73lflxrt2/cbn9vu123fubmxubd97q5juejogcu/kayav5uzqgwaa09ozpdgood0jzl8u+smcssus8uyvznqu44lgesnyg2q8bcedenrasuwnemz24rjjg+btxfgmho3933lbrrcyjbcctz2qbj4vgyj6pto8ejmys2wvr5xguoeiiulmihaje10myfczkspjjlo9w4mmueantgte7kbyiinbw06n1cgov4f6tcfv+fismwf+mm92dy6ltrdbsptmp6tphc5ylcoi4vpoowcqofji/0pn9jtk90zr5swqwuxs8vbdc7wy4l/ax4l68++gjgpj6qyke5lgvgjcsvjd35vp/yjtd2kuyakz4wymshwdyxkoj3roomaxvaos/km5fgsyeeajni/qsgrxozick7wia1mzyz1vf2sf+t9tmoqon8qymkwacliniliodqkl6wfdjinrfgeajpkzb4vkio3x2lyigiobm3egtoyqgbuvwccxxljgxdhymsa8dalr5kp28xhujjlbla62m81euwur0pivqe/kwuhteej4r9v1w0bljfghd8bd0aa+6ijd8bicgweg1gfro/xj+mx/sb/zp+yfvaltlxvugz9idfwc43ua7g==</latexit> <latexit sha1_base64="bbyn6thxut64aynit6opoi8b8js=">aaadrnicbvllbtnafb27peqapmdjzkrelarfjzyaoicoxkiswbsj0eqznbqpx8mo43gygydgltd8dvv4bj6br4anysvytkt4xmnwuefco9f3eiizz0p73lflxrt2/cbn9vu123fubmxubd97q5juejogcu/kayav5uzqgwaa09ozpdgood0jzl8u+smcssus8uyvznqu44lgesnyg2q8bcedenrasuwnemz24rjjg+btxfgmho3933lbrrcyjbcctz2qbj4vgyj6pto8ejmys2wvr5xguoeiiulmihaje10myfczkspjjlo9w4mmueantgte7kbyiinbw06n1cgov4f6tcfv+fismwf+mm92dy6ltrdbsptmp6tphc5ylcoi4vpoowcqofji/0pn9jtk90zr5swqwuxs8vbdc7wy4l/ax4l68++gjgpj6qyke5lgvgjcsvjd35vp/yjtd2kuyakz4wymshwdyxkoj3roomaxvaos/km5fgsyeeajni/qsgrxozick7wia1mzyz1vf2sf+t9tmoqon8qymkwacliniliodqkl6wfdjinrfgeajpkzb4vkio3x2lyigiobm3egtoyqgbuvwccxxljgxdhymsa8dalr5kp28xhujjlbla62m81euwur0pivqe/kwuhteej4r9v1w0bljfghd8bd0aa+6ijd8bicgweg1gfro/xj+mx/sb/zp+yfvaltlxvugz9idfwc43ua7g==</latexit> <latexit sha1_base64="bbyn6thxut64aynit6opoi8b8js=">aaadrnicbvllbtnafb27peqapmdjzkrelarfjzyaoicoxkiswbsj0eqznbqpx8mo43gygydgltd8dvv4bj6br4anysvytkt4xmnwuefco9f3eiizz0p73lflxrt2/cbn9vu123fubmxubd97q5juejogcu/kayav5uzqgwaa09ozpdgood0jzl8u+smcssus8uyvznqu44lgesnyg2q8bcedenrasuwnemz24rjjg+btxfgmho3933lbrrcyjbcctz2qbj4vgyj6pto8ejmys2wvr5xguoeiiulmihaje10myfczkspjjlo9w4mmueantgte7kbyiinbw06n1cgov4f6tcfv+fismwf+mm92dy6ltrdbsptmp6tphc5ylcoi4vpoowcqofji/0pn9jtk90zr5swqwuxs8vbdc7wy4l/ax4l68++gjgpj6qyke5lgvgjcsvjd35vp/yjtd2kuyakz4wymshwdyxkoj3roomaxvaos/km5fgsyeeajni/qsgrxozick7wia1mzyz1vf2sf+t9tmoqon8qymkwacliniliodqkl6wfdjinrfgeajpkzb4vkio3x2lyigiobm3egtoyqgbuvwccxxljgxdhymsa8dalr5kp28xhujjlbla62m81euwur0pivqe/kwuhteej4r9v1w0bljfghd8bd0aa+6ijd8bicgweg1gfro/xj+mx/sb/zp+yfvaltlxvugz9idfwc43ua7g==</latexit> <latexit sha1_base64="bbyn6thxut64aynit6opoi8b8js=">aaadrnicbvllbtnafb27peqapmdjzkrelarfjzyaoicoxkiswbsj0eqznbqpx8mo43gygydgltd8dvv4bj6br4anysvytkt4xmnwuefco9f3eiizz0p73lflxrt2/cbn9vu123fubmxubd97q5juejogcu/kayav5uzqgwaa09ozpdgood0jzl8u+smcssus8uyvznqu44lgesnyg2q8bcedenrasuwnemz24rjjg+btxfgmho3933lbrrcyjbcctz2qbj4vgyj6pto8ejmys2wvr5xguoeiiulmihaje10myfczkspjjlo9w4mmueantgte7kbyiinbw06n1cgov4f6tcfv+fismwf+mm92dy6ltrdbsptmp6tphc5ylcoi4vpoowcqofji/0pn9jtk90zr5swqwuxs8vbdc7wy4l/ax4l68++gjgpj6qyke5lgvgjcsvjd35vp/yjtd2kuyakz4wymshwdyxkoj3roomaxvaos/km5fgsyeeajni/qsgrxozick7wia1mzyz1vf2sf+t9tmoqon8qymkwacliniliodqkl6wfdjinrfgeajpkzb4vkio3x2lyigiobm3egtoyqgbuvwccxxljgxdhymsa8dalr5kp28xhujjlbla62m81euwur0pivqe/kwuhteej4r9v1w0bljfghd8bd0aa+6ijd8bicgweg1gfro/xj+mx/sb/zp+yfvaltlxvugz9idfwc43ua7g==</latexit> <latexit sha1_base64="bbyn6thxut64aynit6opoi8b8js=">aaadrnicbvllbtnafb27peqapmdjzkrelarfjzyaoicoxkiswbsj0eqznbqpx8mo43gygydgltd8dvv4bj6br4anysvytkt4xmnwuefco9f3eiizz0p73lflxrt2/cbn9vu123fubmxubd97q5juejogcu/kayav5uzqgwaa09ozpdgood0jzl8u+smcssus8uyvznqu44lgesnyg2q8bcedenrasuwnemz24rjjg+btxfgmho3933lbrrcyjbcctz2qbj4vgyj6pto8ejmys2wvr5xguoeiiulmihaje10myfczkspjjlo9w4mmueantgte7kbyiinbw06n1cgov4f6tcfv+fismwf+mm92dy6ltrdbsptmp6tphc5ylcoi4vpoowcqofji/0pn9jtk90zr5swqwuxs8vbdc7wy4l/ax4l68++gjgpj6qyke5lgvgjcsvjd35vp/yjtd2kuyakz4wymshwdyxkoj3roomaxvaos/km5fgsyeeajni/qsgrxozick7wia1mzyz1vf2sf+t9tmoqon8qymkwacliniliodqkl6wfdjinrfgeajpkzb4vkio3x2lyigiobm3egtoyqgbuvwccxxljgxdhymsa8dalr5kp28xhujjlbla62m81euwur0pivqe/kwuhteej4r9v1w0bljfghd8bd0aa+6ijd8bicgweg1gfro/xj+mx/sb/zp+yfvaltlxvugz9idfwc43ua7g==</latexit> Masking and Shadowing Many options; Smith shadowing-masking follows from D long story, it is an integral related to D that often doesn t have a closed form solution generally it is assumed that masking and shadowing are statistically independent for Beckmann, recommend using this rational approximation due to Bruce Walter: G(! i,! r, h) =G 1 (! i, h)g 1 (! r, h) ( v h G 1 (v, h) = + 3.535a +2.181a 2 1+2.276a +2.577a, if a<1.6 2 v n 1 otherwise 2018 Steve Marschner 41
Microfacet BRDF Model f r (n, l, v) = F (l, h)d(h)g(l, v, h) 4 n l n v reasons for cosine terms in denominator if one is there they clearly both have to be there (by reciprocity) 2018 Steve Marschner 42
<latexit sha1_base64="5oqu2hdzhdf1gnuf1k1kz2ogcj4=">aaaczhicbvbdb9mwfl0nx6owrwpicqlzveidnjq0q0r5qjvgbaq9dimwsu2jhodms2y7wxaivlf/dr+gv3jgf/dkt8bjb+lrsrapz7nx1/ckhedgbshxjnft+o2btzzud+/c3dza7u3ce2fyujmmws5yfzzqg4irdc23as8kjvqmak+ty5enflqhnjxxb+2ywlmk54pnnfhrqlh3ebwb8pxksr5eldonuswardojktsztvkdsboyba2ripbm1qxsrwr9frwir7txrx8mgzbiv2b0bfqh36gnk3insxwlosslkssenwy2cgq7nwn8ooy11zyzgatuvboskluk5zhzufgjzl63867iy8ekjmu1w8qslv29oqbsmkvmxkak9sl8rtxk/7rzabppvoaqkc0qtm6ulylyndtmkzrrzfyshabmc/dxwi6om8k6i7trw1j7oxe332jph/neu730ls5k5npfrjmi7/pqvnhsuafcnk2dk/f4ojkga3aw+gmmvxwmx8nnw+dnph/0yu0kbmadeaqdgmftoijxcaihmpgin+azfol88za9xe/+otxrxnxswh/hpfwbi5i46a==</latexit> <latexit sha1_base64="5oqu2hdzhdf1gnuf1k1kz2ogcj4=">aaaczhicbvbdb9mwfl0nx6owrwpicqlzveidnjq0q0r5qjvgbaq9dimwsu2jhodms2y7wxaivlf/dr+gv3jgf/dkt8bjb+lrsrapz7nx1/ckhedgbshxjnft+o2btzzud+/c3dza7u3ce2fyujmmws5yfzzqg4irdc23as8kjvqmak+ty5enflqhnjxxb+2ywlmk54pnnfhrqlh3ebwb8pxksr5eldonuswardojktsztvkdsboyba2ripbm1qxsrwr9frwir7txrx8mgzbiv2b0bfqh36gnk3insxwlosslkssenwy2cgq7nwn8ooy11zyzgatuvboskluk5zhzufgjzl63867iy8ekjmu1w8qslv29oqbsmkvmxkak9sl8rtxk/7rzabppvoaqkc0qtm6ulylyndtmkzrrzfyshabmc/dxwi6om8k6i7trw1j7oxe332jph/neu730ls5k5npfrjmi7/pqvnhsuafcnk2dk/f4ojkga3aw+gmmvxwmx8nnw+dnph/0yu0kbmadeaqdgmftoijxcaihmpgin+azfol88za9xe/+otxrxnxswh/hpfwbi5i46a==</latexit> <latexit sha1_base64="5oqu2hdzhdf1gnuf1k1kz2ogcj4=">aaaczhicbvbdb9mwfl0nx6owrwpicqlzveidnjq0q0r5qjvgbaq9dimwsu2jhodms2y7wxaivlf/dr+gv3jgf/dkt8bjb+lrsrapz7nx1/ckhedgbshxjnft+o2btzzud+/c3dza7u3ce2fyujmmws5yfzzqg4irdc23as8kjvqmak+ty5enflqhnjxxb+2ywlmk54pnnfhrqlh3ebwb8pxksr5eldonuswardojktsztvkdsboyba2ripbm1qxsrwr9frwir7txrx8mgzbiv2b0bfqh36gnk3insxwlosslkssenwy2cgq7nwn8ooy11zyzgatuvboskluk5zhzufgjzl63867iy8ekjmu1w8qslv29oqbsmkvmxkak9sl8rtxk/7rzabppvoaqkc0qtm6ulylyndtmkzrrzfyshabmc/dxwi6om8k6i7trw1j7oxe332jph/neu730ls5k5npfrjmi7/pqvnhsuafcnk2dk/f4ojkga3aw+gmmvxwmx8nnw+dnph/0yu0kbmadeaqdgmftoijxcaihmpgin+azfol88za9xe/+otxrxnxswh/hpfwbi5i46a==</latexit> <latexit sha1_base64="5oqu2hdzhdf1gnuf1k1kz2ogcj4=">aaaczhicbvbdb9mwfl0nx6owrwpicqlzveidnjq0q0r5qjvgbaq9dimwsu2jhodms2y7wxaivlf/dr+gv3jgf/dkt8bjb+lrsrapz7nx1/ckhedgbshxjnft+o2btzzud+/c3dza7u3ce2fyujmmws5yfzzqg4irdc23as8kjvqmak+ty5enflqhnjxxb+2ywlmk54pnnfhrqlh3ebwb8pxksr5eldonuswardojktsztvkdsboyba2ripbm1qxsrwr9frwir7txrx8mgzbiv2b0bfqh36gnk3insxwlosslkssenwy2cgq7nwn8ooy11zyzgatuvboskluk5zhzufgjzl63867iy8ekjmu1w8qslv29oqbsmkvmxkak9sl8rtxk/7rzabppvoaqkc0qtm6ulylyndtmkzrrzfyshabmc/dxwi6om8k6i7trw1j7oxe332jph/neu730ls5k5npfrjmi7/pqvnhsuafcnk2dk/f4ojkga3aw+gmmvxwmx8nnw+dnph/0yu0kbmadeaqdgmftoijxcaihmpgin+azfol88za9xe/+otxrxnxswh/hpfwbi5i46a==</latexit> <latexit sha1_base64="5oqu2hdzhdf1gnuf1k1kz2ogcj4=">aaaczhicbvbdb9mwfl0nx6owrwpicqlzveidnjq0q0r5qjvgbaq9dimwsu2jhodms2y7wxaivlf/dr+gv3jgf/dkt8bjb+lrsrapz7nx1/ckhedgbshxjnft+o2btzzud+/c3dza7u3ce2fyujmmws5yfzzqg4irdc23as8kjvqmak+ty5enflqhnjxxb+2ywlmk54pnnfhrqlh3ebwb8pxksr5eldonuswardojktsztvkdsboyba2ripbm1qxsrwr9frwir7txrx8mgzbiv2b0bfqh36gnk3insxwlosslkssenwy2cgq7nwn8ooy11zyzgatuvboskluk5zhzufgjzl63867iy8ekjmu1w8qslv29oqbsmkvmxkak9sl8rtxk/7rzabppvoaqkc0qtm6ulylyndtmkzrrzfyshabmc/dxwi6om8k6i7trw1j7oxe332jph/neu730ls5k5npfrjmi7/pqvnhsuafcnk2dk/f4ojkga3aw+gmmvxwmx8nnw+dnph/0yu0kbmadeaqdgmftoijxcaihmpgin+azfol88za9xe/+otxrxnxswh/hpfwbi5i46a==</latexit> Specular shading (Microfacet) Close to mirror half vector near normal reflectance is high when n h is near 1.0 (α is near 0) h = bisector(v, l) l n h v = v + l v + l L s = f r (n, l, v) irradiance from source max(0, n l) r 2 I specularly reflected radiance specular BRDF value 2018 Steve Marschner 43
Ray tracer architecture 101 You want a class called Ray point and direction; evaluate(t) possible: tmin, tmax Some things can be intersected with rays individual surfaces groups of surfaces (acceleration goes here) the whole scene make these all subclasses of Surface limit the range of valid t values (e.g. shadow rays) Once you have the visible intersection, compute the color may want to separate shading code from geometry separate class: Material (each Surface holds a reference to one) its job is to compute the color 2018 Steve Marschner 44
Architectural practicalities Return values surface intersection tends to want to return multiple values t, surface or shader, normal vector, maybe surface point in many programming languages (e.g. Java) this is a pain typical solution: an intersection record a class with fields for all these things keep track of the intersection record for the closest intersection be careful of accidental aliasing (which is very easy if you re new to Java) Efficiency in Java the (or, a) key to being fast is to minimize creation of objects what objects are created for every ray? try to find a place for them where you can reuse them. Shadow rays can be cheaper (any intersection will do, don t need closest) but: First Get it Right, Then Make it Fast 2018 Steve Marschner 45