Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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
Javascript THREE.js颜色纹理(按着色器)_Javascript_Three.js_Webgl - Fatal编程技术网

Javascript THREE.js颜色纹理(按着色器)

Javascript THREE.js颜色纹理(按着色器),javascript,three.js,webgl,Javascript,Three.js,Webgl,我已经在我的场景中添加了简单的长方体,我想创建一个着色器,为它添加一个纹理,并为这个纹理添加颜色 这是我的顶点着色器(没有什么特别之处): 是否有可能通过该着色器以与图片中相同的方式为我的纹理着色(在对象中混合颜色和纹理) 就像任何其他变量一样,将其设置两次只会使其成为第二个结果 var foo; foo = 123; foo = 456; foo现在等于456 如果你想把结果结合起来,你需要自己做一些事情来把它们结合起来 gl_FragColor = texture2D(texture,

我已经在我的场景中添加了简单的长方体,我想创建一个着色器,为它添加一个纹理,并为这个纹理添加颜色

这是我的顶点着色器(没有什么特别之处):


是否有可能通过该着色器以与图片中相同的方式为我的纹理着色(在对象中混合颜色和纹理)

就像任何其他变量一样,将其设置两次只会使其成为第二个结果

var foo;
foo = 123;
foo = 456;
foo
现在等于456

如果你想把结果结合起来,你需要自己做一些事情来把它们结合起来

 gl_FragColor = texture2D(texture, vUv);
 gl_FragColor = color;
仅仅意味着
gl_FragColor
等于
color

我猜你想要像这样的东西

 gl_FragColor = texture2D(texture, vUv) * color;
当然,你用什么数学取决于你想要达到的目标


根据上面的纹理和颜色示例,将纹理乘以颜色,将得到一个带有渐变颜色的圆。不清楚这是否是你想要的结果。

你的问题有点让人困惑,你到底想达到什么目的?你从shadertoy那里得到一些代码了吗?如果是这样的话,你可能想看看我的答案或者我自己的一些ShaderMaterial实验嗨,是的,我已经找到了一个解决方案,但是对于你的答案,我知道它是正确的:)
var foo;
foo = 123;
foo = 456;
 gl_FragColor = texture2D(texture, vUv);
 gl_FragColor = color;
 gl_FragColor = texture2D(texture, vUv) * color;