Three.js API手册

动画
AnimationAction AnimationClip AnimationMixer AnimationObjectGroup AnimationUtils KeyframeTrack PropertyBinding PropertyMixer
动画 / 轨道
BooleanKeyframeTrack ColorKeyframeTrack NumberKeyframeTrack QuaternionKeyframeTrack StringKeyframeTrack VectorKeyframeTrack
音频
Audio AudioAnalyser AudioContext AudioListener PositionalAudio
摄像机
ArrayCamera Camera CubeCamera OrthographicCamera PerspectiveCamera StereoCamera
常量
Animation Core CustomBlendingEquation DrawModes Materials Renderer Textures
核心
BufferAttribute BufferGeometry Clock DirectGeometry EventDispatcher Face3 Geometry InstancedBufferAttribute InstancedBufferGeometry InstancedInterleavedBuffer InterleavedBuffer InterleavedBufferAttribute Layers Object3D Raycaster Uniform
核心 / BufferAttributes
BufferAttribute_Types
弃用列表
DeprecatedList
附件
Earcut ShapeUtils
附件 / 核心
Curve CurvePath Font Interpolations Path Shape ShapePath
附件 / 曲线
ArcCurve CatmullRomCurve3 CubicBezierCurve CubicBezierCurve3 EllipseCurve LineCurve LineCurve3 QuadraticBezierCurve QuadraticBezierCurve3 SplineCurve
附件 / 物体
ImmediateRenderObject
几何体
BoxBufferGeometry BoxGeometry CircleBufferGeometry CircleGeometry ConeBufferGeometry ConeGeometry CylinderBufferGeometry CylinderGeometry DodecahedronBufferGeometry DodecahedronGeometry EdgesGeometry ExtrudeBufferGeometry ExtrudeGeometry IcosahedronBufferGeometry IcosahedronGeometry LatheBufferGeometry LatheGeometry OctahedronBufferGeometry OctahedronGeometry ParametricBufferGeometry ParametricGeometry PlaneBufferGeometry PlaneGeometry PolyhedronBufferGeometry PolyhedronGeometry RingBufferGeometry RingGeometry ShapeBufferGeometry ShapeGeometry SphereBufferGeometry SphereGeometry TetrahedronBufferGeometry TetrahedronGeometry TextBufferGeometry TextGeometry TorusBufferGeometry TorusGeometry TorusKnotBufferGeometry TorusKnotGeometry TubeBufferGeometry TubeGeometry WireframeGeometry
辅助对象
ArrowHelper AxesHelper BoxHelper Box3Helper CameraHelper DirectionalLightHelper FaceNormalsHelper GridHelper PolarGridHelper PositionalAudioHelper HemisphereLightHelper PlaneHelper PointLightHelper RectAreaLightHelper SkeletonHelper SpotLightHelper VertexNormalsHelper
灯光
AmbientLight DirectionalLight HemisphereLight Light PointLight RectAreaLight SpotLight
灯光 / 阴影
DirectionalLightShadow LightShadow SpotLightShadow
加载器
AnimationLoader AudioLoader BufferGeometryLoader Cache CompressedTextureLoader CubeTextureLoader DataTextureLoader FileLoader FontLoader ImageBitmapLoader ImageLoader Loader LoaderUtils MaterialLoader ObjectLoader TextureLoader
加载器 / 管理器
DefaultLoadingManager LoadingManager
材质
LineBasicMaterial LineDashedMaterial Material MeshBasicMaterial MeshDepthMaterial MeshDistanceMaterial MeshLambertMaterial MeshMatcapMaterial MeshNormalMaterial MeshPhongMaterial MeshPhysicalMaterial MeshStandardMaterial MeshToonMaterial PointsMaterial RawShaderMaterial ShaderMaterial ShadowMaterial SpriteMaterial
数学库
Box2 Box3 Color Cylindrical Euler Frustum Interpolant Line3 Math Matrix3 Matrix4 Plane Quaternion Ray Sphere Spherical Triangle Vector2 Vector3 Vector4
数学库 / 插值
CubicInterpolant DiscreteInterpolant LinearInterpolant QuaternionLinearInterpolant
物体
Bone Group Line LineLoop LineSegments LOD Mesh Points Skeleton SkinnedMesh Sprite
渲染器
WebGLMultisampleRenderTarget WebGLRenderer WebGLRenderTarget WebGLRenderTargetCube
渲染器 / 着色器
ShaderChunk ShaderLib UniformsLib UniformsUtils
场景
Fog FogExp2 Scene
纹理贴图
CanvasTexture CompressedTexture CubeTexture DataTexture DataTexture3D DepthTexture Texture VideoTexture

