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

时间:2012-12-21 15:12:56

标签: effect blending opengl-es-1.1 material

我有一些试图像水族馆的网状物。我可以移动附有灯光的视角或相机。只有前玻璃是完全透明的,它可以作为屏幕玻璃。

我尝试将混合器函数glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)与漫反射材质的某些组合一起使用,但它总是看起来像CAD绘图,尽管事实上一些逼真的纹理可以帮助改善外观,但它不是看起来正确。

我可以通过更改glBlendFuncglMaterialfv的所有可能组合来强制执行所需的结果,但这可能需要一段时间。所以我在这里发布了一个问题,看看有人是否已经完成了这种视觉效果,任何帮助或评论也会受到赞赏。

1 个答案:

答案 0 :(得分:1)

看起来它没有任何反射,水和玻璃都会表现出来。水面上的镜面术语可能没问题,或者您无法添加环境贴图。我实际上调低了水的不透明度,使边界不那么明显,让镜面反射显示出定义。

玻璃本身也应该有某种环境反射,如果你用黑色房间以外的东西渲染它。再一个简单而巧妙的环境地图可能就足够了。

您可能想要尝试的其他事项(请记住您在ES1.1上没有着色器):

焦散。那些是你在游泳池底部看到的明亮的波浪线,由于光线被表面的运动分散在不同的方向上。你可以伪造那些带有alpha纹理并绕过顶点的那些。

折射。您可以将水下场景渲染到辅助缓冲区,然后将其用作纹理,允许您稍微扭曲/动画图像。一个鱼缸并没有表现出太多的东西,如果从顶部表面看,你应该只看到它摇摆不定,但也许它会很有趣。