three三维灯光移动阴影效果代码

代码语言:html

所属分类:三维

代码描述:three三维灯光移动阴影效果代码

代码标签: three 三维 灯光 移动 阴影

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en">
       
<head>

               
<meta charset="utf-8">
               
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">

       
</head>
       
<body>

               
<div id="container"></div>
               
<div id="info">
               
                        Real world scale: Brick cube is 50 cm in size. Globe is 50 cm in diameter.
<br/>
                        Reinhard inline tonemapping with real-world light falloff (decay = 2).
               
</div>

               
<!-- Import maps polyfill -->
               
<!-- Remove this when import maps will be widely supported -->
               
<script async type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/es-module-shims.1.3.6.js"></script>


               
<script type="importmap">
                       
{
                               
"imports": {
                                       
"three": "//repo.bfw.wiki/bfwtool/build/three.module.js"
                               
}
                       
}
               
</script>

               
<script type="module">

                        import * as THREE from 'three';

                        import Stats from '//repo.bfw.wiki/bfwtool/examples/jsm/libs/stats.module.js';
                        import { GUI } from '//repo.bfw.wiki/bfwtool/examples/jsm/libs/lil-gui.module.min.js';

                        import { OrbitControls } from '//repo.bfw.wiki/bfwtool/examples/jsm/controls/OrbitControls.js';

                        let camera, scene, renderer, bulbLight, bulbMat, hemiLight, stats;
                        let ballMat, cubeMat, floorMat;

                        let previousShadowMap = false;


                        // ref for lumens: http://www.power-sure.com/lumens.htm
                        const bulbLuminousPowers = {
                                "110000 lm (1000W)": 110000,
                                "3500 lm (300W)": 3500,
                                "1700 lm (100W)": 1700,
                                "800 lm (60W)": 800,
                                "400 lm (40W)": 400,
                                "180 lm (25W)": 180,
                                "20 lm (4W)": 20,
                                "Off": 0
                        };

                        // ref for solar irradiances: https://en.wikipedia.org/wiki/Lux
                        const hemiLuminousIrradiances = {
                                "0.0001 lx (Moonless Night)": 0.0001,
                                "0.002 lx (Night Airglow)": 0.002,
                                "0.5 lx (Full Moon)": 0.5,
                                "3.4 lx (City Twilight)": 3.4,
                                "50 lx (Living Room)": 50,
                                "100 lx (Very Overcast)": 100,
                                "350 lx (Office Room)": 350,
                                "400 lx (Sunrise/Sunset)": 400,
                                "1000 lx (Overcast)": 1000,
                                "18000 lx (Daylight)": 18000,
                                "50000 lx (Direct Sun)": 50000
                        };

                        const params = {
                                shadows: true,
                                exposure: 0.68,
                                bulbPower: Object.keys( bulbLuminousPowers )[ 4 ],
                                hemiIrradiance: Object.keys( hemiLuminousIrradiances )[ 0 ]
                        };

                        init();
                        animate();

                        function init() {

                                const container = document.getElementById( 'container' );

                                stats = new Stats();
                                container.appendChild( stats.dom );


                                camera = new THREE.PerspectiveCamera( 50, window.innerWidth / window.innerHeight, 0.1, 100 );
                                camera.position.x = - 4;
                                camera.position.z = 4;
                                camera.position.y = 2;

                                scene = new THREE.Scene();

                                const bulbGeometry = new THREE.SphereGeometry( 0.02, 16, 8 );
                                bul.........完整代码请登录后点击上方下载按钮下载查看

网友评论0