gpt4 book ai didi

OpenGL 2D非矩形区域裁剪

转载 作者:行者123 更新时间:2023-12-02 08:53:40 25 4
gpt4 key购买 nike

我正在使用 OpenGL 编写自己的 2D GUI 库,现在我有一个容器控件,可以包含图形元素(如圆角矩形或星形) 和其他子控件...ETC...我尝试将子控件和图形元素的渲染剪辑到父控件中。因此,如果子控件溢出容器边框,则不会呈现它。

在网上搜索时发现“剪刀测试”后,我的第一个想法是使用它。但问题是我仅限于矩形剪辑,并且我希望能够剪辑任意区域中的内容,例如星形多边形形状。

我有一个想法...

当需要绘制控件及其图形元素时,我会查看控件是否必须剪辑其内容。如果是,我会在屏幕外纹理的黑色背景上使用均匀的白色绘制它。然后我将其发送到着色器程序。因此,我在激活着色器的情况下渲染每个子项(控件和图形元素)。在这个片段着色器中,对于每个片段,我认为查看之前传递的特殊纹理中的相同坐标。如果特殊纹理中的片段是白色的,我可以渲染这个片段,因为它位于可见区域。

你认为这可行吗?这是一个好主意还是有更好的主意?

最佳答案

根据您的需要,可以通过多种方式完成。渲染到纹理或模板缓冲区可能是最好的选择。此链接提供了帮助您入门的更多信息:

OpenGL clipping

关于OpenGL 2D非矩形区域裁剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13034638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com