Javascript Three.js:如何改变;“扩散图”;及;“粗糙度图”;至;“立方体贴图”;?

Javascript Three.js:如何改变;“扩散图”;及;“粗糙度图”;至;“立方体贴图”;?,javascript,three.js,Javascript,Three.js,这是我想要使用的代码: var容器; 摄像机、场景、渲染器; 让ExrcuberUnderTarget,exrBackground; 让新的地图; 让圆环网格,平面网格; var mouseX=0, mouseY=0; var windowHalfX=window.innerWidth/2; var windowHalfY=window.innerHeight/2; var对象; init(); 制作动画(); 函数init(){ 容器=document.createElement(“div”

这是我想要使用的代码:

var容器;
摄像机、场景、渲染器;
让ExrcuberUnderTarget,exrBackground;
让新的地图;
让圆环网格,平面网格;
var mouseX=0,
mouseY=0;
var windowHalfX=window.innerWidth/2;
var windowHalfY=window.innerHeight/2;
var对象;
init();
制作动画();
函数init(){
容器=document.createElement(“div”);
container.className=“object”;
文件.正文.附件(容器);
摄像机=新的三视角摄像机(
45,
window.innerWidth/window.innerHeight,
1.
2000
);
摄像机位置z=250;
//场面
场景=新的三个。场景();
场景。添加(摄影机);
//经理
函数loadModel(){
THREE.DefaultLoadingManager.onLoad=函数(){
pmremGenerator.dispose();
};
// -----------------
函数LoadObjectAndAndEndVMAP(){
const textureLoader=新的三个.textureLoader();
const diffuseMap=textureLoader.load('https://threejs.org/examples/textures/brick_diffuse.jpg');
常量粗糙度映射=textureLoader.load('https://threejs.org/examples/textures/brick_roughness.jpg');
遍历(函数(子对象){
//这允许我们检查子对象是否是网格构造函数的实例
if(三个.Mesh的子实例){
child.material=新的三点网格标准材质({
颜色:#555“,
粗糙度:1.0,
金属度:0.5,
环境强度:5.0
});
child.material.envMap=newEnvMap;
child.material.map=扩散贴图;
child.material.roughnessMap=粗糙度图;
child.material.needsUpdate=true;
//有时.obj文件中缺少一些顶点法线,ThreeJs将计算它们
}
});
object.position.y=-90;
场景。添加(对象);
}
const pmremGenerator=新的三个.pmremGenerator(渲染器);
pmremGenerator.compileeRequestAngularShader();
新的3.EXRLoader()
.setDataType(三个.UnsignedByteType)
.装载(
"https://threejs.org/examples/textures/piz_compressed.exr",
功能(纹理){
exrCubeRenderTarget=pmremGenerator.fromEquirectangle(纹理);
exrBackground=exrCubeRenderTarget.texture;
newEnvMap=exrCubeRenderTarget?exrCubeRenderTarget.texture:空;
LoadObjectAndAndEndVMap();//加载纹理后添加环境贴图
texture.dispose();
}
);
renderer.toneMapping=THREE.ACESFilmicToneMapping;
renderer.outpunecoding=3.sRGBEncoding;
}
var manager=新的三个加载管理器(加载模型);
manager.onProgress=功能(项目、已加载、总计){
控制台日志(项目、已加载、总计);
};
var装入器=新的三个。对象装入器(管理器);
装载机(
"https://threejs.org/examples/models/obj/female02/female02.obj",
功能(obj){
对象=obj;
}
);
//
renderer=new THREE.WebGLRenderer({
反别名:对
});
renderer.setPixelRatio(window.devicePixelRatio);
renderer.setSize(window.innerWidth、window.innerHeight);
container.appendChild(renderer.domeElement);
document.addEventListener(“mousemove”,onDocumentMouseMove,false);
//
addEventListener(“resize”,onWindowResize,false);
}
函数onWindowResize(){
windowHalfX=window.innerWidth/2;
windowHalfY=window.innerHeight/2;
camera.aspect=window.innerWidth/window.innerHeight;
camera.updateProjectMatrix();
renderer.setSize(window.innerWidth、window.innerHeight);
}
onDocumentMouseMove函数(事件){
mouseX=(event.clientX-windowHalfX)/2;
mouseY=(event.clientY-windowHalfY)/2;
}
//
函数animate(){
请求动画帧(动画);
render();
}
函数render(){
camera.position.x+=(mouseX-camera.position.x)*0.05;
camera.position.y+=(-mouseY-camera.position.y)*0.05;
摄像机。注视(场景。位置);
scene.background=exrBackground;
renderer.toneMappingExposure=1.0;
渲染器。渲染(场景、摄影机);
}
正文{
保证金:0;
}

无需做太多改动即可使其金属化:

child.material=新的三点材质({
颜色:#555“,
粗糙度:0.0//