Spelling suggestions: "subject:"efterkalkyl"" "subject:"energikalkyl""
1 |
Real-Time Ray Tracing With Polarization ParametersEnfeldt, Viktor January 2020 (has links)
Background. The real-time renderers used in video games and similar graphics applications do not model the polarization aspect of light. Polarization parameters have previously been incorporated in some offline ray-traced renderers to simulate polarizing filters and various optical effects. As ray tracing is becoming more and more prevalent in real-time renderers, these polarization techniques could potentially be used to simulate polarization and its optical effects in real-time applications as well. Objectives. This thesis aims to determine if an existing polarization technique from offline renderers is, from a performance standpoint, viable to use in real-time ray-traced applications to simulate polarizing filters, or if further optimizations and simplifications would be needed. Methods. Three ray-traced renderers were implemented using the DirectX RayTracing API: one polarization-less Baseline version; one Polarization version using an existing polarization technique; and one optimized Hybrid version, which is a combination of the other two. Their performance was measured and compared in terms of frametimes and VRAM usage in three different scenes and with five different ray counts. Results. The Polarization renderer is ca. 30% slower than the Baseline in the two more complex scenes, and the Hybrid version is around 5–15% slower than the Baseline in all tested scenes. The VRAM usage of the Polarization version was higher than the Baseline one in the tests with higher ray counts, but only by negligible amounts. Conclusions. The Hybrid version has the potential to be used in real-time applications where high frame rates are important, but not paramount (such as the commonly featured photo modes in video games). The performance impact of the Polarization renderer's implementation is greater, but it could potentially be used as well. Due to limitations in the measurement process and the scale of the test application, no conclusions could be made about the implementations' impact on VRAM usage. / Bakgrund. Realtidsrenderarna som används i videospel och liknande grafikapplikationer simulerar inte ljusets polarisering. Polariseringsinformation har tidigare implementerats i vissa stålföljningsbaserade (ray-traced) offline-renderare för att simulera polariseringsfilter och diverse optiska effekter. Eftersom strålföljning har blivit allt vanligare i realtidsrenderare så kan dessa polariseringstekniker potentiellt också användas för att simulera polarisering och dess optiska effekter i sådana program. Syfte. Syftet med denna rapport är att avgöra om en befintlig polariseringsteknik från offline-renderare, från en prestandasynpunkt, är lämplig att använda för att simulera polariseringsfilter i stålföljningsbaserade realtidsapplikationer, eller om ytterligare optimeringar och förenklingar behövs. Metod. DirectX RayTracing API:et har använts för att implementera tre stålföljningsbaserade realtidsrenderare: en polarisationsfri Baseline-version; en Polarization-version med en befintlig polariseringsteknik; och en optimerad Hybrid-version, som är en kombination av de andra två. Deras prestanda mättes och jämfördes med avseende på frametime och VRAM-användning i tre olika scener och med fem olika antal strålar per pixel. Resultat. Polarization-versionen är ca 30% långsammare än Baseline-versionen i de två mest komplexa scenerna, och Hybrid-versionen är ca 5–15% långsammare än Baseline-versionen i alla testade scener. Polarization-versionens VRAM-användningen var högre än Baseline-versions i testerna med högre strålantal, men endast med försumbara mängder. Slutsatser. Hybrid-versionen har potential att användas i realtidsapplikationer där höga bildhastigheter är viktiga, men inte absolut nödvändiga (exempelvis de vanligt förekommande fotolägena i videospel). Polarization-versionens implementation hade sämre prestanda, men även den skulle potentiellt kunna användas i sådana applikationer. På grund av mätprocessens begränsningar och testapplikationens omfattning så kunde inga slutsatser dras gällande implementeringarnas påverkan på VRAM-användning.
|
Page generated in 0.0515 seconds