OpenGL-GLM和GLSL,它们有何不同?

米歇尔·芬斯坦

我开始学习有关OpenGL,GLM和GLSL的知识,并且感到有些困惑。我将在这里说出我到目前为止所了解的内容和我的问题,因此请随时纠正我。

到目前为止,我看到GLM扩展了GLSL文档,提供了更多的数学函数,但是由于GLM基于C ++,它将在CPU上运行,另一方面,GLSL直接在GPU中运行,因此我猜想矩阵数学在GLSL中要快得多因为它可以利用GPU的能力并行执行所有数学运算。那么为什么要使用GLM?

妖怪

它们是完全不同的东西:

  • GLSL是用于编写在GPU上运行的着色器程序的语言。它是C的变体,具有一些特定于OpenGL的特殊扩展。但是就您的应用程序而言,GLSL着色器只是一个不透明的数据文件,将传递给OpenGL库。它完全独立于宿主程序。
  • GLM是一个C ++库,用于在CPU上处理矢量数据。为方便起见,它遵循与GLSL类似的命名约定,但它完全独立于OpenGL。

GLM并不是GLSL的替代品或替代品。它的目的是帮助进行在GPU上无用的计算-例如构建顶点着色器使用的投影矩阵,或计算3D空间中点之间的距离。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

对GLSL和OpenGL感到困惑

来自分类Dev

使用glTexBuffer和texelFetch的OpenGL(带有GLSL)

来自分类Dev

OpenGL GLSL GLUT冲突

来自分类Dev

OpenGL GLSL 日志

来自分类Dev

openGL / glut和glm ModelView矩阵

来自分类Dev

OpenGL-glm翻译和比例合成

来自分类Dev

在glm和OpenGL中合成转换

来自分类Dev

OpenGL-glm翻译和比例合成

来自分类Dev

OpenGL和GLSL中的凹凸贴图

来自分类Dev

对使用OpenGL和GLSL的性能的简单好奇

来自分类Dev

显式多重采样与OpenGL中的常规多重采样有何不同

来自分类Dev

显式多重采样与OpenGL中的常规多重采样有何不同

来自分类Dev

Opengl GLM lookAt奇怪的行为

来自分类Dev

WebGL和OpenGL的性能

来自分类Dev

OpenGL和OOP编程

来自分类Dev

OpenGL glBegin和glPushMatrix

来自分类Dev

Swift,OpenGL和glVertexAttribPointer

来自分类Dev

OpenGL和游戏实体

来自分类Dev

Steam和OpenGl 4.1

来自分类Dev

Converting GLSL modern OpenGL 3.2

来自分类Dev

转换GLSL现代OpenGL 3.2

来自分类Dev

更快的全屏渲染(OpenGL / glsl)?

来自分类Dev

opengl glsl错误,如果我使用带有不同参数的glsl纹理函数,模型将不可见

来自分类Dev

检查是否有opengl

来自分类Dev

OpenGL工件:它们来自何处?

来自分类Dev

使用OpenGL和GLSL的具有简单硬阴影映射技术的小工件

来自分类Dev

OpenGL中具有不同纹理的粒子

来自分类Dev

OpenGL的GLM库是否没有大小函数?

来自分类Dev

使用OpenGL和GLSL,Parralax映射无法正常工作