gpt4 book ai didi

c++ - GLSL和c有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-04 05:02:42 24 4
gpt4 key购买 nike

我这里有三个问题:

  1. Qt/3D API 是通过 GLSL 代码实现的吗?
  2. GLSL 代码是否像普通的 c/c++ 代码一样编译和链接,它可以在 CPU(而非 GPU)上运行吗?
  3. 为什么 GLSL 在渲染方面比普通的 c/c++ 更好?

最佳答案

您似乎对 GLSL 是什么存在根本性的误解。它不是图形编程语言。它是一种着色器语言。

OpenGL rendering pipeline , 在对象的渲染中有某些阶段被设计为由程序实现。这些阶段称为“着色器阶段”。着色器是一个程序,用 GLSL(至少对于 OpenGL)编写,在这些着色器阶段之一执行。

GLSL 用作渲染过程的一部分。 GLSL 定义了如何呈现事物,而不是呈现什么

因此:

Is the Qt/3D API implemented by GLSL code?

不是你说的那样。一些绘图功能的渲染管道可能是。但它可能不会。它与您无关,因为您是从外部使用它。

Is GLSL code compiled and linked as normal c/c++ code, and can it run on CPU (not GPU)?

不,如上所述。着色器影响渲染,而渲染发生在 GPU 上。 GLSL 是 OpenGL 的着色语言,因此 GLSL 代码在 GPU 上执行。

Why GLSL is better at rendering than normal c/c++?

没有好坏之分;您不能将一个用于另一个。您不能将随机 C 代码作为渲染管道的一部分扔给 GPU。而且你不能为 CPU 编译 GLSL。

GLSL 就是我们所说的 domain specific language .它是一种旨在促进特定目的的语言。它具有大多数语言根本没有的语言结构。它知道什么是“纹理”。它具有值的概念,这些值在单个渲染调用(制服)中跨着色器的多次执行是不变的。它还有许多其他概念,这些概念是基于硬件的着色器和渲染问题所特有的。

您不仅不能在 GPU 上使用 C 或 C++,而且您也不想这样做。不适用于着色器。

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

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