GPU Gems1 - 8 衍射的模拟
生活随笔
收集整理的這篇文章主要介紹了
GPU Gems1 - 8 衍射的模拟
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.什么是衍射
小尺度的表面細節引起反射波彼此干擾,這個現象就是衍射。首先,計算機繪圖的大多數表面反射模型都忽略自然光的波動效果。當表面的細節比光的波長(約1um)大許多時,不存在問題。但對于小尺寸的細節,例如一個光盤的表面,波效應就不能忽略了。所以,對于小尺度的表面細節引起反射波彼此干擾的現象,即為衍射。
衍射使這些表面的反射光呈現五彩繽紛的圖案,由光盤的精細反射可以看到這一現象。
衍射的實現,可以在Shader的頂點著色器上,也可以在片元著色器上,且實現可以在任何網格上進行,只需提供一個“切線向量”,和每頂點的法線及位置。而切線向量提供表面上窄條帶的局部方向。對于一個光盤,其為軌道的方向,如下圖:
?
?基于波干涉的理論基礎,我們假設所有發自表面而到達接收點的波是彼此平行的,若要從不同條帶發出,最后到達接收點的波相位相同,它們從光源到接收點的光程差只能是波長的整數倍。
?
對應給定衍射波長的顏色,可以使用簡單近似的彩虹貼圖。貼圖從紫到紅排列,而且提供彩虹的大部分顏色,用三個理想凹凸函數(峰值分別在藍、綠和紅的區域)簡單混合而成。
而最終的衍射顏色是彩色的衍射圖案和各項異性高光的簡單相加的和。
【關鍵詞提煉】
衍射模擬(Simulating Diffraction)
各項異性(Anisotropy)
總結
以上是生活随笔為你收集整理的GPU Gems1 - 8 衍射的模拟的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu下使用mutt和msmtp发
- 下一篇: GPU Gems1 - 9 有效的阴影体