基本颜色的Three.js纹理映射模式

基本颜色的Three.js纹理映射模式,three.js,textures,texture-mapping,Three.js,Textures,Texture Mapping,我正在尝试将一个等矩形反射贴图应用于MeshBasicMaterial的.map字段,以节省性能,而不是仅为envMap渲染整个MeshStandardMaterial 根据,我认为在将纹理指定给material.map之前,可以通过手动将纹理的贴图设置为3.EquirectangularReflectionMapping来实现这一点。但这不起作用,图像仍然映射到UV,而不是作为反射贴图 如何强制纹理遵循我设置的贴图 示例代码: var myGeo = new THREE.SphereGeome

我正在尝试将一个等矩形反射贴图应用于MeshBasicMaterial的.map字段,以节省性能,而不是仅为envMap渲染整个MeshStandardMaterial

根据,我认为在将纹理指定给material.map之前,可以通过手动将纹理的贴图设置为3.EquirectangularReflectionMapping来实现这一点。但这不起作用,图像仍然映射到UV,而不是作为反射贴图

如何强制纹理遵循我设置的贴图

示例代码:

var myGeo = new THREE.SphereGeometry(0.5, 32, 32);
var myTexture = new THREE.TextureLoader().load('myEquirec.png');
myTexture.mapping = THREE.EquirectangularReflectionMapping;
var myMaterial = new THREE.MeshBasicMaterial({color: 0xffffff, map: myTexture});
var myMesh = new THREE.Mesh(myGeo, myMaterial);
scene.add(myMesh);

我希望这是可能的,否则为什么三个让我们设置贴图模式?

贴图的采样必须基于入射角,因此着色器代码必须不同。对于纹理,将使用UV坐标。恐怕您必须制作一个自定义着色器来执行您的建议。您可以在这里看到,
映射
似乎只用于环境映射。可能需要更新文档:贴图的采样必须基于入射角,因此着色器代码必须不同。对于纹理,将使用UV坐标。恐怕您必须制作一个自定义着色器来执行您的建议。您可以在这里看到,
映射
似乎只用于环境映射。可能需要更新文档: