Marcelxx 2022-08-26 15:22
浏览 9
已结题

片段写入多个附件问题

OpenGL中,有两个颜色附件,第一个颜色附件是渲染用的,第二个颜色附件用于保存对象的ID,这样在做拾取操作的时候就会很快。
但遇到的一个问题是,因为图片有透明度,所以遇到透明的片段就需要丢弃,但是这样ID就不会保存到第二个附件中了。像这种情况该怎么处理,在片段不写入第一个附件的情况下,又将ID写入第二个附件。

#version 330 core

in vec2 TexCoord;
in vec4 TextColor;

uniform sampler2D texture1;
uniform int EnttId;

layout(location = 0) out vec4 color1;
layout(location = 1) out int  color2;

void main()
{
    color2 = EnttId;
    vec4 tmpColor = texture(texture1,TexCoord);
    color1 = vec4(TextColor.xyz,tmpColor.r);
    if(color1.a < 0.01)
    {
        discard;
    }
}


  • 写回答

1条回答 默认 最新

  • Marcelxx 2022-08-29 16:11
    关注

    有没思路啊

    评论

报告相同问题?

问题事件

  • 系统已结题 9月3日
  • 创建了问题 8月26日