【问题标题】:rounded edges/corners in DirectX (D3D9)DirectX (D3D9) 中的圆角边/角
【发布时间】:2014-01-27 23:27:19
【问题描述】:

我使用 DirectX 创建了自己的小型 2D 引擎(好吧,最终应该更像一个 GUI)并尝试为简单的矩形创建圆边。因为在我不知道如何提供它之前,我从来没有用图形框架做过这个。 现在,我只是重叠了 5 个矩形和 4 个圆圈(圆圈用于圆边)。它确实适用于不透明的颜色,但如果我将 alpha 添加到矩形中,圆圈就会出现问题。 (如下图所示 - 我应该选择其他颜色...)

<# Open Image #>

我自己找不到解决方案(我在 Google 上搜索并发现没有发现 DirectX 中的圆角边缘),我相信有一种更强大、更快的方法可以做到这一点。所以我的最后一个问题是,在 Direct3D9 中创建圆角矩形的常用算法是什么?

【问题讨论】:

    标签: geometry directx rounded-corners edges direct3d9


    【解决方案1】:

    绘制圆角四边形的常用方法是使用带有 alpha 通道的纹理。这非常简单,并且大部分 gui 使用图像来实现特定的外观。如果您只绘制单色框,它可能会在一段时间后看起来非常普通(即使它们有花哨的圆角;))。

    但是,如果您想直接绘制圆角四边形,我想生成一个自定义几何图形,该几何图形直接适合所需区域而不会重叠(需要 alphablending)。在你的情况下,它会是这样的:

    你使用的三角形越多,它看起来就越平滑。

    【讨论】:

    • 好吧,这就是我认为效率低下的情况。但如果它是最常见的方法,我会加入。非常感谢!现在我可以完成我该死的 DX GUI 了:D
    猜你喜欢
    • 2013-01-08
    • 2017-12-30
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 2012-07-17
    • 1970-01-01
    相关资源
    最近更新 更多