这些天,我正在制作一些着色器,如Phong,Gourard,甚至是GLSL中的Toon Shader。
我有一个奇怪的问题,我想制作一个使用2个摄像头的立体着色器,左摄像头采用红色光,右摄像头采用青色光可以通过在一个摄像头中组合使用来实现,所以它可以是立体的着色器。我想。
我认为错了吗?我想在由2D基元组成的3D对象中实现。
答案 0 :(得分:5)
您可能需要渲染场景两次,一次是左眼,一次是右眼。然后你可以把2混合在一起。
一种方法是将每只眼睛渲染成不同的纹理背景FBO,然后使用自定义着色器或甚至使用添加剂混合将这两种纹理合并为1,如果您可以使用正确的颜色渲染每只眼睛用。 (如果左眼真的只是红色通道而右边只有绿色和蓝色通道,我认为添加剂混合应该做正确的事。)
答案 1 :(得分:0)
如果你想创建一个立体影像,使用OpenGL灯为场景着色是愚蠢的。 使用另一个答案中描述的方法,即使用FBO将场景渲染为纹理,然后将结果组合在着色器中,或者通过简单地在glBlendFunc(GL_ONE,GL_ONE)模式下使用调制颜色在两个重叠的四边形上绘制它们。或者,如果是红色青色浮雕,您可以使用glColorMask选择要写入的颜色通道。