小编bli*_*epl的帖子

ShaderMaterial 中的 Three.js 纹理

我无法将纹理加载到我的着色器材质中,我看到的只是黑点。这是我的shader.js

THREE.ShaderLib['cloud'] = {

    uniforms: {
        texture: { type: "t", value: THREE.ImageUtils.loadTexture("img/cloud.png") }
    },

    vertexShader: [
        "varying vec2 vUv;",
        "void main() {",
            "vUv = uv;",
            "gl_PointSize = 8.0;",
            "gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);",
        "}",
    ].join("\n"),

    fragmentShader: [
            "varying vec2 vUv;",
            "uniform sampler2D texture;",
            "void main() {",
                "gl_FragColor = texture2D(texture, vUv);",
            "}",
    ].join("\n")
};
Run Code Online (Sandbox Code Playgroud)

这就是我尝试加载和使用它的方式:

var cloudShader = THREE.ShaderLib["cloud"];
var uniforms = THREE.UniformsUtils.clone(cloudShader.uniforms);

var texture = THREE.ImageUtils.loadTexture("img/cloud.png", undefined, function () {

   uniforms.texture.value = texture;
   texture.needsUpdate = true;

   var …
Run Code Online (Sandbox Code Playgroud)

javascript three.js

5
推荐指数
1
解决办法
8418
查看次数

标签 统计

javascript ×1

three.js ×1