ShaderToy
因为前两周一直在寻找处理VR反畸变的方法,发现了这个工具,它是一个调试渲染很棒的工具,直接在线输入代码,即时显示你的渲染效果,一直没来得及记录下来,畸变已经处理差不多了,现在来把这个工具的处理畸变的方法记录下来.
ShaderToy是一个计算机图形方面的在线的学习,交流平台.在这个平台上使用GLSL语言(语法跟C很像,如果你学习过C语言,操作它基本没什么问题)就能画出很漂亮的渲染效果.你可以在官网上看到人分享的链接(包含源码).
这里分享两个ShaderToy上调试可能需要的链接:
- GLSL4.5的语法规范
- ShaderToy使用教程(我最初也是看这个教程,来学习的)
VR畸变算法
至于为什么会产生畸变?畸变是什么?如果修正畸变?这些问题查看之前发的几篇关于畸变的文章吧.
这里直接上反畸变主要算法:
//这里假设畸变中心的坐标是(0.5,0.5).
//计算的公式来自这个视频:https://www.youtube.com/watch?v=B7qrgrrHry0&feature=youtu.be和Wikipedia的畸变校正算法:https://en.wikipedia.org/wiki/Distortion_(optics)#Software_correction
rr = sqrt((fU - 0.5f)*(fU - 0.5f) + (fV - 0.5f)<