我已经使用 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 等特殊值“欺骗”着色器,但它根本没有帮助。
阴影
无阴影