【问题标题】:three.js texture not showing and is blackthree.js 纹理未显示且为黑色
【发布时间】:2020-04-17 04:46:16
【问题描述】:

我正在尝试用飞机创建一个简单的场景。它会有纹理

这里是代码:https://jsfiddle.net/0w6vfLt4/1/

但是纹理是黑色的。如果您将map: texture 更改为color: white,您将看到一个白色平面。意味着其他一切都在工作,但纹理

我做错了什么?以及如何解决这个问题?

【问题讨论】:

    标签: javascript three.js


    【解决方案1】:

    这与Using textures in THREE.js有关

    尝试使用带有回调的加载函数,如https://threejs.org/docs/index.html#api/en/loaders/TextureLoader 并将纹理设置为像https://threejs.org/docs/#api/en/textures/Texture.repeat中一样重复

    //Create a scene, camera and a renderer
    var scene = new THREE.Scene();
    var camera = new THREE.PerspectiveCamera(90, window.innerWidth / window.innerHeight, 1, 1000 );
    camera.position.z = 10;
    var renderer = new THREE.WebGLRenderer();
    renderer.setSize(window.innerWidth, window.innerHeight);
    
    //Load the texture
    var loader = new THREE.TextureLoader();
    loader.load(
      "https://cdn.glitch.com/62a3a7d1-3c19-4fb7-b1ef-a1c65ba38596%2Fboard.svg?v=1577426114562",
      
      function (texture) {
    	  var material = new THREE.MeshBasicMaterial({ map: texture });
      texture.wrapS = THREE.RepeatWrapping;
      texture.wrapT = THREE.RepeatWrapping;
      texture.repeat.set( 4, 4 );
      
      //Create a 8x8 plane with texture
      var geometry = new THREE.PlaneBufferGeometry(8, 8);
      //var material = new THREE.MeshBasicMaterial({ map: texture });
      var plane = new THREE.Mesh(geometry, material);
      scene.add(plane);
    
      //Render the scene
      renderer.render(scene, camera);
      document.body.appendChild(renderer.domElement);
      },
      
    	undefined,
    
    	function ( err ) {
    		console.error( 'An error happened.' );
    	}
    
    );
    body {
      margin: 0;
      font-family: monospace;
    }
    canvas {
      width: 100%;
      height: 100%;
    }
    <script src="https://threejs.org/build/three.js"></script>

    【讨论】:

      【解决方案2】:

      纹理图像的分辨率应为 512 x 512 像素才能在移动设备中使用。我在移动设备中遇到了黑色纹理的问题。我将纹理图像的分辨率从 2000 x 2000 像素降低到 512 x 512 像素,效果很好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-15
        • 2013-06-11
        • 1970-01-01
        • 1970-01-01
        • 2012-07-14
        • 1970-01-01
        • 2023-02-03
        相关资源
        最近更新 更多