Dan*_*Dan 2 javascript string shader webgl
因此,我查找了一些学习 WebGL 的基本教程,并注意到它们都将 GLSL 代码块的字符串表示形式作为参数传递(例如this或this)。
我查看了WebGLRenderingContext的文档,果然,shaderSource方法的源参数描述是:
包含要设置的 GLSL 源代码的 DOMString。
我一直认为这种事情是可能的,但不是一个好的编码实践。
这是一个有意的设计选择,还是 Javascript 的其他功能确实没有提供可能的替代方案?(即最后的选择)
这种情况在其他语言中也会发生吗?或者通常应该避免这种情况?
编辑:误认为 GLSL 为 Javascript
着色器将作为文本(或作为字节缓冲区,或其他)加载,无论它存储在哪里。它不是JS,它是GLSL;一种非常不同的语言,更像是专门的 C。您的 PC 无法理解顶点/片段/计算 OpenGL 着色器的文件类型,事实上,没有正式的类型,只是建议。
OpenGL 最终进行编译,这意味着您将传递程序文本进行编译,而不是 JS 对象。
现在,无论您将其编写为应用程序中的 JS 字符串,还是编写为不同类型的脚本标记,或者手动将它们全部作为文本获取并传入,这都取决于您。
大多数人选择在教程中使用脚本标签,因为……懒惰?阻力最小的路径?真的相信他们想要一个 50,000 行的索引文件吗?我不知道。
但总的来说,它们是代表文本的一些字节组,在应用程序内部解析和编译,或者预编译并存储为缓存(不确定这在 WebGL 中是否有效;很高兴以其他方式显示)。
| 归档时间: |
|
| 查看次数: |
1672 次 |
| 最近记录: |