使用jquery访问three.js的着色器文件内容

时间:2022-05-31 04:01:04

I need to access the text of a string which I import using HTML from inside another script.

我需要访问我从另一个脚本中使用HTML导入的字符串文本。

I include the text file in question in the html file:

我在html文件中包含有问题的文本文件:

<script src="shaders/fragmentshader.fs" id=fragmentshader></script>

I then want to put the contents of this file in a variable within another script file and use it as a shader for three,js :

然后,我想将此文件的内容放在另一个脚本文件中的变量中,并将其用作三个js的着色器:

var fShader = $('#fragmentshader');

var shader = new THREE.ShaderMaterial({
    vertexShader: vShader.text(),
    fragmentShader: fShader.text()
});

This code works fine if I just write the necessary shader code between the script tags in the html file, but only accesses the strict url(not the data) if used as above.

如果我只是在html文件中的脚本标记之间编写必要的着色器代码,那么此代码可以正常工作,但如果按上述方式使用,则只访问严格的url(而不是数据)。

My question is how do I access the text within the file after loading it as shown above?

我的问题是如何在加载后访问文件中的文本,如上所示?

1 个解决方案

#1


4  

You can't load shaders using src in script tag.

您无法在脚本标记中使用src加载着色器。

You can use ShaderLoader.js and then write:

您可以使用ShaderLoader.js然后编写:

<script data-src="shaders/name/vertex.js" data-name="shader" 
type="x-shader/x-vertex"></script>

In js:

在js中:

SHADER_LOADER.load(function(data) {
    var particlesVertexShader = data.shader.vertex;
});

#1


4  

You can't load shaders using src in script tag.

您无法在脚本标记中使用src加载着色器。

You can use ShaderLoader.js and then write:

您可以使用ShaderLoader.js然后编写:

<script data-src="shaders/name/vertex.js" data-name="shader" 
type="x-shader/x-vertex"></script>

In js:

在js中:

SHADER_LOADER.load(function(data) {
    var particlesVertexShader = data.shader.vertex;
});