我试图在运行时在加载的three.js .obj上交换图像纹理.这是直接来自three.js示例的代码,略有修改:
var container, stats;
var camera, scene, renderer;
var mouseX = 0, mouseY = 0;
var windowHalfX = window.innerWidth / 2;
var windowHalfY = window.innerHeight / 2;
init();
animate();
function init() {
container = document.createElement( 'div' );
document.body.appendChild( container );
camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 2000 );
camera.position.z = 100;
//scene
scene = new THREE.Scene();
var ambient = new THREE.AmbientLight( 0x101030 );
scene.add( ambient );
var directionalLight = new THREE.DirectionalLight( 0xffeedd );
directionalLight.position.set( 0, 0, …Run Code Online (Sandbox Code Playgroud) 我想从 GLTF 模型覆盖/打开和关闭纹理,但找不到如何或是否可能。我能够完美地加载它,但是当我尝试重新加载或覆盖纹理时,没有任何反应或出现一些错误。我尝试的最后一件事没有给我任何错误,但模型保留了原始纹理。我还尝试卸载模型并重新加载其他纹理,但也没有成功。
我正在使用来自three.js docs 的标准THREE.GLTFLoader 示例,只是更改了3d 加载模型并添加了一个函数来在一段时间后执行此更改。我可能会混淆一切,如果您能提供帮助,我将不胜感激,提前致谢。
访问对我没有帮助的链接: ThreeJS:从场景中删除对象; 三.js 在点击时切换对象; 如何动态更改 GLTF 模型的纹理?; 在运行时更改three.js中加载的.obj的纹理;在运行时在 THREE.JS 和 GLTF 中导入另一个纹理
我正在使用的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<title>three.js webgl - glTF loader</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<style>
body {
font-family: Monospace;
background-color: #000;
color: #fff;
margin: 0px;
overflow: hidden;
}
#info {
color: #fff;
position: absolute;
top: 10px;
width: 100%;
text-align: center;
z-index: 100;
display:block;
}
#info a {
color: #75ddc1;
font-weight: …Run Code Online (Sandbox Code Playgroud)