three.js加载纹理

<!DOCTYPE html>
<html lang="en">
<head>
    <title></title>
    <meta charset="utf-8">
    <style>
        body {
            margin: 0px;
            background-color: #000000;
            overflow: hidden;
        }
    </style>
</head>
<body>

<script src="../js/three.js"></script>

<script>
    var camera,scene,renderer;
    var mesh;
    init();
    animate();
function init() {
    //初始化渲染器
    renderer=new THREE.WebGLRenderer();
    //设置渲染窗口大小
    renderer.setSize(window.innerWidth,window.innerHeight);
    //将渲染内容显示到body中
    document.body.appendChild(renderer.domElement);

    //初始化相机
    camera=new THREE.PerspectiveCamera(70,window.innerWidth/window.innerHeight,1,1000);
    camera.position.z=400;
    //初始化场景
    scene=new THREE.Scene();

    //画一个平面
    var geometry=new THREE.PlaneGeometry(500,300,1,1);
    //设置UV坐标,必须逆时针方向
    geometry.vertices[0].uv=new THREE.Vector2(0,0);
    geometry.vertices[1].uv=new THREE.Vector2(1,0);
    geometry.vertices[2].uv=new THREE.Vector2(1,1);
    geometry.vertices[3].uv=new THREE.Vector2(0,1);

    //价值纹理
    var texture=THREE.ImageUtils.loadTexture("textures/a.jpg",null,function (t) {

    });
    //定义材质
    var material=new THREE.MeshBasicMaterial({map:texture});
    var mesh=new THREE.Mesh(geometry,material);
    scene.add(mesh);

    //监听窗口大小改变
    window.addEventListener('resize',onWindowResize,false);
}

//窗口大小改变时,更新投影矩阵
function onWindowResize() {
    //更新宽高比
    camera.aspect=window.innerWidth/window.innerHeight;
    camera.updateProjectionMatrix();
    renderer.setSize(window.innerWidth,window.innerHeight);
}

function animate() {
    requestAnimationFrame(animate);
    renderer.render(scene,camera);
}

</script>

</body>
</html>


猜你喜欢

转载自blog.csdn.net/hb707934728/article/details/78772405