当前位置:  开发笔记 > 编程语言 > 正文

OpenGL,GTK和QT库之间有什么区别?

如何解决《OpenGL,GTK和QT库之间有什么区别?》经验,为你挑选了4个好方法。

我理解GTK,QT或其他图形工具包的目的.但我不明白OpenGL的作用.它只是另一个GUI库还是指更基本的东西?如果是这样,它是什么以及何时应该在日常黑客中使用它?



1> ypnos..:

OpenGL是一个用于在低级别上绘制图形的库.它主要擅长3D图形.OpenGL最重要的竞争对手是Direct3D(不是整个DirectX).

如果你有硬件加速,GL才真正强大.如今,几乎所有台式机或笔记本电脑解决方案都具有GL加速功能,但在某些将显卡集成到芯片组中的系统上,它仍然相当慢.

对于日常的黑客攻击,GL可以用于许多不寻常的目的.原因是您可以利用GPU的处理能力进行图形相关任务.对于任何非图形化的东西,也存在像CUDA这样的新语言来访问GPU.

虽然GL的真正优势在于3D场景渲染,但它通常也用于2D操作或合成.原因是图形卡的2D加速架构通常无法达到GL的功率(自由度)或性能.这就是为什么有时GL用于视频输出(主要是缩放)或混合任务,即使这些任务的特定2D加速可用.Mac OS X是整个桌面(可选)通过GL渲染的一个突出示例,可以在没有高CPU负载的情况下提供吸引人的效果.但它也可以用于例如将抗锯齿文本字形混合到带纹理的背景上.

一旦执行了图形化,性能关键任务,您可能希望GPU提供帮助(即使您不在屏幕上绘图也可以),然后OpenGL是满足您需求的干净,标准化,跨平台的解决方案.今天的GUI工具包主要不提供GPU加速绘图,而是将GL渲染包含在他们的小部件中.因此,您可以将它们用于UI绘图,并在适合的地方包含您的性能关键实时图形.在GL内部构建一个完整的用户界面很痛苦,但也有可用的解决方案(典型的用例是具有游戏内UI的游戏).



2> 小智..:

这是更基本的东西.OpenGL允许您执行低级绘图(想想"从这里画一条线到这里"而不是"画一个按钮").OpenGL操作通常也是硬件加速的,因此非常高效,OpenGL API允许您轻松使用3D.

在OpenGL和QT或GTK之类的GUI工具包之间进行选择实际上取决于您是要为应用程序绘制UI元素还是想要非常精细地控制图形的绘制方式.

有时,GUI工具包会在封面下使用OpenGL来绘制屏幕上的元素.



3> Cruachan..:

OpenGL是图形API,在其上构建更复杂的面向用户的图形库.如果您对图形开发感兴趣,特别是3D图形,那么很有必要让它成为熟人.它是一个非常强大的系统,可以完成从绘制线到渲染Quake以处理照片般逼真的大气渲染.

您与OpenGL相关的所有东西的起点是OpenGL.org,它可以链接到您需要的一切.

如果您更喜欢教科书,并且这对OpenGL来说并不是一个坏主意,那么最终文本是"OpenGL编程指南",通俗地称为"The Red Book",因为它的封面.您可能希望使用"OpenGL着色语言"(或"橙皮书")对其进行补充.

关于OpenGL的一个好处是有一个简单的测试工具包--GLUT--它已经在大多数语言中实现了绑定,并且非常容易启动和运行以进行实验并且通常都是黑客攻击.

所以去渲染你的茶壶吧!



4> Martin Becke..:

GTK,QT,MFC,wxwidget等是窗口工具包 - 它们提供控件,如对话框,小部件,按钮等,以创建gui应用程序.

他们通常提供的控件之一是可以使用图形命令(绘制线,绘制圆等)绘制的画布.它们也可能提供OpenGL画布,您可以使用OpenGL命令进行绘制.

OpenGL(简单来说)是一种用于显示3D对象的语言,它非常强大,跨平台且有点复杂(特别是如果你的数学很弱!)但它比自己尝试做任何这些3D东西要好得多!有时令人沮丧,特别是如果你做错了什么,它只是画一个空白的屏幕.

只是为了让事情变得更复杂,还有用OpenGL编写的窗口工具包,其中OpenGL在场景中提供了一组按钮,对话框等.有时(幕后)像QT这样的所有GUI元素实际上都是正在被OpenGL绘制!

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有