C++ 虚幻引擎/C++;:如何根据2D UI小部件在屏幕上的位置绘制纹理遮罩

C++ 虚幻引擎/C++;:如何根据2D UI小部件在屏幕上的位置绘制纹理遮罩,c++,unreal-engine4,C++,Unreal Engine4,看起来虚幻引擎(4.8.1)缺少一个内置的“缓冲区”或类似的东西来掩盖2D UI部件在屏幕上呈现的位置;虽然提取3D世界的各种深度缓冲区非常简单(包括属于该领域的3D UI元素,而不是在所有内容之上呈现的2D UI) 但是,我认为必须有一种方法来使用C++,并在白色基材纹理上画一些黑色矩形;基于作为UMG UI HUD一部分的UI小部件的位置和大小。也许,甚至可以提取每个小部件每个“矩形”的绝对屏幕边界(以避免必须处理各种“锚”点或从一些本地UMG空间到屏幕空间进行转换) 我要做的是创建一个“渲

看起来虚幻引擎(4.8.1)缺少一个内置的“缓冲区”或类似的东西来掩盖2D UI部件在屏幕上呈现的位置;虽然提取3D世界的各种深度缓冲区非常简单(包括属于该领域的3D UI元素,而不是在所有内容之上呈现的2D UI)

但是,我认为必须有一种方法来使用C++,并在白色基材纹理上画一些黑色矩形;基于作为UMG UI HUD一部分的UI小部件的位置和大小。也许,甚至可以提取每个小部件每个“矩形”的绝对屏幕边界(以避免必须处理各种“锚”点或从一些本地UMG空间到屏幕空间进行转换)

我要做的是创建一个“渲染目标”纹理,它看起来像这个附件——每一帧都会更新,或者每当UI更新时都会更新(因为小部件可能会被移动或调整大小,比如当播放器重新排列小地图或目录时)。纹理资源,可用于普通非真实材质,例如,遮罩后期处理层:


任何帮助都将不胜感激,因为我完全只能依靠自己。

您可能需要考虑在UMG上设置一种绿色屏幕。可以通过使用SceneCapture2D对象和绿色屏幕来实现这一点。然后从中获取渲染目标并创建渲染材质

绿屏蓝图:

然后,您可以将图像添加到UMG小部件中,并将绿色屏幕材质应用为笔刷

希望这有帮助