OpenGL应用程序的拾色器/选择器

时间:2012-03-25 16:28:56

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

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

4 个答案:

答案 0 :(得分:2)

您可以尝试fox-toolkit。它是一个基于C ++的工具包,用于开发图形用户界面。它提供了Color Picker和OpenGL小部件,用于3D图形处理。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:1)

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

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