2013-05-07 43 views
1

这几天,我在GLSL中做了一些着色器,例如Phong,Gourard,甚至是Toon Shader。什么是立体着色器?

我有一个好奇的问题,我想做一个使用2个摄像头的立体着色器,左侧摄像头拍摄红灯,右侧摄像头拍摄青色灯光可以通过在一个摄像头中使用它们来实现,因此它可以是一个立体着色器。我认为。

我觉得不对?我想在由2D图元组成的3D对象中实现。

回答

5

您可能需要渲染场景两次,一次为左眼,一次为右眼。然后你可以将2混合在一起。

一种方法是将每只眼睛渲染到不同的由纹理支持的FBO,然后将这两种纹理合并到1中,或者使用自定义着色器,或者甚至使用叠加混合,如果您可以使用正确的颜色渲染每只眼睛首先。 (如果左眼真的只有红色通道,右边只有绿色和蓝色通道,我认为添加剂混合应该做正确的事情。)

0

如果您想要创建anaglyph imagage,使用OpenGL灯光给场面染色是愚蠢的。 可以使用另一个答案中描述的方法,即使用FBO将场景渲染为纹理,然后将结果组合到着色器中,或者通过在具有调制颜色的glBlendFunc(GL_ONE,GL_ONE)模式下在两个叠加的四边形上绘制它们。或者,如果使用红青色浮雕,则可以使用glColorMask来选择要写入的颜色通道。