Frosted Glass

Frosted Glass

1.3k Downloads

すりガラスの背景に半透明ブロックがあると、背景の半透明ブロックが描画されないことがある

gedorinku opened this issue · 1 comments

commented

2022-05-17_22 15 49

すりガラスにマウスオーバーして黒枠が表示されると、背景にある半透明ブロックが描画されなくなる。

commented

net.minecraft.client.renderer.LevelRenderer#renderLevel の中で MultiBufferSource.BufferSourceendBatchgetBuffer のどちらかが呼ばれたときに、すりガラスの glReadPixels 周りが実行され描画される。

マウスオーバーしてなくて黒枠を描画していないときは、半透明ブロックすべてが描画された後に endBatch が呼ばれてすりガラスが描画される。
しかし、黒枠を描画するときは、半透明ブロックを描画する前に黒枠を描画するための getBuffer を呼ぶので、背景にある半透明ブロックが描画されなくなってしまう。

ちなみに同様の理由で、他の BlockEntity が存在するときも、確率的に半透明ブロックが描画されなくなる。

どちらにせよ、すりガラスは半透明ブロックと同じタイミングで奥から順に描画されるべきなので、だめそう。