Menu
Incremental Instant Radiosity Implementation -- 羅應陞
Abstract
我在Unity遊戲引擎下實作Incremental instant radiosity,並透過Physics.Raycast來達到shooting shadow ray的功能來判斷VPL和primary light間是否受到遮擋,
由於受限於第三方Voronoi diagram solver的限制,僅能處理二維的坐標,所以只實做了spotlight的部分,另外再Visualize Voronoi diagram的部分,由於Unity並沒有提供方便的繪製簡單線條的工具,當初嘗試了Texture2D的方式透過setPixel填入對應的顏色,結果發現這樣導致FPS大幅下降,所以我改用以native OpenGL API來達到快速繪製且不降低FPS的效果。
Authors
Abstract
我在Unity遊戲引擎下實作Incremental instant radiosity,並透過Physics.Raycast來達到shooting shadow ray的功能來判斷VPL和primary light間是否受到遮擋,
由於受限於第三方Voronoi diagram solver的限制,僅能處理二維的坐標,所以只實做了spotlight的部分,另外再Visualize Voronoi diagram的部分,由於Unity並沒有提供方便的繪製簡單線條的工具,當初嘗試了Texture2D的方式透過setPixel填入對應的顏色,結果發現這樣導致FPS大幅下降,所以我改用以native OpenGL API來達到快速繪製且不降低FPS的效果。
Technical introduction
- 每個 frame 的更新流程:
- Delete invalid VPLs
- Reproject existing VPLs to a 2D domain according to the new light source position
- Delete more VPLs if the budget says so
- Create new VPLs
- Compute VPL intensities
- 計算voronoi cell的面積方式(polygon area + circle segment area)
- Support Indirect soft shadow
- Support dynamic scene
- Support multiple primary lights
Copyright © 2021 NTUST CSIE Computer Graphics Lab. All right reserved.