📅  最后修改于: 2023-12-03 15:35:40.262000             🧑  作者: Mango
在 WebGL 和 p5.js 中,灯光是用于创建场景的重要元素之一。它可以使你的场景更加逼真,增加光影效果,使其更加真实。
WebGL 是一种用于创建高性能的3D图形渲染的技术,支持多种类型的灯光。
点光源是最基本的灯光,在3D场景中表现为像一个光球,光源呈现无限远距离,并且光线在任意方向上发射。在WebGL中创建一个点光源需要用到以下步骤:
// 创建一个点光源
const pointLight = new THREE.PointLight(0xffffff, 1, 100);
// 设置其位置
pointLight.position.set(0, 10, 0);
// 启用该光源
scene.add(pointLight);
聚光灯是一种能够产生较强聚光效果的灯光,在角色进行关键动作时,通过对目标区域进行聚焦,来使角色显得更加引人注目或突出。在WebGL中创建一个聚光灯需要用到以下步骤:
// 创建一个聚光灯
const spotLight = new THREE.SpotLight(0xffffff);
// 设置聚光灯的位置和方向
spotLight.position.set(100, 200, 0);
spotLight.target.position.set(0, 0, 0);
spotLight.angle = Math.PI / 5;
// 设置聚光灯内的扩散角度和角度大小
spotLight.penumbra = 0.5;
// 设置光源的颜色和亮度
spotLight.color.setRGB(1, 1, 1);
spotLight.intensity = 2;
// 启用该光源
scene.add(spotLight);
p5.js 是一种流行的 JavaScript 库,可用于创建动态的图形和交互式图像。它也支持多种类似的灯光。
在 p5.js 中,你可以使用 pointLight()
函数来创建点光源。
function setup() {
createCanvas(400, 400, WEBGL);
pointLight(250, 250, 250, 0, 0, 250);
}
function draw() {
background(0);
rotateX(frameCount * 0.01);
rotateY(frameCount * 0.01);
box(100);
}
与 WebGL 中的聚光灯类似,p5.js 中的方向光源也被用于绘制具有视觉深度的场景。你可以使用 directionalLight()
函数来创建方向光源。
function setup() {
createCanvas(400, 400, WEBGL);
directionalLight(255, 255, 255, 0, 1, 0);
}
function draw() {
background(0);
rotateX(frameCount * 0.01);
rotateY(frameCount * 0.01);
box(100);
}
灯光是创建高逼真度的3D场景的重要元素之一。在 WebGL 和 p5.js 中,你可以使用点光源和聚光灯来实现光照效果。这些函数提供了一个简单而有效的方法来创建逼真的场景,让你的3D模型更加真实。