gpt4 book ai didi

opengl - opengl 和 GLSL 有什么区别?

转载 作者:行者123 更新时间:2023-12-04 04:59:47 27 4
gpt4 key购买 nike

我最近开始用 openGL 编程。我已经完成了创建基本基元的代码,并在 webGL 中使用了着色器。我已经在谷歌上广泛搜索了这个主题,但对我来说仍然不是很清楚。基本上,这就是我想知道的。有什么可以在 GLSL 中完成而在普通 openGL 中无法完成的事情,或者 GLSL 只是更有效地做事?

最佳答案

简短的版本是:OpenGL 是用于渲染图形的 API,而 GLSL(代表 GL 着色语言)是一种语言,它使程序员能够修改管道着色器。换句话说,GLSL 是整个 OpenGL 框架的(小)部分。

要了解 GLSL 在大局中的位置,请考虑一个非常简化的图形管道。

顶点指定---(顶点着色器)--->变换顶点---(原始组装)--->图元---(光栅化)--->片段---(片段着色器)--->输出像素

着色器(这里,只有顶点和片段着色器)是可编程的。你可以用它们做各种各样的事情。您可以只交换红色和绿色 channel ,或者您可以实现凹凸贴图以使您的表面看起来更加详细。编写这些着色器是图形编程的一个重要部分。这是一个包含一些不错示例的链接,可以帮助您了解使用自定义着色器可以完成的工作:http://docs.unity3d.com/Documentation/Components/SL-SurfaceShaderExamples.html .

在不久的过去,对它们进行编程的唯一方法是使用 GPU 汇编程序。在 OpenGL 的情况下,该语言被称为 ARB 汇编程序。由于这个困难,OpenGL 的人给了我们 GLSL。 GLSL 是一种高级语言,可以在图形硬件上编译和运行。总而言之,可编程着色器是 OpenGL 框架(或任何现代图形 API)的一个组成部分,而 GLSL 使它们的编程变得更加容易。

关于opengl - opengl 和 GLSL 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16631981/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com