如何在OpenGL ES / OpenGL中创建透明玻璃杯?

时间:2010-04-19 17:14:51

标签: opengl opengl-es

有没有办法用OpenGL ES / OpenGl制作玻璃杯?如果有可能,我可以阅读什么才能开始创作?需要获得最真实的玻璃视图,例如 -

请参阅glass cup image

为简单起见,没有句柄。

也许,任何人都有来源的例子吗?

感谢。

3 个答案:

答案 0 :(得分:3)

获得看起来非常接近您链接的图像的东西会非常复杂(手柄不是硬件)。如果这是一个学习项目,我建议开始做小。粗略的近似将是一个更好的起点。

您可以在OpenGL ES中轻松制作半透明对象。您想要的OpenGL功能是Alpha Blending。这不会让你非常靠近你的玻璃杯。 http://www.opengl.org/resources/faq/technical/transparency.htm

复制此对象的基本级别是使用手绘的浅灰色纹理,看起来有点像内部折射,并将其绘制在具有部分透明度的面向相机的精灵上。然后渲染一个具有高透明度的常规杯形模型,只有少量的环境光和漫反射光以及许多镜面光照,使其看起来有光泽。

圆形玻璃物体的多次反射折射效果要困难得多。特别是如果你希望它在杯子后面的空白背景之外的东西看起来令人信服。在光线跟踪器中进行相当简单,但在OpenGL等光栅化器中则不行。查找焦散。有一些方法来估计这种效果,但它们不是初学者项目。 根据这一点,如果你认真对待GLUT,就会有一些例子。 http://www.opengl.org/resources/faq/technical/lights.htm

答案 1 :(得分:3)

答案 2 :(得分:0)

使用可编程着色器可以创建漂亮的玻璃效果,例如反射与折射相结合。 OpenGL ES 2.0具有可编程着色器,但OpenGL ES 1.X没有。

使用OpenGL ES 2.0的玻璃的一个很好的例子是AMD RenderMonkey(免费)。 Download here,并查看玻璃示例。