LightShadow

这在 PointLights 内部用于计算阴影,也可用作其他阴影类的基类。

例子

//Create a WebGLRenderer and turn on shadows in the renderer 
var renderer = new THREE.WebGLRenderer(); 
renderer.shadowMap.enabled = true; 
renderer.shadowMap.type = THREE.PCFSoftShadowMap; // default THREE.PCFShadowMap 

//Create a PointLight and turn on shadows for the light 
var light = new THREE.PointLight( 0xffffff, 1, 100 ); 
light.position.set( 0, 10, 0 ); 
light.castShadow = true; // default false 
scene.add( light ); 

//Set up shadow properties for the light 
light.shadow.mapSize.width = 512; // default 
light.shadow.mapSize.height = 512; // default 
light.shadow.camera.near = 0.5; // default 
light.shadow.camera.far = 500 // default 

//Create a sphere that cast shadows (but does not receive them) 
var sphereGeometry = new THREE.SphereBufferGeometry( 5, 32, 32 ); 
var sphereMaterial = new THREE.MeshStandardMaterial( { color: 0xff0000 } ); 
var sphere = new THREE.Mesh( sphereGeometry, sphereMaterial ); 
sphere.castShadow = true; //default is false 
sphere.receiveShadow = false; //default 
scene.add( sphere ); 

//Create a plane that receives shadows (but does not cast them) 
var planeGeometry = new THREE.PlaneBufferGeometry( 20, 20, 32, 32 ); 
var planeMaterial = new THREE.MeshStandardMaterial( { color: 0x00ff00 } ) 
var plane = new THREE.Mesh( planeGeometry, planeMaterial ); 
plane.receiveShadow = true; 
scene.add( plane ); 

//Create a helper for the shadow camera (optional) 
var helper = new THREE.CameraHelper( light.shadow.camera ); 
scene.add( helper );

构造函数

LightShadow( camera : Camera )

camera - 在光的世界里

创建一个新的LightShadow。这不能直接调用的 - 它由PointLight在内部调用,或者由其他阴影用作基类。

属性

# .camera : Camera

光的世界里。这用于生成场景的深度图;从光的角度来看,其他物体背后的物体将处于阴影中。

# .bias : Float

阴影贴图偏差,在确定曲面是否在阴影中时,从标准化深度添加或减去多少。
默认值为0.此处非常小的调整(大约0.0001)可能有助于减少阴影中的伪影

# .map : WebGLRenderTarget

使用内置摄像头生成的深度图;超出像素深度的位置在阴影中。在渲染期间内部计算。

# .mapSize : Vector2

一个Vector2定义阴影贴图的宽度和高度。

较高的值会以计算时间为代价提供更好的阴影质量。值必须是2的幂,直到给定设备的WebGLRenderer.capabilities.maxTextureSize, 虽然宽度和高度不必相同(例如,(512,1024)有效)。 默认值为*(512,512)*。

# .matrix : Matrix4

模拟阴影相机空间,计算阴影贴图中的位置和深度。存储在Matrix4中。这是在渲染期间内部计算的。

# .radius : Float

将此值设置为大于1的值将模糊阴影的边缘。
较高的值会在阴影中产生不必要的条带效果 - 更大的mapSize将允许在这些效果变得可见之前使用更高的值。

请注意,如果[page:WebGLRenderer.shadowMap.type]设置为BasicShadowMap,将会无效。

方法

# .copy ( source : LightShadow ) : LightShadow

将LightShadow中的所有属性的值复制到 SpotLight。

# .clone () : LightShadow

克隆与此相同属性的新LightShadow。

# .toJSON () : Object

序列化这个LightShadow。

源码

src/lights/LightShadow.js