《Unity Shader/AR》反畸变,解决shader中没法传入大量数组的问题

  1. 事情原由是这样的。 在制做AR的底层SDK时,须要跟硬件适配反畸变。数组

   因为曲面光学模型,很差用简单的公式描述畸变。效率

   因此决定把uv畸变来实现。硬件

2. 为了效率最高,决定直接写入屏幕缓冲。数据

3.在摄像机后效里,没法传入大量数组,因此将数据转为texture,而后shader中对它采样,再分解为能够用数据。底层

4. 要注意,屏幕的顶点只有5个,上下左右中。 因此不要在顶点shader计算。模型

5. 咱们传入的是uv数据,因此在像素阶段的uv改变为真正的UV。 因此要传入足够的uv数量,由于有畸变,不能本身计算插值。像素

  因此,若是目标是1920X1080,则要传入这么大的texture,而后采样的uv能够跟屏幕像素对应。

相关文章
相关标签/搜索