javascript - 三.WebGL渲染器: Unknown uniform type: 1009

标签 javascript three.js glsl

我正在使用 THREE.js r73,并且我正在尝试使用 THREE.BufferGeometery 来保存顶点并使用 THREE.ShaderMaterial 来添加粒子系统他们的功能。由于某种原因,我收到上面的错误。这是我的代码(使用 Typescript)。错误发生在 gl_FragColor = gl_FragColor *texture2D(texture, gl_PointCoord ); 行(片段着色器中的最后一个)。

this.particleSystem = new THREE.PointCloud(
    this.particles,
    new THREE.ShaderMaterial({
        uniforms: {
            texture: wTex
        },
        vertexShader: `
            attribute vec3 color;
            attribute float size;

            varying vec3 vColor;
            varying vec2 vUv;

            void main() {
                vUv = uv;
                vColor = color; // set color associated to vertex; use later in fragment shader
                vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );
                gl_PointSize = size * ( 300.0 / length( mvPosition.xyz ) );
                gl_Position = projectionMatrix * mvPosition;
            }
        `,
        fragmentShader: `
            uniform sampler2D texture;

            varying vec3 vColor; // colors associated to vertices; assigned by vertex shader
            varying vec2 vUv;

            void main() {
                // calculates a color for the particle
                gl_FragColor = vec4( vColor, 1.0 );
                // sets particle texture to desired color
                gl_FragColor = gl_FragColor * texture2D( texture, gl_PointCoord );
            }
        `
    })
);

该代码改编 self 在网上找到的一些示例,但我理解它。

最佳答案

你没有正确构建制服。应该是...

uniforms: {
    texture: { type: 't', value: wTex }
}

关于javascript - 三.WebGL渲染器: Unknown uniform type: 1009,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35849609/

相关文章:

javascript - 将对象从 Three.js 导出到任何内容

javascript - 将 THREE.js 着色器转换为 PIXI.js

performance - 使用three.js和canvas渲染器渲染大量彩色粒子

opengl - 如何在 GLSL 中制作正弦波圆

javascript - 当我单击编辑表单时, Angular 自动填充创建表单的问题

javascript - 可靠的下拉菜单

javascript - Nodejs Express 中的异步操作

javascript - 将 Javascript getter/setter 复制到另一个原型(prototype)对象

c - OpenGL 纹理变换

javascript - 将顶点数据打包到 WebGL 纹理中