Three.js 在帧中使用watershader.js着色器
我希望了解如何在不复制着色器代码的情况下在a帧内使用外部着色器文件。我知道我们可以使用框架的registershader定义自定义着色器,但是有没有办法将顶点和片段着色器代码指向外部URLThree.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帧内使用此处定义的着色器,如何在不将着色器代码复制到本地文件的情况下使用该着色器?脚本包含
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。你太棒了,我从你身上学到了很多