1

这些天来,我正在制作一些着色器,例如 Phong、Gourard,甚至是 GLSL 中的 Toon Shader。

我有一个奇怪的问题,我想制作一个使用 2 个摄像头的立体着色器,左摄像头取红光,右摄像头取青色光,可以通过将它们组合在一个摄像头中来实现,所以它可以是立体着色器。我认为。

我想错还是错?我想在由 2D 基元组成的 3D 对象中实现。

4

2 回答 2

5

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

一种方法是将每只眼睛渲染成不同的纹理支持的 FBO,然后使用自定义着色器甚至使用加法混合将这 2 个纹理组合成 1 个,前提是您可以使用正确的颜色开始渲染每只眼睛。(如果左眼真的只有红色通道,而右眼只有绿色和蓝色通道,我认为加法混合应该做正确的事情。)

于 2013-05-07T04:41:03.723 回答
0

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

于 2013-05-07T09:39:35.783 回答