OpenGL ES 1.1 -水族馆逼真的渲染



我有一些网格,试图像一个水族馆。我可以移动带有光源的视角或相机。只有前面的玻璃是全透明的,应该是屏幕玻璃。

我试过使用混合功能glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)与一些漫射材料的组合,但它总是看起来像一个CAD绘图,尽管一些现实的纹理可以帮助改善外观,它只是看起来不对。

我可以通过改变glBlendFuncglMaterialfv的所有可能的组合来强制执行所需的结果,但这可能需要一段时间。所以我把这个问题贴在这里,看看是否有人已经完成了这个视觉效果,任何帮助或评论也很感激。

看起来它没有任何水和玻璃都会有的反射。在水面上添加一个镜面可能是可以的,否则你可以添加一个环境贴图。我实际上会降低一点水的不透明度,使边界不那么明显,并让镜面反射显示定义。

玻璃本身也应该有某种环境反射,如果你是在黑房间以外的地方渲染它。同样,一个简单而微妙的环境地图可能就足够了。

其他你可能想要尝试的东西(记住你在ES1.1上没有着色器):

腐蚀剂。这些是你在游泳池底部看到的明亮的波浪线,是由于水面运动导致光线向不同方向散射造成的。你可以用alpha纹理和周围的顶点来伪造它们。

折射。你可以将水下场景渲染到二级缓冲区,然后使用它作为纹理,允许你扭曲/动画图像。一个鱼缸不会表现出太多的这种情况,你应该只看到它在顶部表面晃动,但也许这会很有趣。

相关内容

  • 没有找到相关文章

最新更新