【发布时间】:2019-07-29 22:32:12
【问题描述】:
我最近开始学习着色器和three.js。我尝试显示带有纹理的着色器,但它显示为全黑。
这是代码笔:https://codepen.io/LDB95/pen/MxmWNq
这是我的制服:
uniforms: {
tDiffuse: { value: null },
time: { type: "f", value: 1.0 },
resolution: { type: "v2", value: new THREE.Vector2() },
iChannel0: { type: 't', value: new THREE.TextureLoader().load('https://naqyr37xcg93tizq734pqsx1-wpengine.netdna-ssl.com/wp-content/uploads/2017/11/10-Things-We-Can-Learn-From-the-Incredible-Steve-Jobs.jpg')},
iChannel1: { type: 't', value: new THREE.TextureLoader().load('https://gobelmont.ca/Portals/0/xBlog/uploads/2018/8/30/white%20noise.jpg')},
},
我似乎无法找到解决方法。如果有人可以在这里帮助我,那就太棒了:)
谢谢!
【问题讨论】:
-
根据Migration guide,Three.js 102版将渲染方式改为
RenderTargets,所以示例中的EffectComposer和ShaderPass可能已经过时了。为简单起见,您现在应该只导入 Three.js 版本 100,直到这些示例更新。此外,如果您查看控制台,您会收到Cross-Origin Request Blocked警告。您的图像未加载。您应该搜索该警告的含义以了解如何修复它。
标签: three.js textures shader codepen