版本:v4.6 官方版 大小:1.68 MB
类别:动画制作 系统:WinXP, Win7, Win8, Win10
立即下载opengl安装包是不需要下载安装的,一般AMD、Intel、英伟达等硬件设备的驱动程序里,都是自带的,专门应用在三维图像的处理上的底层文件,如果你不想安装那些大型的驱动程序,那么它的独立、单独的图形库,也是你的另一种选择,需要的可以试试!
用c语言编写的专业的图形程序接口,能够检测笔的压力和控制笔刷大小。您还可以旋转或翻转画布。OpenGL可以跨编程语言、跨平台,使用起来非常方便。它可以用于三维图像(二维的也可以),是一个功能强大、调用很方便的底层图形库。
- 增强顶点阵列和同步对象的性能,避免在CPU和GPU之间或者多个CPU线程之间共享资源时的等待空闲。
- 改进管线可编程性,包括OpenGL Core核心里的几何着色器。
- 着色器可直接处理纹理采样,提升立方体贴图画质和多重采样渲染弹性。
- 增强顶点阵列和同步对象的性能,避免在CPU和GPU之间或者多个CPU线程之间共享资源时的等待空闲。
- 改进管线可编程性,包括OpenGL Core核心里的几何着色器。
- 着色器可直接处理纹理采样,提升立方体贴图画质和多重采样渲染弹性。
作为图形行业的两大API,DirectX、OpenGL一直上演着相爱相杀,当然现在我们又有了Metal、Vulkan等后起之秀,前辈们的压力自然也更大。时隔整整三年,Khronos Group标准组织终于将OpenGL标准规范从4.5版升级到了4.6版 ——版本号变化不大,但新东西还是很多的。
OpenGL 4.6的最大变化就是 支持SPIR-V,一种用于GPU通用计算和图形学的中间语言,Khronos开发设计,最初是为OpenCL规范准备的,和下一代图形标准Vulkan差不多同时提出,也在不断发展完善。
OpenGL 4.6标准将SPIR-V着色器整合在了核心规范中,可以确保得到广泛的支持。
同时,新标准还增加了 大量的ARB、EXT扩展 ,包括GL_ARB_gl_spirv、GL_ARB_indirect_parameters、GL_ARB_pipeline_statistics_query、GL_ARB_texture_filter_anisotropic、GL_ARB_polygon_offset_clamp、GL_ARB_shader_atomic_counter_ops、GL_KHR_no_error、GL_KHR_parallel_shader_compile、WGL_ARB_create_context_no_error、GXL_ARB_create_context_no_error。
这些扩展由Khronos、AMD、Intel、NVIDIA联合创建,会得到各家显卡的普遍支持。
此外,OpenGL标准一如既往地开放, OpenGL、OpenGL ES都新增了不少可以与DirectD、Vulkan合作、互通的扩展 ,包括GL_EXT_memory_object、GL_EXT_memory_object_fd、GL_EXT_memory_object_win32、GL_EXT_semaphore、GL_EXT_semaphore_fd、GL_EXT_semaphore_win32、GL_EXT_win32_keyed_mutex。
第一步是选择你的语言。OpenGL的绑定存在于许多语言中,从C#和Java到Python和Lua。有些语言有多套OpenGL绑定,但都不是官方的。所有这些都最终基于C / C ++绑定。
如果您不使用C / C ++,则必须下载并安装包含OpenGL绑定的所选语言的包或库。有些预先安装,但其他人有单独的下载。
如果您使用的是C / C ++,则必须首先设置可以链接到OpenGL的构建环境(Visual Studio项目,GNU makefile,CMake文件等)。在Windows下,您需要静态链接到名为OpenGL32.lib的库(请注意,如果您正在构建64位可执行文件,则仍然链接到OpenGL32.lib。“32”部分无意义)。Visual Studio和大多数Windows编译器都附带此库。
在Linux上,您需要链接到libGL。这是通过命令行参数“-lGL”完成的。
初始化
在程序中实际使用OpenGL之前,必须先对其进行初始化。由于OpenGL与平台无关,因此没有标准的初始化OpenGL方法; 每个平台处理它的方式不同 非C / C ++语言绑定也可以不同地处理这些。
OpenGL初始化有两个阶段。第一阶段是创建OpenGL上下文 ; 第二阶段是加载所有必要的函数以使用OpenGL。一些非C / C ++语言绑定将这些绑定合并为一个。
OpenGL上下文创建
OpenGL上下文代表所有OpenGL。创建一个特定于平台,以及特定于语言绑定。
如果您正在使用OpenGL的C / C ++语言绑定,那么强烈建议您使用窗口工具包来管理此任务。这些库创建一个窗口,将OpenGL上下文附加到此窗口,并管理该窗口的基本输入。一旦熟悉了OpenGL,就可以开始学习如何手动完成。
大多数非C / C ++语言绑定将为您提供用于创建上下文的特定于语言的机制。
获得功能
如果您使用非C / C ++语言绑定,那么该绑定的维护者将已经将其作为上下文创建的一部分来处理。如果您使用的是C / C ++,请继续阅读。
要使用OpenGL,您必须获得OpenGL API函数。对于您熟悉的大多数库,您只需#include一个头文件,确保库链接到您的项目或makefile,这一切都有效。OpenGL不能那样工作。
由于最终与此讨论无关的原因,您必须通过特定于平台的API调用手动加载函数。这个样板工作是通过各种OpenGL加载库完成的 ; 这些使这个过程顺利进行。你是强烈建议使用一个。
但是,如果您想手动执行此操作,则有关于如何手动加载功能的指南。你仍然应该使用扩展加载器。
OpenGL是一个渲染库。OpenGL不做的是保留有关“对象”的信息。所有OpenGL看到的都是一个由三角形组成的球和一个用来渲染它们的状态袋。它不记得你在一个位置画了一条线而在另一个位置画了一个球。
因此,使用OpenGL的一般方法是绘制您需要绘制的所有内容,然后使用与平台相关的缓冲区交换命令显示此图像。如果需要更新图像,即使只需要更新部分图像,也可以再次绘制所有图像。如果要为在屏幕上移动的对象设置动画,则需要一个不断清除并重新绘制屏幕的循环。
存在仅更新屏幕的一部分的技术。您可以使用这些技术使用OpenGL。但是OpenGL本身并不是在内部做到的; 你必须记住你画的东西。您必须弄清楚需要更新的内容并仅清除屏幕的那一部分。等等。
有许多教程和其他材料可用于学习如何在此维基和在线上使用OpenGL。
查看全部