初學WebGL引擎-BabylonJS:第1篇-基礎構造


    繼續上篇隨筆

    步驟如下:

    一:http://www.babylonjs.com/中下載源碼。獲取其中babylon.2.2.js。建立gulp項目

    二:參見http://doc.babylonjs.com/部分,建立第一個demo

    以下是個人完成后的demo分享

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html" charset="utf-8"/>
    <title>Babylon - Getting Started</title>
    <!-- link to the last version of babylon -->
    <script src="babylon.2.2.max.js"></script>
</head>
<style>
    html, body {
        overflow: hidden;
        width   : 100%;
        height  : 100%;
        margin  : 0;
        padding : 0;
    }

    #renderCanvas {
        width   : 100%;
        height  : 100%;
        touch-action: none;
    }
</style>

<body>
    <canvas id="renderCanvas"></canvas>
    <script>
    window.addEventListener('DOMContentLoaded', function() {
        //獲取畫布對象
       var canvas = document.getElementById('renderCanvas');
       //加載巴比倫3D引擎
       var engine = new BABYLON.Engine(canvas, true);
       //創建場景
       var createScene = function() {
            // 通過引擎創建基本場景
            var scene = new BABYLON.Scene(engine);

            // 創建一個開放免費的相機,地點位於x:0(橫向距離), y:5(高度), z:-10(縱向距離)
            var camera = new BABYLON.FreeCamera('camera1', new BABYLON.Vector3(9, 5,-10), scene);

            // 相機到場景的起源
            camera.setTarget(BABYLON.Vector3.Zero());

            // 相機放置畫布
            camera.attachControl(canvas, false);

            // 創建基本光源, 目標位於 x:0,y:1,z:0 -(由天空出現)
            var light = new BABYLON.HemisphericLight('light1', new BABYLON.Vector3(0,1,0), scene);

            // 創建一個內置的“球”的形狀,它的構造函數包括5個參數:名稱、寬度、深度、細分,場景(例子中僅4個參數)
            var sphere = BABYLON.Mesh.CreateSphere('sphere1', 16, 2, scene);

            // 球向上移動高的二分之一距離
            sphere.position.y = 1;

            // 創建一個內置的“地面”,它的構造函數包括5個參數:名稱、寬度、深度、細分,場景
            var ground = BABYLON.Mesh.CreateGround('ground1', 6, 6, 2, scene);

            // 返回該場景
            return scene;
        }
        //賦予該場景於變量
        var scene = createScene();
        //在引擎中循環運行這個場景
        engine.runRenderLoop(function(){
            scene.render();
        });
        //追加事件:帆布與大小調整程序
        window.addEventListener('resize', function(){
            engine.resize();
        });
    });
    

</script>
</body>
</html>

    完成這個后,一個初步的思路達成。

    一個基礎構造分為了:鏡頭+渲染+場景。輔助部分包括光源+模型+畫布

    坐標點的三部分:X(長),Y(高度),Z(深度)

    BABYLON對象下擁有相機的定義,光源的定義

    BABYLON.Mesh對象下有個簡單物體的定義


 

    接着便發現了更合適的學習方式:http://www.babylonjs-playground.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM