事实上,我并不完全了解OpenGL是什么。
OpenGL in和本身就是一个API的规范:你可以调用一组函数,特殊值和标记以及每个调用的效果是什么。然后,实现遵循这个规范来提供一个可用的OpenGL。
OpenGL是栅格化绘图API,为绘制3D空间中的图元而优化。即您提供3D坐标流和绘图模式(即绘制点,线或三角形),然后OpenGL将3D数据转换为2D屏幕空间并在画布上绘制平面图元。后来的OpenGL版本不再是严格的3D到2D版本,而是需要所谓的着色器,它是描述将任意维度几何转换为2D屏幕空间的小程序。
附加功能是在绘图时作为附加数据源的图像数据(纹理)的采样和插值。
细节:我似乎一直在尝试使用3D梅萨这甚至不是严格意义上的官方OpenGL实现反正。
为什么?如果你在Windows上,那么你应该使用GPU驱动提供的OpenGL实现,而不是一些随机库(尽管Mesa3D并不是完全随机的)。
OpenGL实际上并不是你安装的一些库,它是GPU驱动程序提供的一组函数。对于GPU驱动程序不提供OpenGL的情况,您可以使用软件光栅化器实现。
Mesa 3D甚至使用gpu吗?
取决于。在Windows上Mesa3D只是一个软件光栅器。但是对于X.org(Linux,FreeBSD等)来说,Mesa3D是GPU驱动程序的开源OpenGL前端,因此如果X.org配置为使用Mesa3D可以使用的驱动程序,那么您可以通过台面获得GPU加速。
我不知道如何获得另一个实现库;我甚至不知道其他人是什么。(我的dev-cpp编译器提供了Mesa 3D)
通常,您将OpenGL作为GPU驱动程序的一部分。在Linux上安装开源GPU驱动程序时,会自动安装Mesa3D。但也有闭源驱动程序和那些使用完全不同的代码库。
这是非常重要的:你并不需要一个专门的OpenGL库做OpenGL开发。
通常,您的编译器附带一个“opengl32.lib”(如果在Windows上 - 在其他平台上,您只是告诉链接器与系统OpenGL链接)。然而,这只是链接器的内容列表,实际的OpenGL实现将提供什么。
在Windows系统OPENGL32.DLL出口仅OpenGL的1.1。对于任何以上的功能,都有所谓的扩展机制来加载更高版本的功能。通常你做到这一点通过库(在这种情况下,一个真正的图书馆)一样GLEW
请在这里发表_specific_问题,每...问题一个问题。那里有一些东西。如果您收到链接器错误,请阅读docs_和_关注您找到的教程和示例。至于“什么是OpenGL”,请使用搜索引擎,那里有大量的信息。 – Mat
我试过使用聊天功能!但没人听。 – Codesmith