OpenGL光散射:FBO和帧缓冲区混合
我正在尝试使用OpenGL创建光散射效果。 我正在关注这一点 在某种程度上,它说: 切换到正交投影并将FBO与帧缓冲区混合,激活着色器以生成“上帝的光线”效果 我不明白“混合FBO和帧缓冲区”是什么意思。我寻找这个“混合”,我注意到这是一个OpenGL管道步骤 我想我应该使用函数glEnablei(GL_BLEND,fbo),但我不知道应该在哪里调用它 为了绘制网格(场景有一个网格和一个光源),我使用glDrawArrays(GLU三角形,0,n个顶点)OpenGL光散射:FBO和帧缓冲区混合,opengl,framebuffer,fbo,Opengl,Framebuffer,Fbo,我正在尝试使用OpenGL创建光散射效果。 我正在关注这一点 在某种程度上,它说: 切换到正交投影并将FBO与帧缓冲区混合,激活着色器以生成“上帝的光线”效果 我不明白“混合FBO和帧缓冲区”是什么意思。我寻找这个“混合”,我注意到这是一个OpenGL管道步骤 我想我应该使用函数glEnablei(GL_BLEND,fbo),但我不知道应该在哪里调用它 为了绘制网格(场景有一个网格和一个光源),我使用glDrawArrays(GLU三角形,0,n个顶点) 有人能帮帮我吗?啊,你引用的说明写得太混
有人能帮帮我吗?啊,你引用的说明写得太混乱了。它要求您做的是使用渲染上帝光线的纹理(使用FBO)并在顶部绘制主(非FBO)帧缓冲区中的纹理,使用单个全视口纹理四元体。“混合”的说明要求您启用混合(此后绘制的所有内容将与之前步骤中绘制的内容混合,包括其他混合内容),并选择适当的混合功能;(GL_-ONE,GL_-ONE)将是照明效果材料的明显例子。啊,你引用的说明写得不必要的混乱。它要求您做的是使用渲染上帝光线的纹理(使用FBO)并在顶部绘制主(非FBO)帧缓冲区中的纹理,使用单个全视口纹理四元体。“混合”的说明要求您启用混合(此后绘制的所有内容将与之前步骤中绘制的内容混合,包括其他混合内容),并选择适当的混合功能;(GL_-ONE,GL_-ONE)将是照明效果材料的明显例子。啊,你引用的说明写得不必要的混乱。它要求您做的是使用渲染上帝光线的纹理(使用FBO)并在顶部绘制主(非FBO)帧缓冲区中的纹理,使用单个全视口纹理四元体。“混合”的说明要求您启用混合(此后绘制的所有内容将与之前步骤中绘制的内容混合,包括其他混合内容),并选择适当的混合功能;(GL_-ONE,GL_-ONE)将是照明效果材料的明显例子。啊,你引用的说明写得不必要的混乱。它要求您做的是使用渲染上帝光线的纹理(使用FBO)并在顶部绘制主(非FBO)帧缓冲区中的纹理,使用单个全视口纹理四元体。“混合”的说明要求您启用混合(此后绘制的所有内容将与之前步骤中绘制的内容混合,包括其他混合内容),并选择适当的混合功能;(GL_ONE,GL_ONE)将是照明效果材料的明显选择。我认为你不想要
glEnablei(GL_BLEND,fbo)
,这是胡说八道,除非fbo
是单绘制缓冲区(fbo附件)的索引。通常,fbo
将是fbo的名称;)这是基本的多次渲染,通常的过程是绘制纹理附件,然后在第二次渲染时,使用混合设置在视口上拉伸该纹理。老实说,我也不理解“将FBO与帧缓冲区混合”的含义=P这里感兴趣的是附加到FBO的单个图像;FBO(例如深度)混合的某些部分对您来说毫无意义。我不认为您想要glEnablei(GL_BLEND,FBO)
,这是胡说八道,除非FBO
是单个绘图缓冲区(FBO附件)的索引。通常,fbo
将是fbo的名称;)这是基本的多次渲染,通常的过程是绘制纹理附件,然后在第二次渲染时,使用混合设置在视口上拉伸该纹理。老实说,我也不理解“将FBO与帧缓冲区混合”的含义=P这里感兴趣的是附加到FBO的单个图像;FBO(例如深度)混合的某些部分对您来说毫无意义。我不认为您想要glEnablei(GL_BLEND,FBO)
,这是胡说八道,除非FBO
是单个绘图缓冲区(FBO附件)的索引。通常,fbo
将是fbo的名称;)这是基本的多次渲染,通常的过程是绘制纹理附件,然后在第二次渲染时,使用混合设置在视口上拉伸该纹理。老实说,我也不理解“将FBO与帧缓冲区混合”的含义=P这里感兴趣的是附加到FBO的单个图像;FBO(例如深度)混合的某些部分对您来说毫无意义。我不认为您想要glEnablei(GL_BLEND,FBO)
,这是胡说八道,除非FBO
是单个绘图缓冲区(FBO附件)的索引。通常,fbo
将是fbo的名称;)这是基本的多次渲染,通常的过程是绘制纹理附件,然后在第二次渲染时,使用混合设置在视口上拉伸该纹理。老实说,我也不理解“将FBO与帧缓冲区混合”的含义=P这里感兴趣的是附加到FBO的单个图像;FBO(例如深度)混合的某些部分对我来说毫无意义。对不起,我觉得在我的工作中有点noob XD。我有两个着色器和两个着色器:一个用于正常绘制网格的着色器(PRE),另一个用于创建上帝光线效果的片段着色器(POST)。因此,我应该做的是:1)在FBO中绘制黑色网格,使用预着色器2)在FBO中绘制上帝射线,混合,使用后着色器,3)交换到正常帧缓冲区4)正常绘制网格5)绘制FBO,我觉得在我的工作中有点不对劲