GPU Gems1 8 衍射的模擬

2021-09-17 05:33:50 字數 954 閱讀 4767

小尺度的表面細節引起反射波彼此干擾,這個現象就是衍射。首先,計算機繪圖的大多數表面反射模型都忽略自然光的波動效果。當表面的細節比光的波長(約1um)大許多時,不存在問題。但對於小尺寸的細節,例如乙個光碟的表面,波效應就不能忽略了。所以,對於小尺度的表面細節引起反射波彼此干擾的現象,即為衍射。

衍射使這些表面的反射光呈現五彩繽紛的圖案,由光碟的精細反射可以看到這一現象。

衍射的實現,可以在shader的頂點著色器上,也可以在片元著色器上,且實現可以在任何網格上進行,只需提供乙個「切線向量」,和每頂點的法線及位置。而切線向量提供表面上窄條帶的區域性方向。對於乙個光碟,其為軌道的方向,如下圖:

基於波干涉的理論基礎,我們假設所有發自表面而到達接收點的波是彼此平行的,若要從不同條帶發出,最後到達接收點的波相位相同,它們從光源到接收點的光程差只能是波長的整數倍。

對應給定衍射波長的顏色,可以使用簡單近似的彩虹貼圖。貼圖從紫到紅排列,而且提供彩虹的大部分顏色,用三個理想凹凸函式(峰值分別在藍、綠和紅的區域)簡單混合而成。

而最終的衍射顏色是彩色的衍射圖案和各項異性高光的簡單相加的和。

衍射模擬(simulating diffraction)

各項異性(anisotropy)

GPU Gems1 23 景深技術綜述

本章主要介紹如何使用gpu建立實時的景深 depth of field 效果。參考淺墨總結文章的鏈結 物體在距離鏡頭的乙個範圍之內能夠清晰成像 經過聚焦 在那個範圍之外 或近或遠 則成像模糊,這種效果就是景深。在相機業和電影業中,景深經常用來指示對場景的注意範圍,並且提供場景深度的感覺。在本章中,把...

GPU Gems1 9 有效的陰影體渲染

這章全面講述了用於實時陰影渲染中常見兩種流派之一的陰影體 shadow volumes 技術,又稱模板陰影 stencil shadows 技術,重點是得到正確的角度的情形,減少幾何圖形和填充率的消耗。陰影體渲染建立乙個陰影體積,並僅在其外部的物體上處理照明,我們將使用模板緩衝區作為演算法的關鍵元件...

GPU Gems1 24 高質量的過濾

在一些應用中,高質量的過濾是至關重要的,可以用畫素shader 執行任何過濾。gpu著色程式不用於cpu的主要之處在於 一般來說,cpu數學操作比紋理訪問更快,而在gpu中恰恰相反。影象過濾的目的很簡單 對於給你的輸入影象a,我們想要建立新的影象b。把源影象a變換到目標影象b的操作就是影象濾波。最一...