最近一直在做阴影算法的研究,其实阴影算法目前主流就三四种,有shadow volume还有就是shadow mapping,由于shadow mapping比较简单容易实现,但是锯齿比较严重,之前我是在opengl 下的实现,但这次我是在opengl es 2.0下实现shadow mapping阴影算法,
其实算法无外乎两个步骤,
首先将摄像机移动到光源处绘制场景,得到深度图;
其次就是移动到视口位置绘制场景,并将每个像素对应的坐标转换到光源坐标比较深度,如果深度图中的深度大时,说明处于阴影;
网上关于shadow mapping的介绍已经很多很多,但是在es下的介绍却是很少,我就找到一个java版的shadow mapping,通过这几天的研究,大概也调试出来了,但是目前的效果就是锯齿比较严重,可能还有在继续优化,也想各位大侠指教。。。
效果图如下:
效果大概就是这样子。。
参考网站:
http://blog.shayanjaved.com/2011/05/20/android-opengl-es-2-0-shadow-mapping/