Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# OpenTK中的二维绘图顺序_C#_.net_Opengl_Mono_Opentk - Fatal编程技术网

C# OpenTK中的二维绘图顺序

C# OpenTK中的二维绘图顺序,c#,.net,opengl,mono,opentk,C#,.net,Opengl,Mono,Opentk,所以我有4个精灵,让我们称它们为Background,Overlay,对象A和对象B Backgroundsprite应该首先绘制,并像普通背景一样工作 Overlaysprite的工作相当复杂,Overlay覆盖了Background50%的面积,但是我想Overlay对Background是透明的,这意味着我可以看到Background即使它被Overlay覆盖,我希望它对对象A和对象B不透明,这意味着如果对象A和/或对象B位于/覆盖在覆盖层中,则这些对象不应可见,但背景应完全可见 有什么办

所以我有4个精灵,让我们称它们为
Background
Overlay
对象A
对象B

  • Background
    sprite应该首先绘制,并像普通背景一样工作
  • Overlay
    sprite的工作相当复杂,
    Overlay
    覆盖了
    Background
    50%的面积,但是我想
    Overlay
    Background
    是透明的,这意味着我可以看到
    Background
    即使它被
    Overlay
    覆盖,我希望它对
    对象A
    对象B
    不透明,这意味着如果
    对象A
    和/或
    对象B
    位于/覆盖在
    覆盖层
    中,则这些对象不应可见,但
    背景
    应完全可见
  • 有什么办法解决这个问题吗?

    谢谢

    如果objA或B部分被覆盖怎么办?我认为您可以调整绘制调用之间的alpha混合,以满足您的需要…覆盖的部分不应可见我认为不可能使用普通alpha混合,因为
    背景
    即使其被
    覆盖
    也应可见,如果无法使用普通alpha混合(我没有深入研究此问题)但您可以在禁用alpha混合的情况下将A、B和覆盖对象渲染到FBO,然后在启用alpha的情况下渲染生成的纹理和背景。。。