久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

用three.js在網(wǎng)頁實現(xiàn)3D模型的展示

 板橋胡同37號 2020-01-04
最近在做一個在網(wǎng)頁端展示3D模型的項目,,現(xiàn)在簡單介紹一下怎么實現(xiàn)功能。
首先,,下載three.js文件,,在threejs官網(wǎng)能下,這里附上地址鏈接一條https:///
然后,,下載解壓,,會得到three.js-master文件,在build目錄找到three.js,,這個是three.js的核心功能庫,。在example/js/loaders目錄,你會看到各種模型格式加載的js文件,。
本次以加載obj模型為例,,準備好obj和mtl文件的模型素材。創(chuàng)建場景的js文件用到基本的three.js,,加載模型的js文件用到DDSLoader.js,,MTLLoader.js,OBJLoader.js,,鏡頭的轉(zhuǎn)動用OrbitControls.js文件,。
當(dāng)然也有其他功能實現(xiàn)替代的js文件,用到的js文件不唯一,,文件路徑自行設(shè)置,。本次實例導(dǎo)入如圖js文件
實現(xiàn)的Javascript代碼如下,注釋會解釋各塊代碼是干嘛用,。                         
var camera, controls, scene, renderer;
init();
animate();
// 加載進度
var onProgress = function(xhr) {
        if (xhr.lengthComputable) {
            var percentComplete = xhr.loaded / xhr.total * 100;
            var percent = document.getElementById('info');
            percent.innerText = Math.round(percentComplete, 2) + '% 已經(jīng)加載';
        }
    };
    var onError = function(xhr) {};
//當(dāng)mtl中引用了dds類型的圖片時,,還需導(dǎo)入DDSLoader文件
THREE.Loader.Handlers.add( /\.dds$/i, new THREE.DDSLoader() );
//mtl文件加載器
var mtlLoader = new THREE.MTLLoader();
//你的模型材質(zhì)文件的目錄地方路徑
    mtlLoader.setPath('model/yjq/');
//導(dǎo)入材質(zhì)文件
    mtlLoader.load('yjq.mtl', function(materials) {
        materials.preload();
        //ob文件加載器
        var objLoader = new THREE.OBJLoader();
        objLoader.setMaterials(materials);
//你的模型文件的目錄地方路徑
        objLoader.setPath('model/yjq');
        objLoader.load('yjq.obj', function(object) {
//這里的object參數(shù)就是模型加載方法的回調(diào)函數(shù),object就是你的模型,,下面的屬性自行設(shè)置
            // object.position.y = 0;
            // object.rotation.x = -90;
            // object.rotation.y = 90;
            // object.rotation.z = 90;
            //自行調(diào)整模型比例
            object.scale.set(10, 10, 10);
            //加入到場景中
            scene.add(object);
        }, onProgress, onError);
    });
function init() {
    //創(chuàng)建一個透視相機,,設(shè)置相機視角60度,,最遠能看1000,最近能看1
    camera = new THREE.PerspectiveCamera( 60, window.innerWidth / window.innerHeight, 1, 1000 );
    camera.position.set( 0, 200, 400 );    //設(shè)置相機位置
    //控制相機
    controls = new THREE.OrbitControls( camera );
//設(shè)置相機移動距離
    controls.minDistance = 100;
    controls.maxDistance = 900;
    //創(chuàng)建場景
    scene = new THREE.Scene();
    //設(shè)置場景背景色,,灰色
    scene.background = new THREE.Color( 0xeeeeee );
    //場景中添加網(wǎng)格輔助
    scene.add( new THREE.GridHelper( 400, 10 ) );
// 燈光
// 給場景添加一個環(huán)境光
    var ambientLight = new THREE.AmbientLight( 0xfff );
    scene.add( ambientLight );
// 給場景添加一個半球光出來
    hemiLight = new THREE.HemisphereLight( 0xffffff, 0xffffff, 0.8 );
    hemiLight.color.setHSL( 0.6, 1, 0.6 );
    hemiLight.groundColor.setHSL( 0.095, 1, 0.75 );
    hemiLight.position.set( 0, 50, 0 );
    scene.add( hemiLight );
// 給場景添加一個平行光出來
    dirLight = new THREE.DirectionalLight( 0xffffff, 0.8 );
    dirLight.color.setHSL( 0.1, 1, 0.95 );
    dirLight.position.set( -1, 1.75, 1 );
    dirLight.position.multiplyScalar( 30 );
    scene.add( dirLight );
    dirLight.castShadow = true;
    //實例化一個渲染器s
    renderer = new THREE.WebGLRenderer( { antialias: true } );
    renderer.setPixelRatio( window.devicePixelRatio );
    renderer.setSize( window.innerWidth, window.innerHeight );
    document.body.appendChild( renderer.domElement );
    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 );
}
代碼直接粘貼復(fù)制就能用,,但原理和細節(jié)這里的篇幅解釋不了的那么多
谷歌瀏覽器展示效果如下,720度旋轉(zhuǎn)和放大縮小都可以,。最后,,如果想繼續(xù)了解更多的功能,可以參考threejs官方的案例,。
本文完~

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多