📅  最后修改于: 2023-12-03 15:37:02.673000             🧑  作者: Mango
半球灯三js是一个用JavaScript编写的实时光照和阴影效果库。它可以用于创建3D场景和游戏,以提供更加真实的光照和阴影效果。
在使用半球灯三js之前,请确保您已经使用了Three.js,因为半球灯三js是基于Three.js构建的。您可以从官方网站https://threejs.org/下载Three.js。
你可以从GitHub上下载半球灯三js,也可以使用npm安装:
npm install hemispheric3d
首先,将脚本文件引入到您的HTML文档中:
<script src="path/to/hemispheric3d.min.js"></script>
创建半球灯对象:
// 创建半球灯对象
var hemiLight = new HemisphericLight(0xffffff, 0x0033ff, 1);
// 添加到场景中
scene.add(hemiLight);
设置半球灯对象的属性:
// 设置光源位置
hemiLight.position.set(0, 100, 0);
// 设置阴影贴图尺寸
hemiLight.shadowResolution = 1024;
下面的代码段演示了如何创建一个具有半球灯效果的场景:
// 创建场景
var scene = new THREE.Scene();
// 创建渲染器
var renderer = new THREE.WebGLRenderer();
// 设置渲染器大小
renderer.setSize(window.innerWidth, window.innerHeight);
// 将渲染器添加到文档中
document.body.appendChild(renderer.domElement);
// 创建摄像机
var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 10000);
// 设置摄像机位置
camera.position.set(0, 100, 400);
// 将摄像机添加到场景中
scene.add(camera);
// 创建半球灯对象
var hemiLight = new HemisphericLight(0xffffff, 0x0033ff, 1);
// 设置光源位置
hemiLight.position.set(0, 100, 0);
// 设置阴影贴图尺寸
hemiLight.shadowResolution = 1024;
// 添加到场景中
scene.add(hemiLight);
// 创建立方体
var geometry = new THREE.BoxGeometry(200, 200, 200);
var material = new THREE.MeshLambertMaterial({ color: 0xffffff });
var mesh = new THREE.Mesh(geometry, material);
// 设置阴影投射
mesh.castShadow = true;
// 将立方体添加到场景中
scene.add(mesh);
// 创建地面平面
var groundGeometry = new THREE.PlaneGeometry(1000, 1000);
var groundMaterial = new THREE.MeshLambertMaterial({ color: 0x99ff99 });
var ground = new THREE.Mesh(groundGeometry, groundMaterial);
// 设置阴影接收
ground.receiveShadow = true;
// 旋转地面平面
ground.rotation.x = -Math.PI / 2;
// 将地面平面添加到场景中
scene.add(ground);
// 渲染循环
function render() {
// 更新立方体位置
mesh.rotation.x += 0.01;
mesh.rotation.y += 0.02;
// 渲染场景
renderer.render(scene, camera);
// 继续渲染循环
requestAnimationFrame(render);
}
// 开始渲染
render();
半球灯三js是一个简单易用的光照和阴影库,可以帮助您创建具有更真实光照和阴影效果的3D场景和游戏。