《Unity Shader/AR》反畸變,解決shader中沒法傳入大量數組的問題

  1. 事情原由是這樣的。 在製做AR的底層SDK時,須要跟硬件適配反畸變。數組

   因爲曲面光學模型,很差用簡單的公式描述畸變。效率

   因此決定把uv畸變來實現。硬件

2. 爲了效率最高,決定直接寫入屏幕緩衝。數據

3.在攝像機後效裏,沒法傳入大量數組,因此將數據轉爲texture,而後shader中對它採樣,再分解爲能夠用數據。底層

4. 要注意,屏幕的頂點只有5個,上下左右中。 因此不要在頂點shader計算。模型

5. 咱們傳入的是uv數據,因此在像素階段的uv改變爲真正的UV。 因此要傳入足夠的uv數量,由於有畸變,不能本身計算插值。像素

  因此,若是目標是1920X1080,則要傳入這麼大的texture,而後採樣的uv能夠跟屏幕像素對應。

相關文章
相關標籤/搜索