【问题标题】:Color Picker / Choser for an OpenGL ApplicationOpenGL 应用程序的颜色选择器/选择器
【发布时间】:2012-04-09 08:23:37
【问题描述】:

我正在构建一个 OpenGL 应用程序。我通读了代码项目上的 GLUI 教程,以在 OpenGL 应用程序上创建 Windows 窗体控件。但我的要求是开发一个颜色选择器/选择器,如 RGB 图表或 RGB 立方体来选择颜色。 Code 项目的教程将颜色列表显示为一个下拉框。然而,这不会真正帮助我,因为我要求它作为一个 Windows 颜色选择器出现。我知道作为对话框的颜色选择器是 Windows 应用程序的一部分。谁能建议我一种将它与我的 OpenGL 应用程序一起使用的方法?

【问题讨论】:

    标签: c++ visual-studio visual-studio-2010 opengl color-picker


    【解决方案1】:

    你可以试试fox-toolkit。它是一个基于 C++ 的工具包,用于开发图形用户界面。它为 3D 图形操作提供颜色选择器和 OpenGL 小部件。

    【讨论】:

      【解决方案2】:

      在 windows 上,您可以直接从 windows API 调用 ChooseColor()。它将打开本机颜色颜色选择器。如果您需要跨平台解决方案,sourceforge 上的小文件对话框也有颜色选择器并且没有主循环。

      【讨论】:

        【解决方案3】:

        您可以在每个顶点上渲染具有不同颜色的四边形/三角形/圆形
        并激活平滑阴影以在这些点之间进行插值。

        然后在鼠标位置从 OpenGL 读回颜色值。

        编辑:或者像你自己计算鼠标位置的颜色一样(读取值会大大降低 OpenGL 的速度!):http://sharathpatali.wordpress.com/2009/07/07/a-color-picker-for-pymt/

        【讨论】:

          【解决方案4】:

          我用我保存在内存中的简单渐变图像来做到这一点。然后我只是在图像上跟踪我的鼠标位置,并简单地从图像中读取数据(保存在 RAM 中)并为其获取 32 位 RGBA 颜色值。这比从屏幕读取像素更容易(也更快、更可靠)。

          这也允许以更灵活的方式呈现调色板,只有您的想象力才是调色板外观的限制。注意:您必须在图像上使用 32 位颜色,因为如果您想要平滑的边缘,您只需将 alpha 淡化但保持颜色相同,这样颜色就不会在边缘失真。渲染图像时不要忘记启用混合。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-08-09
            • 2012-10-17
            • 2015-09-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-10-05
            • 1970-01-01
            相关资源
            最近更新 更多