Effect OpenGL ES 1.1-水族馆';真实感渲染

Effect OpenGL ES 1.1-水族馆';真实感渲染,effect,blending,opengl-es-1.1,Effect,Blending,Opengl Es 1.1,我有一些网格,试图像一个水族馆。我可以移动连接有灯光的视点或相机。只有前面的玻璃是完全透明的,它被认为是屏幕玻璃 我曾尝试使用blender函数glBlendFunc(GL_SRC_ALPHA,GL_ONE_减去_SRC_ALPHA)和一些漫反射材质的组合,但它看起来总是像CAD绘图,尽管一些真实的纹理可以帮助改善外观,但它看起来并不正确 我可以通过更改glBlendFunc和glMaterialfv的所有可能组合来强制实现所需的结果,但这可能需要一些时间。所以我在这里发了一个问题,看看是否有人

我有一些网格,试图像一个水族馆。我可以移动连接有灯光的视点或相机。只有前面的玻璃是完全透明的,它被认为是屏幕玻璃

我曾尝试使用blender函数
glBlendFunc(GL_SRC_ALPHA,GL_ONE_减去_SRC_ALPHA)
和一些漫反射材质的组合,但它看起来总是像CAD绘图,尽管一些真实的纹理可以帮助改善外观,但它看起来并不正确


我可以通过更改
glBlendFunc
glMaterialfv
的所有可能组合来强制实现所需的结果,但这可能需要一些时间。所以我在这里发了一个问题,看看是否有人已经完成了这个视觉效果,任何帮助或评论都非常感谢。

看起来它缺少任何类型的反射,水和玻璃都会表现出来。水面上的镜面反射项可能是正常的,否则可以添加混合环境贴图。实际上,我会稍微降低水的不透明度,使边界不那么明显,并让镜面反射显示定义

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

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

焦散。这些是你在游泳池底部看到的明亮的波浪线,是由表面运动使光线向不同方向散射而成的。您可以使用alpha纹理来伪造它们,并使顶点左右摆动


折射。您可以将水下场景渲染到辅助缓冲区,然后将其用作纹理,从而允许您稍微扭曲图像/设置图像动画。鱼缸不会表现出太多的这种情况,只有从顶面看时,你才应该看到它摆动,但这可能会很有趣。

如果你能发布一张图片,说明渲染效果如何,以及你不喜欢/正在尝试实现的效果,这可能会有所帮助。(仅仅摆弄混合模式可能还不够)@JasonD添加了一些屏幕截图,看起来有些逼真,但仍然可以改进