gpt4 book ai didi

three.js - 从 MeshBasicMaterial 切换到 MeshStandardMaterial 只是显示黑屏

转载 作者:行者123 更新时间:2023-12-02 18:54:29 25 4
gpt4 key购买 nike

Three.js 问题在这里。不确定为什么当我在第 10 行调用 MeshStandardMaterial 时我的代码不工作。当我将它切换到 MeshBasicMaterial 时它工作,但我需要 MeshStandardMaterial 的功能以便将 .bumpMap 添加到我的渲染中。有人可以帮忙吗?

const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );

const renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );

const geometry = new THREE.SphereGeometry(5,32,32);
// const texture = new THREE.TextureLoader().load( 'textures/8081_earthmap10k.jpg' );
const material = new THREE.MeshBasicMaterial( { color: 0xffffff } );




const cube = new THREE.Mesh( geometry, material );
scene.add( cube );

camera.position.z = 15;

const animate = function () {

requestAnimationFrame( animate );

// cube.rotation.x += 0.01;
cube.rotation.y += 0.01;

renderer.render( scene, camera );

};

animate();

上面的代码可以正常工作并在黑色背景上显示一个旋转的白色 (0xffffff) 球体,但下面的代码不起作用,它只显示黑色背景..

const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );

const renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );

const geometry = new THREE.SphereGeometry(5,32,32);
// const texture = new THREE.TextureLoader().load( 'textures/8081_earthmap10k.jpg' );
const material = new THREE.MeshStandardMaterial( { color: 0xffffff } );




const cube = new THREE.Mesh( geometry, material );
scene.add( cube );

camera.position.z = 15;

const animate = function () {

requestAnimationFrame( animate );

// cube.rotation.x += 0.01;
cube.rotation.y += 0.01;

renderer.render( scene, camera );

};

animate();

同样,我唯一要改变的是第 10 行对 MeshStandardMaterial 的调用......我在这里遗漏了什么吗?

最佳答案

MeshBasicMaterial 是一种不发光的 Material 。 MeshStandardMaterial 是一种光照 Material 。

因此,只要您不向场景添加灯光或向 Material 添加环境贴图,具有 MeshStandardMaterial 的对象将是黑色的。

关于three.js - 从 MeshBasicMaterial 切换到 MeshStandardMaterial 只是显示黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66342169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com