html - WebGL 和 HTML 着色器类型

标签 html types glsl shader webgl

我在 HTML 文件中声明我的 GLSL ES 着色器程序,使用以下代码:

<script id="shader-fs" type="x-shader/x-fragment">..shader-code..</script>

learning WebGL 中所示例子。一切正常,但我不明白为什么我应该使用脚本标签的类型属性。我想知道在哪里指定了“x-shader/x-fragment”值。 W3C、Khronos Group 或浏览器开发人员是谁做的?有谁能够帮我?谢谢你。

最佳答案

没有官方组织指定 GLSL 代码应该放在 <script>"x-shader/x-fragment" 类型的标签.

GLSL 代码放在 <script> 中的唯一原因标记是因为教程编写者认为如果将 GLSL 代码放在 <script> 中,他的代码会更清晰。标签而不是普通的字符串。

然而,由于 WebGL 将 GLSL 代码作为字符串值,作者不得不编写一个名为 getShader(gl, id) 的辅助函数。从页面获取脚本标签并将其转换为 javascript 字符串,然后再将其传递给 WebGL。

作者选择类型值 "x-shader/x-fragment" 的原因是因为"x-shader/x-fragment"不是浏览器已知的脚本类型,因此会被浏览器安全地忽略。

关于html - WebGL 和 HTML 着色器类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8020151/

相关文章:

php - 这种奇怪的 PHP 行为的原因是什么?

haskell - 镜头的用途/用途是什么?

opengl - 如何获得硬边 - OpenGL

c++ - GLSL - 尝试添加多盏灯?

html - 为什么 background-image 不显示在 css 中?

generics - 泛型类型如何适应类型层次结构?

javascript - 行高相对不变(基于其父div的大小)

java - 获取延迟渲染光 channel 的世界位置

javascript - jQuery Content Slide(有效但正在寻找更简单的解决方案)

html - 使用内联 block 布局 html 卡