<分区>
我已经找了一段时间了,但我还没有找到合适的答案。 我想像这样使用 OpenGL-ES 2.0 在 android 上创建 2D 动态照明效果 视频:
http://www.youtube.com/watch?v=W53rTHXM6yo
但我真的不知道从哪里开始。
如果有人能给我一点帮助让我开始,我将不胜感激。
提前致谢
<分区>
我已经找了一段时间了,但我还没有找到合适的答案。 我想像这样使用 OpenGL-ES 2.0 在 android 上创建 2D 动态照明效果 视频:
http://www.youtube.com/watch?v=W53rTHXM6yo
但我真的不知道从哪里开始。
如果有人能给我一点帮助让我开始,我将不胜感激。
提前致谢
最佳答案
我不确定视频作者是如何实现这种效果的。但简单地观看视频并阅读下面的评论,我认为可以达到如下效果:
首先考虑只有一个光源的情况。可以提前绘制径向渐变纹理。 (中心最亮,边界较暗,中间为灰色。您可以使用 Photoshop 绘制它。)以光源位置为中心渲染此类纹理。然后你需要生成一些三角形来渲染阴影。假设光源位于 A。给定任意多边形上的线段 BC,您需要将线 AB 延伸到足够远的点 D(至少超出屏幕)。还将 AC 延伸到 E 点。然后你有一个四边形 BCED(或两个三角形 BCD 和 CDE)。用黑色渲染这个四边形。对所有多边形的所有线段执行相同的操作。那就是影子。您将获得单个光源的效果。
对于多个光源,您可以将每个光源的效果渲染到一个帧缓冲对象 (FBO) 中。最终结果只是对 FBO 进行平均。 (实际上你可以只用一个FBO来累加每个光源的颜色值。在最后的pass中你只需要将它除以光源的数量)。
我认为这是实现 2D 光效的简单方法。
关于android - OpenGL-ES 2.0 (for Android), 如何创建二维动态光照效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9698736/