为GLSL vec4输出防止w乘法?

问题描述 投票:0回答:1

我正在第一个延迟着色实现中,我使用GL_RGBA32F内部格式制作了一些渲染目标,但是当我尝试从片段着色器向渲染目标输出vec4时,值会先乘以w分量被写入纹理。

是的,我以后使用它们时可以将其除以w,但这似乎很浪费。有没有一种方法可以防止他们首先获得w乘数?

opengl glsl
1个回答
1
投票
[当我尝试从片段着色器向渲染目标输出vec4时,将值乘以w组件,然后再将其写入纹理。

[它们仅与w分量相乘-或以更明显的方式编写-当ypu设置了某些alpha混合时的a分量。 (例如GL_SRC_ALPHA源混合因子)。写入gbuffer时,应禁用混合功能-透明方式无论如何都无法通过延迟着色来实现。

© www.soinside.com 2019 - 2024. All rights reserved.