threejs学习笔记--添加材质 灯光和阴影

本文是Three.js的学习笔记,主要探讨如何在场景中添加不同类型的材质,设置灯光以影响物体表现,并详细讲解如何实现逼真的阴影效果,帮助提升3D图形的视觉体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//首先在场景里添加一个光源
let spotLight = new THREE.spotLight(0x00ff00);  //通过spotLight()方法创建一个光源
spotLight.position.set(-40,60,-10);   //灯光在这个位置照射场景
scene.add(spotLight);                 //加入场景

//调用MeshBasicMaterial()方法不会对场景中的光源产生反应,而只会以指定颜色渲染物体
//MeshPhongMaterial(), Phong材质,适合金属和镜面
//使用MeshLambertMaterial(),Lambert材质,适合光照
let cubeGeometry = new THREE.cubeGeometry(1,1,1); 
let cubeMaterial = new THREE.MeshLambertMaterial();
let cube = new THREE.Mesh(cubeGeometry,cubeMaterial); //创建立方体

//告诉渲染器我需要阴影
renderer.shadowMapEnabled = true;  //允许阴影投射

//定义哪个物体投射阴影,哪个物体接收阴影
cube.receiveShadow = true;  //正方体接收其他物体投射过来的阴影
cube.castShadow = true;     //正方体投射阴影到其他物体上

//定义场景中哪个光源可以产生阴影(不是所有的光源都可以产生光源)
spotLight.castShadow = true; //spotLight()方法生成的光源(聚光灯)可以产生阴影

完整代码:
let scene = new THREE.Scene();
let camera = new THREE.Persp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值