09three.js-dat.GUI和stats.js庫的使用

dat.gui效果

dat.gui.png

stats庫.png

1氓英、stats.js庫的使用。下載js文件盈蛮,引入文件。
在body中添加一個(gè)div標(biāo)簽用于stats路克。初始化和使用見下面代碼殴俱,記得要不斷更新。

<div id="Stats-output"></div>
var stats = initStats();
function initStats() {
        var stats = new Stats();
        stats.setMode(0); // 0: fps, 1: ms 
        stats.domElement.style.position = 'absolute';
        stats.domElement.style.left = '0px';
        stats.domElement.style.top = '0px';
        document.getElementById("Stats-output").appendChild(stats.domElement);
        return stats;
    }
function run() {
        stats.update();      
        requestAnimationFrame(run);
        renderer.render(scene,camera);
    }

function run() {
        stats.update();
        var allChildren = scene.children;
        for(var i=5;i<allChildren.length;i++){
            allChildren[i].rotation.y += 0.04;
        }
        camera.position.y = controls.hAngle;
        camera.position.x = 40*Math.sin(controls.sAngle/180*Math.PI);
        camera.position.z = 40*Math.cos(controls.sAngle/180*Math.PI);
        camera.lookAt(scene.position);
        requestAnimationFrame(run);
        renderer.render(scene,camera);
    }
    run();

2抓狭、 dat.GUI庫的使用伯病。

   var controls = new function () {
        this.sAngle = 45;
        this.hAngle = 40;
        this.numberOfObjects = scene.children.length;
        this.addCube = function () {
            var cubeSize = Math.ceil((Math.random()*3));
            var cubeGe = new THREE.BoxGeometry(cubeSize,cubeSize,cubeSize);
            var cubeMe = new THREE.MeshLambertMaterial({color:0xFFFFFF*Math.random()});
            var cube = new THREE.Mesh(cubeGe,cubeMe);
            cube.castShadow = true;
            cube.name = "cube-" + scene.children.length;
            cube.position.x = -25+Math.round(Math.random()*50);
            cube.position.y = Math.round(Math.random()*10);
            cube.position.z = -25+Math.round(Math.random()*50);

            scene.add(cube);
            this.numberOfObjects = scene.children.length;
        }

        this.removeCube = function () {
            var allChildren = scene.children;
            var lastObject = allChildren[allChildren.length-1];
            if(lastObject instanceof THREE.Mesh){
                scene.remove(lastObject);
                this.numberOfObjects = scene.children.length;
            }
        }

        this.outputObjects = function () {
            console.log(scene.children);
        }

    }
    var gui = new dat.GUI();
    gui.add(controls,'sAngle',-360,360,"相機(jī)角度");
    gui.add(controls,'hAngle',0,90,"相機(jī)高度");
    gui.add(controls,'addCube','添加立方體');
    gui.add(controls,'removeCube','刪除立方體');
    gui.add(controls, 'outputObjects','打印場景中的物體');
    gui.add(controls,'numberOfObjects','場景對(duì)象數(shù)量').listen(); //為什么第一次輸出的數(shù)量比實(shí)際少一個(gè)呢?

    function run() {
        stats.update();
        var allChildren = scene.children;
        for(var i=5;i<allChildren.length;i++){
            allChildren[i].rotation.y += 0.04;
        }
        camera.position.y = controls.hAngle;
        camera.position.x = 40*Math.sin(controls.sAngle/180*Math.PI);
        camera.position.z = 40*Math.cos(controls.sAngle/180*Math.PI);
        camera.lookAt(scene.position);
        requestAnimationFrame(run);
        renderer.render(scene,camera);
    }
    run();
image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末否过,一起剝皮案震驚了整個(gè)濱河市狱从,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌叠纹,老刑警劉巖季研,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異誉察,居然都是意外死亡与涡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門持偏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來驼卖,“玉大人,你說我怎么就攤上這事鸿秆∽眯螅” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵卿叽,是天一觀的道長桥胞。 經(jīng)常有香客問我,道長考婴,這世上最難降的妖魔是什么贩虾? 我笑而不...
    開封第一講書人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮沥阱,結(jié)果婚禮上缎罢,老公的妹妹穿的比我還像新娘。我一直安慰自己考杉,他們只是感情好策精,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著崇棠,像睡著了一般咽袜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上易茬,一...
    開封第一講書人閱讀 49,806評(píng)論 1 290
  • 那天酬蹋,我揣著相機(jī)與錄音及老,去河邊找鬼抽莱。 笑死范抓,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的食铐。 我是一名探鬼主播匕垫,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼虐呻!你這毒婦竟也來了象泵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤斟叼,失蹤者是張志新(化名)和其女友劉穎偶惠,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體朗涩,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡忽孽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谢床。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兄一。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖识腿,靈堂內(nèi)的尸體忽然破棺而出出革,到底是詐尸還是另有隱情,我是刑警寧澤渡讼,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布骂束,位于F島的核電站,受9級(jí)特大地震影響成箫,放射性物質(zhì)發(fā)生泄漏栖雾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一伟众、第九天 我趴在偏房一處隱蔽的房頂上張望析藕。 院中可真熱鬧,春花似錦凳厢、人聲如沸账胧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽治泥。三九已至,卻和暖如春遮精,著一層夾襖步出監(jiān)牢的瞬間居夹,已是汗流浹背败潦。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留准脂,地道東北人劫扒。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像狸膏,于是被迫代替她去往敵國和親沟饥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容