3d 将动态环境贴图(生成的立方体贴图)应用于导入的对象,并与对象纹理混合

3d 将动态环境贴图(生成的立方体贴图)应用于导入的对象,并与对象纹理混合,3d,three.js,blender,.obj,3d,Three.js,Blender,.obj,通过使用以下代码,我能够创建一个环境映射,并将其应用于导入的.obj模型。关键的是,该方法混合了环境贴图和原始纹理模型 我使用cubeCamera创建了另一个动态环境贴图,以便使用以下代码考虑场景中的对象,例如模型本身 cubeCamera = new THREE.CubeCamera(0.1, 20000, 1024); cubeCamera.renderTarget.minFilter = THREE.LinearMipMapLinearFilter; scene.a

通过使用以下代码,我能够创建一个环境映射,并将其应用于导入的.obj模型。关键的是,该方法混合了环境贴图和原始纹理模型

我使用cubeCamera创建了另一个动态环境贴图,以便使用以下代码考虑场景中的对象,例如模型本身

    cubeCamera = new THREE.CubeCamera(0.1, 20000, 1024);
    cubeCamera.renderTarget.minFilter = THREE.LinearMipMapLinearFilter;
    scene.add(cubeCamera);
    cubeCamera.position.x = 0;
    cubeCamera.position.y = 0;
    cubeCamera.position.z = 20;
我的问题是,我能够应用初始的“静态”立方体贴图,并将其与原始材质混合,但是立方体贴图环境贴图生成的结果创建了一种材质,即

var dynamicEnvMaterial = new THREE.MeshBasicMaterial({envMap: cubeCamera.renderTarget, side: THREE.DoubleSide});
当我应用材质时,它不会与原始纹理材质混合,只是“覆盖”了它们,这与我在静态环境贴图中遇到的问题相同,我通过将其作为立方体贴图来解决

如何结合现有对象纹理应用动态环境贴图?我可以用cubeCamera.renderTarget创建一个立方体贴图吗

(理论上,我觉得应该是直截了当的,但我尝试了一系列的技巧和解决方案来实现静态贴图的混合,直到使用cubemap方法,才取得成功。)

注意:这里是这个问题的前导,它解释了如何实现将常规立方体贴图与导入的对象原始纹理混合的效果-

var dynamicEnvMaterial = new THREE.MeshBasicMaterial({envMap: cubeCamera.renderTarget, side: THREE.DoubleSide});