ShaderSimpler(6) : Parallax Mapping
来源:互联网 发布:黑色沙漠女巫捏脸数据 编辑:程序博客网 时间:2024/04/28 04:12
源码下载地址:http://yanonsoftware.googlepages.com/ShaderSimpler.zip
Parallax map通过简单的计算可以大幅提高per-pixel光照的效果。Parallax map的想法基于一个简单的事实,那就是当我们用一个多边形去表现一个凹凸不平的表面的时候,事实上随着视线的变化,看到的实际的texel并不是顶点uv坐标差值出来的那个结果,而是有一定的偏移。而这个偏移可以通过是个高度图来计算。
在本例中,经过简化,最后单个象素uv偏移量的公式为:offset = <viewDir.x, viewDir.y>*(height*SCALE+BIAS)。其中的height就是高度图在这个uv的高度值,然后根据实际需要进行缩放和偏移。SCALE和BIAS可以根据所要渲染的物体的单位来估计,例如要渲染一个1平方米的砖墙,那么我们估计每个砖的起伏在几厘米。在本例中使用这个offset将uv进行偏移之后,再去采样bump map和color map。
程序运行时按字母键“P”可以打开、关闭parallax map,用来比较效果。:)
看看这里:http://yanonsoftware.googlepages.com/parallaxMap.jpg
参考
Terry Welsh, Parallax Mapping, ShaderX3 p89
- ShaderSimpler(6) : Parallax Mapping
- Parallax Mapping
- Parallax Mapping
- Parallax Mapping
- ShaderSimpler(5) : Bump Mapping(Normal mapping)
- bump mapping & parallax mapping (update)
- 初探Parallax Mapping效果。
- Parallax Mapping效果
- Parallax Mapping Shader
- 视差映射(parallax mapping)
- Steep Parallax Mapping
- Steep Parallax Mapping (2)
- Parallax Occlusion Mapping
- Parallax Mapping效果
- Parallax Occlusion Mapping
- Parallax Occlusion Mapping
- Cg parallax mapping
- Bump / Normal / Displacement / Parallax Mapping
- [转载]CAsyncSocket, CSocket内幕及其用法
- Asp.net常用函数
- ShaderSimpler(5) : Bump Mapping(Normal mapping)
- ASP.NET中如何弹出对话框
- “System.Configuration.ConfigurationSettings.AppSettings”已过时:“
- ShaderSimpler(6) : Parallax Mapping
- 用VB改变屏幕的分辨率和刷新频率
- C#链接语句
- UTF-8编码研究
- db2性能优化
- VB6.0初学者的10个编程小技巧
- ASP操作Excel技术总结
- VisualBasic实现在程序中开启网页
- 阳历转阴历