第五节:Three.js光源的类型【Three.js整理】

Three.js 光源类型:环境光 THREE.AmbientLight 、点光源THREE.PointLight、聚光灯 THREE.SpotLight、定向光 THREE.DirectionalLight、半球光THREE.HemisphereLight (HDR天空盒环境贴图)、区域光THREE.AreaLight、镜头光晕THREE.LensFlare。

环境光 THREE.AmbientLight

THREE.AmbientLight灯光全局应用,该光源没有特定的方向,THREE.AmbientLight不会产生阴影。一般不会使用THREE.AmbientLight作为单个光源,该光源以相同的颜色为所有对象着色。可以与THREE.SpotLight或THREE.DirectionalLight柔化阴影或添加一些额外的颜色场景。

 点光源THREE.PointLight

Three.js中的 THREE.PointLight 是一个向各个方向发光的光源从一个点发出。点光源的一个很好的例子是发射信号弹在夜空中。

聚光灯 THREE.SpotLight

THREE.SpotLight是您最常使用的灯之一(尤其是如果您想要使用阴影)。THREE.SpotLight是一种具有锥形效果的光源。你可以将其与手电筒或灯笼进行比较。这种光有方向和角度它产生光

 定向光 THREE.DirectionalLight

 

 我们将看到的最后一个基本灯是THREE.DirectionalLight 。这类光可以认为是很远的光。它发出的所有光线彼此平行。太阳就是一个很好的例子。太阳那么远我们在地球上接收到的光线(几乎)彼此平行。主要的THREE.DirectionalLight和THREE.SpotLight之间的区别(我们在上一节中看到的)是这种光不会随着距离越远而减弱THREE.DirectionalLight的目标与THREE.SpotLight一样(您可以使用距离和指数参数对其进行微调)

半球光THREE.HemisphereLight  ,也可用HDR、天空盒作为补充或替代。

我们要查看的第一个特殊光源是THREE.HemisphereLight 。Three.HemisphereLight ,我们可以创造更自然的户外照明。没有这个光,我们可以通过创建THREE.DirectionalLight来模拟户外,它模拟太阳,并且可能添加额外的 THREE.AmbientLight来提供给场景一些一般的颜色。然而,这看起来并不自然。什么时候你在户外,并不是所有的光都直接来自上方:大部分都是由大气并被地面和其他物体反射。这是获得更自然外观的简单方法户外照明

three.js exampleshttps://threejs.org/examples/#webgl_lights_hemisphere

有环境光

无环境光

 区域光THREE.AreaLight

 我们可以定义一个发光的矩形区域。三.AreaLight不包括在内在标准 Three.js 库中,但在其扩展中,所以我们必须采取几个在我们可以使用这个光源之前的额外步骤。


three.js exampleshttps://threejs.org/examples/?q=lights#webgl_lights_rectarealight

 

import { RectAreaLightHelper } from './jsm/helpers/RectAreaLightHelper.js';
import { RectAreaLightUniformsLib } from './jsm/lights/RectAreaLightUniformsLib.js';

 镜头光晕THREE.LensFlare

 镜头光晕它们会在您拍照时出现直接进入太阳或其他明亮的光源。在大多数情况下,您希望避免这个,但对于游戏和 3D 生成的图像,它提供了一个很好的效果,使得场景看起来更真实一些。

 https://threejs.org/examples/?q=LensFlare#webgl_lensflares

猜你喜欢

转载自blog.csdn.net/rexfow/article/details/124073823