我使用以下代码在HTML文件中声明了我的GLSL ES着色器程序:
<script id="shader-fs" type="x-shader/x-fragment">..shader-code..</script>
如learning WebGL示例所示.一切工作正常,但我不明白为什么我应该使用脚本标签的type属性.我想知道在哪里指定“x-shader / x-fragment”值.谁做这个.. W3C,Khronos集团或浏览器开发人员?有谁能够帮助我? Tahnk你
解决方法
没有官方组织指定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”不是浏览器的已知脚本类型,因此浏览器将被安全地忽略.