用babylon.js画房子的里面,第一层

<!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="~/Content/scripts/babylon/babylon.js"></script>  
    <script src="~/Content/scripts/babylon/babylon.gui.min.js"></script>
    <script src="~/Content/scripts/jquery/jquery-2.0.3.min.js"></script> 
    <style>
        html, body {
            overflow: hidden;
            width: 100%;
            height: 100%;
            margin: 0;
            padding: 0;
        }

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

<body>
    <canvas id="renderCanvas"></canvas>
    <script type="text/javascript">
        var Dictionary = function () {
            this.elements = new Array();
            //Length of Dictionary
            this.length = function () {
                return this.elements.length;
            };
            //Check whether the Dictionary is empty
            this.isEmpty = function () {
                return (this.length() < 1);
            };
            //remove all elements from the Dictionary
            this.removeAll = function () {
                this.elements = new Array();
            };
            //get specify element of the dictionary
            this.element = function (index) {
                var rlt = null;
                if (index >= 0 && index < this.elements.length) {
                    rlt = this.elements[index];
                }
                return rlt;
            }
            //check whether the Dictionary contains this key
            this.Exists = function (key) {
                var rlt = false;
                try {
                    for (var i = 0, iLen = this.length(); i < iLen; i++) {
                        if (this.elements[i].key == key) {
                            rlt = true;
                            break;
                        }
                    }
                }
                catch (ex) {
                }
                return rlt;
            };
            //check whether the Dictionary contains this value
            this.containsValue = function (value) {
                var rlt = false;
                try {
                    for (var i = 0, iLen = this.length(); i < iLen; i++) {
                        if (this.elements[i].value == value) {
                            rlt = true;
                            break;
                        }
                    }
                }
                catch (ex) {
                }
                return rlt;
            };
            //remove this key from the Dictionary
            this.remove = function (key) {
                var rlt = false;
                try {
                    for (var i = 0, iLen = this.length(); i < iLen; i++) {
                        if (this.elements[i].key == key) {
                            this.elements.splice(i, 1);
                            rlt = true;
                            break;
                        }
                    }
                }
                catch (ex) {
                }
                return rlt;
            };
            //add this key/value to the Dictionary,if key is exists,replace the value
            this.add = function (key, value) {
                this.remove(key);
                this.elements.push({
                    key: key,
                    value: value
                });
            };
            //add this key/value to the Dictionary,if key is exists,append value
            this.set = function (key, value) {
                var arr = this.getItem(key);
                if (arr != null) {
                    if (typeof (arr) == "object") {
                        arr.unshift.apply(arr, value);
                        value = arr;
                    }
                    else {
                        var array = [];
                        array.push(arr);
                        array.unshift.apply(array, value);
                        value = array;
                    }
                    this.remove(key);
                }
                this.elements.push({
                    key: key,
                    value: value
                });
            }
            //get value of the key
            this.getItem = function (key) {
                var rlt = null;
                try {
                    for (var i = 0, iLen = this.length(); i < iLen; i++) {
                        if (this.elements[i].key == key) {
                            rlt = this.elements[i].value;
                            break;
                        }
                    }
                }
                catch (ex) {
                }
                return rlt;
            };
            //get all keys of the dictionary
            this.keys = function () {
                var arr = [];
                for (var i = 0, iLen = this.length(); i < iLen; i++) {
                    arr.push(this.elements[i].key);
                }
                return arr;
            }
            //get all values of the dictionary
            this.values = function () {
                var arr = [];
                for (var i = 0, iLen = this.length(); i < iLen; i++) {
                    arr.push(this.elements[i].value);
                }
                return arr;
            }
        }
        //初始的元素参数队列
        var dicS = new Dictionary();
        //盒子对象队列
        var dicW = new Dictionary();
    </script>
    <script type="text/javascript">
        //四边墙
        var wh01 = { posX: 0, posY: 6, posZ: 185, scaX: 84.9, scaY: 3, scaZ: 0.15, name: "z正墙-横边墙", size: 6 };
        var wh02 = { posX: -255, posY: 6, posZ: 0, scaX: 0.15, scaY: 3, scaZ: 61.8, name: "x负墙-竖边墙", size: 6 };
        var wh03 = { posX: -177.5, posY: 6, posZ: -185, scaX: 25.8, scaY: 3, scaZ: 0.15, name: "z负墙-横边墙1", size: 6 };
        var wh031 = { posX: 93, posY: 6, posZ: -185, scaX: 54, scaY: 3, scaZ: 0.15, name: "z负墙-横边墙2", size: 6 };
        var wh04 = { posX: 255, posY: 6, posZ: 0, scaX: 0.15, scaY: 3, scaZ: 61.8, name: "x正墙-竖边墙", size: 6 };
        //横墙
        var wh05 = { posX: -177.5, posY: 6, posZ: -141, scaX: 25.8, scaY: 3, scaZ: 0.15, name: "z负墙-办公室", size: 6 };
        var wh06 = { posX: -177.5, posY: 6, posZ: -86, scaX: 25.8, scaY: 3, scaZ: 0.15, name: "z负墙-办公室", size: 6 };
        var wh07 = { posX: -177.5, posY: 6, posZ: -18, scaX: 25.8, scaY: 3, scaZ: 0.15, name: "z负墙-慢走丝", size: 6 };
        var wh08 = { posX: -120, posY: 6, posZ: 70, scaX: 6.8, scaY: 3, scaZ: 0.15, name: "z负墙-电火花", size: 6 };
        var wh09 = { posX: -39.8, posY: 6, posZ: -102.5, scaX: 9.8, scaY: 3, scaZ: 0.15, name: "z负墙-电梯", size: 6 };
        var wh10 = { posX: -39.8, posY: 6, posZ: -140, scaX: 9.8, scaY: 3, scaZ: 0.15, name: "z负墙-电梯", size: 6 };
        var wh11 = { posX: 100, posY: 6, posZ: -102.5, scaX: 28, scaY: 3, scaZ: 0.15, name: "z负墙-仓库", size: 6 };
        var wh12 = { posX: 230.5, posY: 6, posZ: -102.5, scaX: 8, scaY: 3, scaZ: 0.15, name: "z负墙-焊工组", size: 6 };
        var wh13 = { posX: 93, posY: 6, posZ: 120, scaX: 54, scaY: 3, scaZ: 0.15, name: "z负墙-焊工组", size: 6 };
        var wh14 = { posX: 53, posY: 0, posZ: -60.5, scaX: 41, scaY: 0.3, scaZ: 0.15, name: "z负墙-车床", size: 6 };
        //竖墙
        var wh15 = { posX: -100, posY: 6, posZ: 155, scaX: 0.15, scaY: 3, scaZ: 10, name: "x负墙-磨床组", size: 6 };
        var wh16 = { posX: -100, posY: 6, posZ: 66, scaX: 0.15, scaY: 3, scaZ: 10, name: "x负墙-磨床组", size: 6 };
        var wh17 = { posX: -100, posY: 6, posZ: -20, scaX: 0.15, scaY: 3, scaZ: 10, name: "x负墙-慢走丝", size: 6 };
        var wh18 = { posX: -100, posY: 6, posZ: -96, scaX: 0.15, scaY: 3, scaZ: 4, name: "x负墙-办公室", size: 6 };
        var wh19 = { posX: -140, posY: 6, posZ: 26, scaX: 0.15, scaY: 3, scaZ: 14.8, name: "x负墙-电火花", size: 6 };
        var wh20 = { posX: -100, posY: 6, posZ: -140, scaX: 0.15, scaY: 3, scaZ: 5, name: "x负墙-办公室", size: 6 };
        var wh21 = { posX: -100, posY: 6, posZ: -176.5, scaX: 0.15, scaY: 3, scaZ: 3, name: "x负墙-办公室", size: 6 };
        var wh22 = { posX: -69, posY: 6, posZ: -110.2, scaX: 0.15, scaY: 3, scaZ: 2.7, name: "x负墙-电梯", size: 6 };
        var wh221 = { posX: -69, posY: 6, posZ: -140, scaX: 0.15, scaY: 3, scaZ: 3, name: "x负墙-电梯1", size: 6 };
        var wh222 = { posX: -69, posY: 6, posZ: -176.5, scaX: 0.15, scaY: 3, scaZ: 3, name: "x负墙-电梯2", size: 6 };
        var wh23 = { posX: -10, posY: 6, posZ: -143.7, scaX: 0.15, scaY: 3, scaZ: 13.9, name: "x负墙-电梯", size: 6 };
        var wh24 = { posX: 110, posY: 6, posZ: -143.7, scaX: 0.15, scaY: 3, scaZ: 13.9, name: "x正墙-仓库", size: 6 };
        var wh25 = { posX: 207, posY: 6, posZ: 19, scaX: 0.15, scaY: 3, scaZ: 33.5, name: "x正墙-焊工组", size: 6 };
        //慢走丝
        var wh26 = { posX: -240, posY: 5, posZ: -40, scaX: 1, scaY: 1, scaZ: 1, name: "慢走丝", size: 22, status: 1 };
        var wh27 = { posX: -200, posY: 5, posZ: -40, scaX: 1, scaY: 1, scaZ: 1, name: "慢走丝", size: 22, status: 1 };
        var wh28 = { posX: -160, posY: 5, posZ: -40, scaX: 1, scaY: 1, scaZ: 1, name: "慢走丝", size: 22, status: 1 };
        var wh29 = { posX: -120, posY: 5, posZ: -40, scaX: 1, scaY: 1, scaZ: 1, name: "慢走丝", size: 22, status: 1 };
        //电火花
        var wh30 = { posX: -120, posY: 5, posZ: -0, scaX: 1, scaY: 1, scaZ: 1, name: "电火花", size: 22, status: 1 };
        var wh31 = { posX: -120, posY: 5, posZ: 50, scaX: 1, scaY: 1, scaZ: 1, name: "电火花", size: 22, status: 1 };
        //卧加
        var wh32 = { posX: -40, posY: 6, posZ: 100, scaX: 2, scaY: 0.8, scaZ: 1.5, name: "卧加18", size: 22, status: 1, disp: "s3c2" };
        var wh33 = { posX: 26, posY: 6, posZ: 100, scaX: 2, scaY: 0.8, scaZ: 1.5, name: "卧加19", size: 22, status: 1, disp: "s3c3" };
        var wh34 = { posX: 92, posY: 6, posZ: 100, scaX: 2, scaY: 0.8, scaZ: 1.5, name: "卧加20", size: 22, status: 1, disp: "s3c4" };
        var wh35 = { posX: 158, posY: 6, posZ: 100, scaX: 2, scaY: 0.8, scaZ: 1.5, name: "卧加21", size: 22, status: 1, disp: "s3c5" };
        //立加
        var wh36 = { posX: -50, posY: 5, posZ: 0, scaX: 1, scaY: 1, scaZ: 1, name: "立加9", size: 22, status: 1, disp: "s7c5" };
        var wh37 = { posX: -20, posY: 5, posZ: 0, scaX: 1, scaY: 1, scaZ: 1, name: "立加10", size: 22, status: 1, disp: "s7c6" };
        var wh38 = { posX: 10, posY: 5, posZ: 0, scaX: 1, scaY: 1, scaZ: 1, name: "立加11", size: 22, status: 1, disp: "s7c7" };
        var wh39 = { posX: 40, posY: 5, posZ: 0, scaX: 1, scaY: 1, scaZ: 1, name: "立加12", size: 22, status: 1, disp: "s7c8" };
        var wh40 = { posX: 70, posY: 5, posZ: 0, scaX: 1, scaY: 1, scaZ: 1, name: "立加13", size: 22, status: 1, disp: "s7c9" };
        var wh41 = { posX: 130, posY: 5, posZ: 0, scaX: 1, scaY: 1, scaZ: 1, name: "立加14", size: 22, status: 1, disp: "s7c11" };
        var wh42 = { posX: 158, posY: 5, posZ: 0, scaX: 1, scaY: 1, scaZ: 1, name: "立加15", size: 22, status: 1, disp: "s7c12" };
        var wh43 = { posX: -50, posY: 5, posZ: -40, scaX: 1, scaY: 1, scaZ: 1, name: "立加8", size: 22, status: 1, disp: "s8c1" };
        var wh45 = { posX: -20, posY: 5, posZ: -40, scaX: 1, scaY: 1, scaZ: 1, name: "立加7", size: 22, status: 1, disp: "s8c2" };
        var wh46 = { posX: 10, posY: 5, posZ: -40, scaX: 1, scaY: 1, scaZ: 1, name: "立加6", size: 22, status: 1, disp: "s8c3" };
        var wh47 = { posX: 40, posY: 5, posZ: -40, scaX: 1, scaY: 1, scaZ: 1, name: "立加5", size: 22, status: 1, disp: "s8c4" };
        var wh48 = { posX: 70, posY: 5, posZ: -40, scaX: 1, scaY: 1, scaZ: 1, name: "立加4", size: 22, status: 1, disp: "s8c5" };
        var wh49 = { posX: 100, posY: 5, posZ: -40, scaX: 1, scaY: 1, scaZ: 1, name: "立加3", size: 22, status: 1, disp: "s8c6" };
        var wh50 = { posX: 130, posY: 5, posZ: -40, scaX: 1, scaY: 1, scaZ: 1, name: "立加2", size: 22, status: 1, disp: "s8c7" };
        var wh51 = { posX: 158, posY: 5, posZ: -40, scaX: 1, scaY: 1, scaZ: 1, name: "立加1", size: 22, status: 1, disp: "s8c8" };
        var w241 = { posX: 130, posY: 5, posZ: 45, scaX: 1, scaY: 1, scaZ: 1, name: "立加17", size: 22, status: 1, disp: "s6c4" };
        var w242 = { posX: 158, posY: 5, posZ: 45, scaX: 1, scaY: 1, scaZ: 1, name: "立加16", size: 22, status: 1, disp: "s6c5" };
        //车床
        var wh52 = { posX: -52, posY: 5, posZ: -75, scaX: 1, scaY: 1, scaZ: 1, name: "车床", size: 18, status: 1 };
        var wh53 = { posX: 00, posY: 5, posZ: -75, scaX: 1, scaY: 1, scaZ: 1, name: "车床", size: 18, status: 1 };
        var wh54 = { posX: 20, posY: 5, posZ: -75, scaX: 1, scaY: 1, scaZ: 1, name: "车床", size: 18, status: 1 };
        var wh55 = { posX: 50, posY: 5, posZ: -75, scaX: 1, scaY: 1, scaZ: 1, name: "车床", size: 18, status: 1 };
        var wh56 = { posX: 70, posY: 5, posZ: -75, scaX: 1, scaY: 1, scaZ: 1, name: "车床", size: 18, status: 1 };
        var wh57 = { posX: 100, posY: 5, posZ: -75, scaX: 1, scaY: 1, scaZ: 1, name: "车床", size: 18, status: 1 };
        var wh58 = { posX: 120, posY: 5, posZ: -75, scaX: 1, scaY: 1, scaZ: 1, name: "车床", size: 18, status: 1 };
        var wh59 = { posX: 150, posY: 5, posZ: -75, scaX: 1, scaY: 1, scaZ: 1, name: "车床", size: 18, status: 1 };
        var wh60 = { posX: 170, posY: 5, posZ: -75, scaX: 1, scaY: 1, scaZ: 1, name: "车床", size: 18, status: 1 };
        //快走丝
        var wh61 = { posX: -55, posY: 5, posZ: 172, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh62 = { posX: -30, posY: 5, posZ: 172, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh63 = { posX: -5, posY: 5, posZ: 172, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh64 = { posX: 20, posY: 5, posZ: 172, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh65 = { posX: 45, posY: 5, posZ: 172, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh66 = { posX: 70, posY: 5, posZ: 172, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh67 = { posX: 95, posY: 5, posZ: 172, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh68 = { posX: 120, posY: 5, posZ: 172, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh69 = { posX: 145, posY: 5, posZ: 172, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh70 = { posX: 170, posY: 5, posZ: 172, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh71 = { posX: 195, posY: 5, posZ: 172, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh72 = { posX: 220, posY: 5, posZ: 172, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh73 = { posX: 245, posY: 5, posZ: 172, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh74 = { posX: -30, posY: 5, posZ: 132, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh75 = { posX: -5, posY: 5, posZ: 132, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh76 = { posX: 20, posY: 5, posZ: 132, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh77 = { posX: 45, posY: 5, posZ: 132, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh78 = { posX: 70, posY: 5, posZ: 132, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 3 };
        var wh79 = { posX: 95, posY: 5, posZ: 132, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh80 = { posX: 120, posY: 5, posZ: 132, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh81 = { posX: 145, posY: 5, posZ: 132, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh82 = { posX: 170, posY: 5, posZ: 132, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh83 = { posX: 195, posY: 5, posZ: 132, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh84 = { posX: 220, posY: 5, posZ: 132, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        var wh85 = { posX: 245, posY: 5, posZ: 132, scaX: 1, scaY: 1, scaZ: 1, name: "快走丝", size: 15, status: 1 };
        //磨床组
        var wh86 = { posX: -160, posY: 5, posZ: 0, scaX: 1.2, scaY: 1, scaZ: 0.6, name: "磨床组", size: 22, status: 1 };
        var wh87 = { posX: -199, posY: 5, posZ: 0, scaX: 1.2, scaY: 1, scaZ: 0.6, name: "磨床组", size: 22, status: 1 };
        var wh88 = { posX: -238, posY: 5, posZ: 0, scaX: 1.2, scaY: 1, scaZ: 0.6, name: "磨床组", size: 22, status: 1 };
        var wh89 = { posX: -160, posY: 5, posZ: 30, scaX: 1.2, scaY: 1, scaZ: 0.6, name: "磨床组", size: 22, status: 1 };
        var wh90 = { posX: -160, posY: 5, posZ: 60, scaX: 1.2, scaY: 1, scaZ: 0.6, name: "磨床组", size: 22, status: 1 };
        var wh91 = { posX: -238, posY: 5, posZ: 30, scaX: 1.2, scaY: 1, scaZ: 0.6, name: "磨床组", size: 22, status: 1 };
        var wh92 = { posX: -238, posY: 5, posZ: 60, scaX: 1.2, scaY: 1, scaZ: 0.6, name: "磨床组", size: 22, status: 1 };
        var wh93 = { posX: -245, posY: 5, posZ: 160, scaX: 0.6, scaY: 1, scaZ: 1.2, name: "磨床组", size: 22, status: 1 };
        var wh94 = { posX: -212.5, posY: 5, posZ: 160, scaX: 0.6, scaY: 1, scaZ: 1.2, name: "磨床组", size: 22, status: 1 };
        var wh95 = { posX: -180, posY: 5, posZ: 160, scaX: 0.6, scaY: 1, scaZ: 1.2, name: "磨床组", size: 22, status: 1 };
        var wh96 = { posX: -147.5, posY: 5, posZ: 160, scaX: 0.6, scaY: 1, scaZ: 1.2, name: "磨床组", size: 22, status: 2 };
        var wh97 = { posX: -115, posY: 5, posZ: 160, scaX: 0.6, scaY: 1, scaZ: 1.2, name: "磨床组", size: 22, status: 1 };
        var wh98 = { posX: -245, posY: 5, posZ: 124, scaX: 0.6, scaY: 1, scaZ: 1.2, name: "磨床组", size: 22, status: 1 };
        var wh99 = { posX: -245, posY: 5, posZ: 88, scaX: 0.6, scaY: 1, scaZ: 1.2, name: "磨床组", size: 22, status: 1 };
        //普车组
        var wh100 = { posX: 126, posY: 5, posZ: -115, scaX: 1, scaY: 1, scaZ: 1, name: "普车组", size: 18, status: 1 };
        var wh101 = { posX: 148, posY: 5, posZ: -115, scaX: 1, scaY: 1, scaZ: 1, name: "普车组", size: 18, status: 1 };
        var wh102 = { posX: 170, posY: 5, posZ: -115, scaX: 1, scaY: 1, scaZ: 1, name: "普车组", size: 18, status: 1 };
        var wh103 = { posX: 126, posY: 5, posZ: -144, scaX: 1, scaY: 1, scaZ: 1, name: "普车组", size: 18, status: 1 };
        var wh104 = { posX: 126, posY: 5, posZ: -173, scaX: 1, scaY: 1, scaZ: 1, name: "普车组", size: 18, status: 1 };
        var wh105 = { posX: 148, posY: 5, posZ: -173, scaX: 1, scaY: 1, scaZ: 1, name: "普车组", size: 18, status: 1 };
        var wh106 = { posX: 170, posY: 5, posZ: -173, scaX: 1, scaY: 1, scaZ: 1, name: "普车组", size: 18, status: 1 };
        var wh107 = { posX: 192, posY: 5, posZ: -173, scaX: 1, scaY: 1, scaZ: 1, name: "普车组", size: 18, status: 3 };
        var wh108 = { posX: 214, posY: 5, posZ: -173, scaX: 1, scaY: 1, scaZ: 1, name: "普车组", size: 18, status: 1 };


        var initDic = function () {
            //四边墙
            dicS.add("wh01", wh01);
            dicS.add("wh02", wh02);
            dicS.add("wh03", wh03);
            dicS.add("wh031", wh031);
            dicS.add("wh04", wh04);
            //竖墙
            dicS.add("wh05", wh05);
            dicS.add("wh06", wh06);
            dicS.add("wh07", wh07);
            dicS.add("wh08", wh08);
            dicS.add("wh09", wh09);
            dicS.add("wh10", wh10);
            dicS.add("wh11", wh11);
            dicS.add("wh12", wh12);
            dicS.add("wh13", wh13);
            dicS.add("wh14", wh14);
            //横墙
            dicS.add("wh15", wh15);
            dicS.add("wh16", wh16);
            dicS.add("wh17", wh17);
            dicS.add("wh18", wh18);
            dicS.add("wh19", wh19);
            dicS.add("wh20", wh20);
            dicS.add("wh21", wh21);
            dicS.add("wh22", wh22);
            dicS.add("wh221", wh221);
            dicS.add("wh222", wh222);
            dicS.add("wh23", wh23);
            dicS.add("wh24", wh24);
            dicS.add("wh25", wh25);
            //慢走丝
            dicS.add("wh26", wh26);
            dicS.add("wh27", wh27);
            dicS.add("wh28", wh28);
            dicS.add("wh29", wh29);
            //电火花
            dicS.add("wh30", wh30);
            dicS.add("wh31", wh31);
            //卧加
            dicS.add("wh32", wh32);
            dicS.add("wh33", wh33);
            dicS.add("wh34", wh34);
            dicS.add("wh35", wh35);
            //立加
            dicS.add("wh36", wh36);
            dicS.add("wh37", wh37);
            dicS.add("wh38", wh38);
            dicS.add("wh39", wh39);
            dicS.add("wh40", wh40);
            dicS.add("wh41", wh41);
            dicS.add("wh42", wh42);
            dicS.add("wh43", wh43);
            dicS.add("wh45", wh45);
            dicS.add("wh46", wh46);
            dicS.add("wh47", wh47);
            dicS.add("wh48", wh48);
            dicS.add("wh49", wh49);
            dicS.add("wh50", wh50);
            dicS.add("wh51", wh51);
            dicS.add("w241", w241);
            dicS.add("w242", w242);
            //车床
            dicS.add("wh52", wh52);
            dicS.add("wh53", wh53);
            dicS.add("wh54", wh54);
            dicS.add("wh55", wh55);
            dicS.add("wh56", wh56);
            dicS.add("wh57", wh57);
            dicS.add("wh58", wh58);
            dicS.add("wh59", wh59);
            dicS.add("wh60", wh60);
            //快走丝
            dicS.add("wh61", wh61);
            dicS.add("wh62", wh62);
            dicS.add("wh63", wh63);
            dicS.add("wh64", wh64);
            dicS.add("wh65", wh65);
            dicS.add("wh66", wh66);
            dicS.add("wh67", wh67);
            dicS.add("wh68", wh68);
            dicS.add("wh69", wh69);
            dicS.add("wh70", wh70);
            dicS.add("wh71", wh71);
            dicS.add("wh72", wh72);
            dicS.add("wh73", wh73);
            dicS.add("wh74", wh74);
            dicS.add("wh75", wh75);
            dicS.add("wh76", wh76);
            dicS.add("wh77", wh77);
            dicS.add("wh78", wh78);
            dicS.add("wh79", wh79);
            dicS.add("wh80", wh80);
            dicS.add("wh81", wh81);
            dicS.add("wh82", wh82);
            dicS.add("wh83", wh83);
            dicS.add("wh84", wh84);
            dicS.add("wh85", wh85);
            //磨床组
            dicS.add("wh86", wh86);
            dicS.add("wh87", wh87);
            dicS.add("wh88", wh88);
            dicS.add("wh89", wh89);
            dicS.add("wh90", wh90);
            dicS.add("wh91", wh91);
            dicS.add("wh92", wh92);
            dicS.add("wh93", wh93);
            dicS.add("wh94", wh94);
            dicS.add("wh95", wh95);
            dicS.add("wh96", wh96);
            dicS.add("wh97", wh97);
            dicS.add("wh98", wh98);
            dicS.add("wh99", wh99);
            //普车组
            dicS.add("wh100", wh100);
            dicS.add("wh101", wh101);
            dicS.add("wh102", wh102);
            dicS.add("wh103", wh103);
            dicS.add("wh104", wh104);
            dicS.add("wh105", wh105);
            dicS.add("wh106", wh106);
            dicS.add("wh107", wh107);
            dicS.add("wh108", wh108);
        }
    </script>
    <script>
        //获取画布对象
        var canvas = document.getElementById('renderCanvas');
        //加载巴比伦3D引擎
        var engine = new BABYLON.Engine(canvas, true);
        var planeBG = null;
        var materialPlane = null;
        var scene = null;//场景
        var camera = null;//镜头
        var light = null;//灯光
        var currentFloor = 1;//当前楼层
        var colorArray = new Array(null, null, null);
        $(document).ready(function () {
            engine.displayLoadingUI();
            //赋予该场景于变量
            scene = createScene();
            //创建控制面板
            createUiPanel();
            //创建图例面板
            createUiPanelLegend();
            //在引擎中循环运行这个场景
            engine.runRenderLoop(function () {
                scene.render();
            });
            //事件
            scene.beforeRender = function () {

            };
            //追加事件:帆布与大小调整程序
            window.addEventListener('resize', function () {
                engine.resize();
            });
            getstatus();
            var int = self.setInterval("getstatus()", 5000);
            engine.hideLoadingUI();
        });
        //创建原点
        var createXYZ = function (scene) {
            //原点
            var sphere_0 = BABYLON.Mesh.CreateSphere("Sphere1", 1, 3, scene);
            sphere_0.position.x = 0;
            sphere_0.position.y = 0;
            sphere_0.position.z = 0;
            //x点
            var sphere_x = BABYLON.Mesh.CreateSphere("Sphere1", 1, 3, scene);
            sphere_x.position.x = 10;
            sphere_x.position.y = 0;
            sphere_x.position.z = 0;
            var materialSphere2 = new BABYLON.StandardMaterial("texture2", scene);
            materialSphere2.diffuseColor = new BABYLON.Color3(1, 0, 0); //Red
            sphere_x.material = materialSphere2;
            //z点
            var sphere_z = BABYLON.Mesh.CreateSphere("Sphere1", 1, 3, scene);
            sphere_z.position.x = 0;
            sphere_z.position.y = 0;
            sphere_z.position.z = 10;
            var materialSphere3 = new BABYLON.StandardMaterial("texture2", scene);
            materialSphere3.diffuseColor = new BABYLON.Color3(0, 2, 0); //green
            sphere_z.material = materialSphere3;
        }
        //画地板文字
        var drawBoardText = function (scene) {
            //写字
            var barLegend = BABYLON.Mesh.CreateGround("barLegend", 512, 370, 1, scene, false);
            barLegend.position.x = 0;
            barLegend.position.z = 0;
            barLegend.position.y = 0.1;

            barLegend.material = new BABYLON.StandardMaterial("", scene);
            var barLegendTexture = new BABYLON.DynamicTexture("dynamic texture", 512, scene, true);
            barLegendTexture.hasAlpha = true;
            barLegend.material.diffuseTexture = barLegendTexture;
            barLegend.material.emissiveColor = new BABYLON.Color3(0.4, 0.4, 0.4);

            var size = barLegendTexture.getSize();
            barLegendTexture.drawText("磨床组", 40, 120, "20px Arial", "white", "transparent");
            barLegendTexture.drawText("慢走丝", 40, 360, "20px verdana", "white", "transparent");
            barLegendTexture.drawText("办公室", 40, 425, "20px Segoe UI", "white", "transparent");
            barLegendTexture.drawText("办公室", 40, 492, "20px Segoe UI", "white", "transparent");
            barLegendTexture.drawText("快走丝", 300, 50, "20px Segoe UI", "white", "transparent");
            barLegendTexture.drawText("卧加", 250, 160, "20px Segoe UI", "white", "transparent");
            barLegendTexture.drawText("线边仓", 270, 210, "20px Segoe UI", "white", "transparent");
            barLegendTexture.drawText("立加", 336, 265, "20px Segoe UI", "white", "transparent");
            barLegendTexture.drawText("车床", 213, 365, "17px Segoe UI", "white", "transparent");
            barLegendTexture.drawText("电梯", 195, 430, "20px Segoe UI", "white", "transparent");
            barLegendTexture.drawText("楼梯", 195, 490, "20px Segoe UI", "white", "transparent");
            barLegendTexture.drawText("原材料仓库", 250, 460, "20px Segoe UI", "white", "transparent");
            barLegendTexture.drawText("普车组、铣钻组", 396, 460, "17px Segoe UI", "white", "transparent");
            barLegendTexture.drawText("焊", 480, 240, "20px Segoe UI", "white", "transparent");
            barLegendTexture.drawText("工", 480, 260, "20px Segoe UI", "white", "transparent");
            barLegendTexture.drawText("组", 480, 280, "20px Segoe UI", "white", "transparent");

        }
        //图例面板
        var createUiPanelLegend = function () {
            // UI
            var advancedTexture = BABYLON.GUI.AdvancedDynamicTexture.CreateFullscreenUI("UI");
            var UiPanel = new BABYLON.GUI.StackPanel();
            //UiPanel.height = "220px";
            UiPanel.fontSize = "14px";
            UiPanel.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;
            UiPanel.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_CENTER;
            advancedTexture.addControl(UiPanel);
            // ..
            var button = BABYLON.GUI.Button.CreateSimpleButton("but1", "正常");
            button.paddingTop = "1px";
            button.paddingLeft = "5px";
            button.width = "50px";
            button.height = "30px";
            button.color = "black";
            button.background = "green";

            UiPanel.addControl(button);
            // ..
            var button1 = BABYLON.GUI.Button.CreateSimpleButton("but2", "待机");
            button1.paddingTop = "1px";
            button1.paddingLeft = "5px";
            button1.width = "50px";
            button1.height = "30px";
            button1.color = "black";
            button1.background = "yellow";

            UiPanel.addControl(button1);
            // ..
            var button1 = BABYLON.GUI.Button.CreateSimpleButton("but3", "停机");
            button1.paddingTop = "1px";
            button1.paddingLeft = "5px";
            button1.width = "50px";
            button1.height = "30px";
            button1.color = "black";
            button1.background = "red";

            UiPanel.addControl(button1);
            // ..
            var button1 = BABYLON.GUI.Button.CreateSimpleButton("but4", "未连接");
            button1.paddingTop = "1px";
            button1.paddingLeft = "5px";
            button1.width = "50px";
            button1.height = "30px";
            button1.color = "black";
            button1.background = "gray";

            UiPanel.addControl(button1);
        }
        //控制面板
        var createUiPanel = function () {
            // UI
            var advancedTexture = BABYLON.GUI.AdvancedDynamicTexture.CreateFullscreenUI("UI");
            var UiPanel = new BABYLON.GUI.StackPanel();
            UiPanel.fontSize = "14px";
            UiPanel.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;
            UiPanel.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_TOP;
            advancedTexture.addControl(UiPanel);
            // ..
            var button = BABYLON.GUI.Button.CreateSimpleButton("but1", "全图");
            button.paddingTop = "5px";
            button.paddingLeft = "5px";
            button.width = "80px";
            button.height = "40px";
            button.color = "white";
            button.background = "green";
            button.onPointerDownObservable.add(() => {
                if (currentFloor != 0) {
                    currentFloor = 0;
                    scene = createScene2();
                    createUiPanel();
                }
            });

            UiPanel.addControl(button);
            // ..
            var button1 = BABYLON.GUI.Button.CreateSimpleButton("but2", "一楼");
            button1.paddingTop = "1px";
            button1.paddingLeft = "5px";
            button1.width = "80px";
            button1.height = "40px";
            button1.color = "white";
            button1.background = "green";
            button1.onPointerDownObservable.add(() => {
                if (currentFloor != 1) {
                    currentFloor = 1;
                    scene = createScene();
                    createUiPanel();
                    createUiPanelLegend();
                }
            });

            UiPanel.addControl(button1);
            // ..
            var button1 = BABYLON.GUI.Button.CreateSimpleButton("but3", "二楼");
            button1.paddingTop = "1px";
            button1.paddingLeft = "5px";
            button1.width = "80px";
            button1.height = "40px";
            button1.color = "white";
            button1.background = "green";

            UiPanel.addControl(button1);
            // ..
            var button1 = BABYLON.GUI.Button.CreateSimpleButton("but4", "三楼");
            button1.paddingTop = "1px";
            button1.paddingLeft = "5px";
            button1.width = "80px";
            button1.height = "40px";
            button1.color = "white";
            button1.background = "green";

            UiPanel.addControl(button1);
            // ..
            var button1 = BABYLON.GUI.Button.CreateSimpleButton("but4", "四楼");
            button1.paddingTop = "1px";
            button1.paddingLeft = "5px";
            button1.width = "80px";
            button1.height = "40px";
            button1.color = "white";
            button1.background = "green";

            UiPanel.addControl(button1);
        }
        //创建机器
        var createWall = function (wall, scene) {
            //墙体样式
            var materialWall = new BABYLON.StandardMaterial("Wall", scene);
            materialWall.alpha = 0.5;

            var cWall = BABYLON.Mesh.CreateBox(wall.name, wall.size, scene);
            cWall.position.x = wall.posX;
            cWall.position.y = wall.posY;
            cWall.position.z = wall.posZ;
            cWall.scaling.x = wall.scaX;
            cWall.scaling.y = wall.scaY;
            cWall.scaling.z = wall.scaZ;
            if (wall.status != undefined) {
                if (wall.status == 1) {
                    cWall.material = colorArray[0];
                } else if (wall.status == 2) {
                    cWall.material = colorArray[1];
                } else if (wall.status == 3) {
                    cWall.material = colorArray[2];
                } else {
                    cWall.material = colorArray[3];
                }
            } else {
                cWall.material = materialWall;
            }
            if (wall.status != undefined) {
                makeOverOut(cWall, scene);

                //创建盒子文字
                var barLegend = BABYLON.Mesh.CreateGround("barLegend", wall.scaX * wall.size, wall.scaZ * wall.size, 1, scene, false);
                barLegend.position.x = cWall.position.x;
                barLegend.position.y = (wall.size * wall.scaY) / 2.0 + wall.posY + 0.3;
                barLegend.position.z = cWall.position.z;
                barLegend.material = new BABYLON.StandardMaterial("", scene);
                var barLegendTexture = new BABYLON.DynamicTexture("dynamic texture", 50, scene, true);
                barLegendTexture.hasAlpha = true;
                barLegend.material.diffuseTexture = barLegendTexture;
                barLegend.material.emissiveColor = new BABYLON.Color3(0.4, 0.4, 0.4);
                barLegendTexture.drawText(wall.name, 0, 40, "bold 19px Segoe UI", "white", "transparent");
            }
            if (wall.disp != undefined) {
                dicW.add(wall.disp, cWall)
            }
        }
        // Over/Out/OnPick
        var makeOverOut = function (mesh, scene) {
            // mesh.actionManager.registerAction(new BABYLON.SetValueAction(BABYLON.ActionManager.OnPointerOutTrigger, mesh.material, "emissiveColor", mesh.material.emissiveColor));
            //mesh.actionManager.registerAction(new BABYLON.SetValueAction(BABYLON.ActionManager.OnPointerOverTrigger, mesh.material, "emissiveColor", BABYLON.Color3.White()));

            mesh.actionManager = new BABYLON.ActionManager(scene);
            var outVector = new BABYLON.Vector3(mesh.scaling.x, mesh.scaling.y, mesh.scaling.z);
            var overVector = new BABYLON.Vector3(mesh.scaling.x * 1.1, mesh.scaling.y * 1.1, mesh.scaling.z * 1.1);
            mesh.actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOutTrigger, mesh, "scaling", outVector, 150));
            mesh.actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOverTrigger, mesh, "scaling", overVector, 150));
            var positionVector3 = new BABYLON.Vector3(mesh.position.x, mesh.position.y, mesh.position.z)
            mesh.actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPickTrigger, camera, "target", positionVector3, 150));
        }
        //获取设备状态
        var getstatus = function () {
            $.ajax({
                url: "../../MachineManage/Machine/GetDataJson",
                type: "get",
                dataType: "json",
                async: true,
                success: function (jsons) {
                    jsons.forEach(
                    function (e) {
                        var arrkey = dicW.keys(); 
                        $.each(arrkey, function (i, key) {
                            if (key == e.DisplayPosition) { 
                                var wall = dicW.getItem(key);
                                if (e.Status == 1) {
                                    wall.material = colorArray[0];
                                } else if (e.Status == 2) {
                                    wall.material = colorArray[1];
                                } else if (e.Status == 3) {
                                    wall.material = colorArray[2];
                                } else {
                                    wall.material = colorArray[3];
                                }
                            }
                        });
                    });
                }
            });
        }
        //创建一楼场景
        var createScene = function () {
            //场景
            scene = new BABYLON.Scene(engine);
            //scene.clearColor = new BABYLON.Color3(0.5, 0.5, 0.5);//灰色
            scene.clearColor = new BABYLON.Color3(0.3, 0.6, 0.9);//浅蓝
            //镜头
            camera = new BABYLON.ArcRotateCamera("Camera", Math.PI / 0.6, Math.PI / 6, 550, BABYLON.Vector3.Zero(), scene);
            camera.upperBetaLimit = 1.5;
            camera.attachControl(canvas, true);
            //灯光
            light = new BABYLON.HemisphericLight("hemi", new BABYLON.Vector3(0.4, 0.3, -0.4), scene);
            //底图-草地
            planeBG = BABYLON.Mesh.CreatePlane("plane", 550, scene);
            planeBG.position.y = -0.1;
            planeBG.rotation.x = Math.PI / 2;
            var materialBG = new BABYLON.StandardMaterial("texturePlane", scene);
            materialBG.diffuseTexture = new BABYLON.Texture("../../Content/images/babylon/shuinidi.jpg", scene);
            materialBG.diffuseTexture.uScale = 5.0;//Repeat 5 times on the Vertical Axes
            materialBG.diffuseTexture.vScale = 5.0;//Repeat 5 times on the Horizontal Axes
            materialBG.backFaceCulling = false;//Always show the front and the back of an element
            planeBG.material = materialBG;
            //工厂地面
            var plane = BABYLON.Mesh.CreatePlane("plane", 512, scene);
            plane.position.y = -0;
            plane.rotation.x = Math.PI / 2;
            plane.rotation.z = 0;
            plane.scaling.x = 1;
            plane.scaling.y = 0.724569;
            materialPlane = new BABYLON.StandardMaterial("texturePlane", scene);
            materialPlane.diffuseTexture = new BABYLON.Texture("../../Content/images/babylon/shuinidi.jpg", scene);
            materialPlane.diffuseTexture.uScale = 5.0;//Repeat 5 times on the Vertical Axes
            materialPlane.diffuseTexture.vScale = 5.0;//Repeat 5 times on the Horizontal Axes
            materialPlane.backFaceCulling = false;//Always show the front and the back of an element
            //materialPlane.diffuseColor = new BABYLON.Color3(0.2, 0.2, 0.3); //Red
            plane.material = materialPlane;
            //颜色变量
            var materialColorGreen = new BABYLON.StandardMaterial("texture2", scene);
            materialColorGreen.diffuseColor = new BABYLON.Color3(0, 0.85, 0); //green
            colorArray[0] = materialColorGreen;
            var materialColorYellow = new BABYLON.StandardMaterial("texture2", scene);
            materialColorYellow.diffuseColor = new BABYLON.Color3(0.9, 0.9, 0); //yellow
            colorArray[1] = materialColorYellow;
            var materialColorRed = new BABYLON.StandardMaterial("texture2", scene);
            materialColorRed.diffuseColor = new BABYLON.Color3(0.85, 0, 0); //red
            colorArray[2] = materialColorRed;
            var materialColorBrown = new BABYLON.StandardMaterial("texture2", scene);
            materialColorBrown.diffuseColor = new BABYLON.Color3(0.4, 0.4, 0.4); //灰色
            colorArray[3] = materialColorBrown;

            //创建坐标参照物
            createXYZ(scene);

            //初始化物体数据
            initDic();

            //循环创建物体
            var arrkey = dicS.keys();
            $.each(arrkey, function (i, fe) {
                var key = fe;
                var wall = dicS.getItem(fe);
                createWall(wall, scene);
            });

            //写地板问题
            drawBoardText(scene);

            //UI图例
            createUiPanel();

            return scene;
        }
        //创建二楼场景
        var createScene2 = function () {
            //场景
            var scene = new BABYLON.Scene(engine);
            //scene.clearColor = BABYLON.Color3.White();
            scene.clearColor = new BABYLON.Color3(0.5, 0.5, 0.5)

            // Skybox
            var skybox = BABYLON.Mesh.CreateBox("skyBox", 100.0, scene);
            var skyboxMaterial = new BABYLON.StandardMaterial("skyBox", scene);
            skyboxMaterial.backFaceCulling = false;
            skyboxMaterial.reflectionTexture = new BABYLON.CubeTexture("/textures/TropicalSunnyDay", scene);
            skyboxMaterial.reflectionTexture.coordinatesMode = BABYLON.Texture.SKYBOX_MODE;
            skyboxMaterial.diffuseColor = new BABYLON.Color3(0, 0, 0);
            skyboxMaterial.specularColor = new BABYLON.Color3(0, 0, 0);
            skyboxMaterial.disableLighting = true;
            skybox.material = skyboxMaterial;

            //镜头
            camera = new BABYLON.ArcRotateCamera("Camera", Math.PI / 0.6, Math.PI / 6, 750, BABYLON.Vector3.Zero(), scene);
            camera.attachControl(canvas, true);
            //灯光
            var light = new BABYLON.HemisphericLight("hemi", new BABYLON.Vector3(0.4, 0.3, -0.4), scene);
            //底图-草地
            planeBG = BABYLON.Mesh.CreatePlane("plane", 550, scene);
            planeBG.position.y = -0.1;
            planeBG.rotation.x = Math.PI / 2;
            var materialBG = new BABYLON.StandardMaterial("texturePlane", scene);
            materialBG.diffuseTexture = new BABYLON.Texture("../../Content/images/bgpanle.jpg", scene);
            materialBG.diffuseTexture.uScale = 5.0;//Repeat 5 times on the Vertical Axes
            materialBG.diffuseTexture.vScale = 5.0;//Repeat 5 times on the Horizontal Axes
            materialBG.backFaceCulling = false;//Always show the front and the back of an element
            planeBG.material = materialBG;
            //工厂地面
            var plane = BABYLON.Mesh.CreatePlane("plane", 512, scene);
            plane.position.y = -0;
            plane.rotation.x = Math.PI / 2;
            plane.rotation.z = 0;
            plane.scaling.x = 1;
            plane.scaling.y = 0.724569;
            materialPlane = new BABYLON.StandardMaterial("texturePlane", scene);
            materialPlane.diffuseTexture = new BABYLON.Texture("../../Content/images/shuinidi.jpg", scene);
            materialPlane.diffuseTexture.uScale = 5.0;//Repeat 5 times on the Vertical Axes
            materialPlane.diffuseTexture.vScale = 5.0;//Repeat 5 times on the Horizontal Axes
            materialPlane.backFaceCulling = false;//Always show the front and the back of an element
            //materialPlane.diffuseColor = new BABYLON.Color3(0.2, 0.2, 0.3); //Red
            plane.material = materialPlane;
            //原点
            sphere_0 = BABYLON.Mesh.CreateSphere("Sphere1", 1, 3, scene);
            sphere_0.position.x = 0;
            sphere_0.position.y = 0;
            sphere_0.position.z = 0;
            //x点
            var sphere_x = BABYLON.Mesh.CreateSphere("Sphere1", 1, 3, scene);
            sphere_x.position.x = 10;
            sphere_x.position.y = 0;
            sphere_x.position.z = 0;
            var materialSphere2 = new BABYLON.StandardMaterial("texture2", scene);
            materialSphere2.diffuseColor = new BABYLON.Color3(1, 0, 0); //Red
            sphere_x.material = materialSphere2;
            //z点
            var sphere_z = BABYLON.Mesh.CreateSphere("Sphere1", 1, 3, scene);
            sphere_z.position.x = 0;
            sphere_z.position.y = 0;
            sphere_z.position.z = 10;
            var materialSphere3 = new BABYLON.StandardMaterial("texture2", scene);
            materialSphere3.diffuseColor = new BABYLON.Color3(0, 2, 0); //green
            sphere_z.material = materialSphere3;

            return scene;
        }

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

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Babylon.js 是一个基于 WebGL 技术的 3D 游戏引擎,能够在 Web 浏览器中创建和渲染高品质的 3D 场景。以下是使用 Babylon.js 的基本步骤: 1. 引入 Babylon.js 库文件。您可以从 Babylon.js 的官方网站下载最新版本的库文件,将其引入您的 HTML 文件中。 ```html <script src="https://cdn.babylonjs.com/babylon.js"></script> <script src="https://cdn.babylonjs.com/loaders/babylonjs.loaders.min.js"></script> ``` 2. 创建场景和相机。使用 `BABYLON.Scene` 类创建一个场景对象,并使用 `BABYLON.FreeCamera` 或 `BABYLON.ArcRotateCamera` 类创建一个相机对象。 ```javascript var canvas = document.getElementById("renderCanvas"); var engine = new BABYLON.Engine(canvas, true); var scene = new BABYLON.Scene(engine); var camera = new BABYLON.ArcRotateCamera("Camera", 0, 0, 10, BABYLON.Vector3.Zero(), scene); camera.attachControl(canvas, true); ``` 3. 加载模型。使用 `BABYLON.SceneLoader` 类从文件中加载 3D 模型,并将其添加到场景中。 ```javascript BABYLON.SceneLoader.ImportMesh("", "models/", "myModel.babylon", scene, function (newMeshes) { // 可以在此处对模型进行处理 // ... }); ``` 4. 创建光源。使用 `BABYLON.Light` 类创建一个光源对象,并将其添加到场景中。 ```javascript var light = new BABYLON.PointLight("pointLight", new BABYLON.Vector3(0, 10, 0), scene); ``` 5. 渲染场景。使用 `BABYLON.Engine` 类的 `runRenderLoop` 方法渲染场景。 ```javascript engine.runRenderLoop(function () { scene.render(); }); ``` 这只是 Babylon.js 的一些基本用法,您可以参考官方文档了解更多功能和用法。Babylon.js 的官方文档地址为:https://doc.babylonjs.com/ 。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值