使整个屏幕变暗

本文关键字:屏幕 | 更新日期: 2023-09-27 17:50:58

我正在c#中使用OpenTK制作游戏。当前正在尝试实现暂停菜单系统。

有一个功能,我需要你的帮助,当菜单出现时,整个屏幕变暗。

有什么办法我可以做每一个像素的最终修改(一半的RGB?)一旦一切都被渲染?如果没有,我知道在屏幕上画一个四边形是有效的,但我似乎无法弄清楚如何让半透明与OpenTK四边形一起工作。

使整个屏幕变暗

我可以做的是创建一个半透明的灰色图像。当游戏暂停时,只需将纹理绘制在所有内容的顶部(但可能在暂停文本下方,这样它就不会出现灰色),所有游戏元素仍然会显示出来(因为纹理是不透明的),但它们实际上会"变灰"。

一个简单的效果,只使用100%和0%的alpha,但"变暗"的屏幕,是有一个棋盘图案(50%暗)的黑色和清晰的像素,并呈现在屏幕上。

这样做的缺点是它并没有完美地"变暗"屏幕,但是它比处理部分透明要快,并且可以有一个很好的效果(有点多样性)。