在JavaScript中内嵌的WebGL着色器代码(Inline webgl shader code

2019-07-30 01:02发布

我正在写一个简单的JavaScript库,它利用了一些WebGL的代码。 我想包括内嵌在.js文件着色器源,因为我的替代品,包括他们在每个页面的脚本标签,或让他们成为其加载为AJAX单独的文件。 这两种方法都不是特别模块化。 然而,由于缺乏在JavaScript多行字符串的,我没有对如何内联WebGL的代码什么好主意。 有没有一种方法我没有想到的?

Answer 1:

使用一个字符串每行,然后它们连接起来,如

var shader = [
   "// line1 ",
   "// line2 ",
].join('\n');

在这里讨论的PS的一般问题之前,看到在JavaScript创建多行字符串



Answer 2:

我结束了这个黑客: http://github.com/noteed/language-glsl/到代码压实,通过替换的所有实例vcathsep在Language.GLSL.Pretty。 我得到的shader代码我有一个文件的一个行版本,我可以那么就粘贴到一个字符串。 我希望能找到我的时候发布这个已经做了类似的解决方案。



Answer 3:

自2009年左右的JavaScript已在IE之外的所有浏览器多字符串。

var shader = `
code
goes
here
`;


Answer 4:

这是NetBeans的办案方式:

var shader = 
"firstLine\n\
secondLine\n\
thirdLine";

我发现用于编辑这种方式更有效不必为每一行建立一个数组项。



文章来源: Inline webgl shader code in javascript