Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js 在帧中使用watershader.js着色器_Three.js_Shader_Aframe_Fragment Shader_Vertex Shader - Fatal编程技术网

Three.js 在帧中使用watershader.js着色器

Three.js 在帧中使用watershader.js着色器,three.js,shader,aframe,fragment-shader,vertex-shader,Three.js,Shader,Aframe,Fragment Shader,Vertex Shader,我希望了解如何在不复制着色器代码的情况下在a帧内使用外部着色器文件。我知道我们可以使用框架的registershader定义自定义着色器,但是有没有办法将顶点和片段着色器代码指向外部URL 例如,如果要在a帧内使用此处定义的着色器,如何在不将着色器代码复制到本地文件的情况下使用该着色器?脚本包含 THREE.ShaderLib[ 'water' ] 如果将其包含在html中,您应该能够在任何地方访问它: THREE.ShaderLib['water'].vertexShader // vert

我希望了解如何在不复制着色器代码的情况下在a帧内使用外部着色器文件。我知道我们可以使用框架的registershader定义自定义着色器,但是有没有办法将顶点和片段着色器代码指向外部URL


例如,如果要在a帧内使用此处定义的着色器,如何在不将着色器代码复制到本地文件的情况下使用该着色器?

脚本包含

THREE.ShaderLib[ 'water' ]
如果将其包含在html中,您应该能够在任何地方访问它:

THREE.ShaderLib['water'].vertexShader // vertexShader
例如。
要注册着色器,只需在模式中正确定义所有制服:

AFRAME.registerShader('foo', {
  schema: {
    //all uniforms from the water shader lib
  },
  vertexShader: THREE.ShaderLib[ 'water' ].vertexShader,
  fragmentShader: THREE.ShaderLib[ 'water' ].fragmentShader
})


该脚本使用了一个
THREE.Mirror
,如果你想充分利用
water
ShaderLib

,如果你来自谷歌,正在为a-Frame寻找一个水帘,那么也需要包括该脚本:这里有一个附加功能。

谢谢Piotr,让我给你个机会try@Niraj是一个使用全局ShaderLib对象的示例:)哈哈哈..这是我的代码,来自另一个问题,您对该问题进行了修改以提供该问题的答案。你真是太棒了:-):-@Niraj这似乎是一个后续,而且很容易重复使用其他anwser的部分:)再次感谢你,Piotr。你太棒了,我从你身上学到了很多