【发布时间】:2021-10-31 10:14:21
【问题描述】:
对于纹理,是使用 Opengl 1.1 中的 glGenTextures 方法还是使用 Opengl 4.5 中的 glCreateTexture 更好?我都试过了,我可以对这两种方法使用相同的绑定方法,那么,我应该使用哪一种?
【问题讨论】:
标签: java opengl textures lwjgl
对于纹理,是使用 Opengl 1.1 中的 glGenTextures 方法还是使用 Opengl 4.5 中的 glCreateTexture 更好?我都试过了,我可以对这两种方法使用相同的绑定方法,那么,我应该使用哪一种?
【问题讨论】:
标签: java opengl textures lwjgl
如果您确实可以以 OpenGL 4.5 为目标,那么请选择 glCreateTextures()。该函数旨在与其他直接状态 GL 函数一起使用,因此您不必绑定纹理来配置/上传它,而只需“绑定到渲染/绘制” ”。
glGenTextures() 和glCreateTextures() 之间的主要区别在于前者在您调用glBindTexture(target, id) 之前不会创建纹理对象;它只是返回了一个 可以 制成纹理对象的句柄/int。
但请注意,并非所有驱动程序/卡实际上都支持 OpenGL 4.5,最值得注意的是 macOS 驱动程序永远不会支持 OpenGL 4.5,而仅支持 4.1.,并且它们也不支持 ARB_direct_state_access 扩展名(glCreateTextures 源自该扩展名)。见:https://developer.apple.com/opengl/OpenGL-Capabilities-Tables.pdf
【讨论】: