0

我抓住了 firefox 3.7a(注意转到 about:config 并启用 webgl)并在此站点http://www.iquilezles.org/apps/shadertoy/上运行示例

这些例子很酷,然后它击中了我。它是如何运行的?代码正在运行,不是吗?这是 LLVM 的实现吗?还有其他事情吗?我可以运行自己的示例并执行基于命令行文本的游戏之类的操作吗?

4

1 回答 1

6

该站点上的着色器示例是用一种名为 GLSL 的类 C 语言编写的,它是 (Open/Web)GL 着色器语言。当它们被执行时,JavaScript WebGL 代码将着色器源发送到图形驱动程序的 OpenGL 函数,后者将其编译为直接在 GPU 上运行的机器代码。

顺便说一句,仅着色器的编码风格虽然非常流行并且是编写酷演示的好方法,但并不是 WebGL 的完全典型用法。通常,着色器用于执行大量繁重的数字运算,但构成场景的各种对象的设计和动画是在 JavaScript 中完成的。(在 OpenGL 中,您会看到 GLSL 和其他一些语言(例如 C 或 C++)之间的类似分裂。)

如果你想了解更多关于 WebGL 编码的知识,你可以比访问我的网站learningwebgl.com上的教程做得更糟。我也经常链接到其他人的演示和教程,所以如果你不喜欢我的例子,你应该很容易找到更好的东西:-)

于 2010-03-23T17:23:41.693 回答