我已经使用Qt3D设置了延迟渲染管线。到目前为止这么好,但现在我想在场景中渲染的网格周围添加选择框。推迟渲染如何从灯光贡献中排除网格
不幸的是,选择框网格是受灯光影响,我不希望(请参阅“阴影”图片下面)。例如,我可能想要将环境光强度设置为0,并且选择框仍应可见。另一个例子是,如果我想在一个视口角中显示典型的X/Y/Z指示器。
我已经得到了光的贡献计算,这是典型的通光着色器(简称)这样的:
void main()
{
vec2 texCoord = gl_FragCoord.xy/winSize;
vec4 col = texture(color, texCoord);
vec3 pos = texture(position, texCoord).xyz;
vec3 norm = texture(normal, texCoord).xyz;
... calculate lights contribution...
fragColor = vec4(col.rgb * lightColor, col.a);
}
如果我更换fragColor行:
fragColor = vec4(col.rgb, col.a);
我得到非阴影下面的图片,它显示了我想要的选择框的颜色。
从光通中排除特定网格是否有任何技巧或常见做法?
我已经试着用特殊的数值“欺骗”着色器,比如颜色alpha = 0.123,但它根本没有任何帮助。
罩
非阴影
BDL,谢谢,我想我会选择第二个。我发布这个10分钟后,我意识到我可以用一个单独的着色器来渲染这些网格物体。我唯一担心的是他们如何与gbuffer碎片混合时看起来如何。如果我取得了一些好成绩,我会发布更新。 –