学习[threejs] threejs功能和组成

214 阅读9分钟

threejs

threejs高级概念

  1. 渲染器:渲染器是将场景中的物体会知道屏幕上的组建,他负责管理场景中的相机,光源,材质,并将他们转换为屏幕上的像素点,threejs提供了多种渲染器,包括:WebglRenderer,CSS3DRenderer和canasRenderer
  2. 相机:决定场景在屏幕上的投影方式,threejs中提供了多种相机类型,包括PerspectiveCamera,OrthographicCamera,CubeCamera
  3. 材质:决定物体表面外观的对象
  4. 光源:用于模拟世界中的光照效果
  5. 动画:threejs支持基于时间的动画,可以使用Tweenjs和gsap来实现复杂动画效果
  6. 骨骼动画:骨骼动画是一种通过动画骨骼来控制模型运动的动画
  7. 粒子系统:模拟了粒子的效果的技术,threejs提供了ParticleSystem和Points来实现粒子效果
  8. 后期处理:后期处理用于对渲染结果进行额外处理的技术
  9. 加载器:用于加载文件或网格模型等资源

动画

名称解释
AnimationAction管理单个动作,开始暂停等
AnimationClip一个对象的一个动作
AnimationMixer一个对象所有动作的管理者
AnimationObjectGroup共享同一动画的多个模型集合
AnimationUtils动画的辅助方法
AnimationTrack动画关键帧
PropertyBinding对场景图中某一真实属性的引用
PropertyMixer对场景图中真实对象属性的管理

轨道

名称解释
BooleanKeyFrameTrack布尔类型的关键帧轨道
ColorKeyFrameTrack
NumberKeyFrameTrack
QuaternionKeyFrameTrack
StringKeyframeTrack
VectorKeyframeTrack

音频

摄像机

名称解释
ArrayCamera相机组,vr控制多相机同步移动实用
Camera相机抽象基础类,在构建任何新相机时实用
CubeCamera立方相机
OrthographicCamera正交相机,忽视近大远小的原则
PerspectiveCamera透视相机
StereoCamera立体相机

常量

名称解释
Animation动画常量
Core核心常量
CustomBlendingEquation自定义混合方程常量
Materials材质常量
Rendererwebgl渲染常量
Textures纹理常量

核心

名称解释
BufferAttribute用于存储与BufferGeometry相关的变量
BufferGeometry点,线,面,体的描述
Clock用于跟踪时间
EventDispatcher自定义javascript事件
GLBufferAttributeGL缓冲区属性,好像与webgl有关
InstanceBufferAttribute
InstanceInterleaveBuffer
InterleavedBuffer
InterleavedBufferAttribute
Layears层级,默认为32层,可通过对象layer属性设置层级
Object3DTHREEJS所有对象的基类
RayCaster光线投射,可用于鼠标选取目标
UniformGLSL中的全局变量

附件

曲线

名称解释
ArcCurve弧线
CatmullRomCurve3三维样条曲线
CubicBezierCurve创建一个平滑的二维三次贝塞尔曲线
CubeBezierCurve3创建一个三维三次贝塞尔曲线
EllipseCurve创建椭圆曲线
LineCurve二维线段曲线
LinuCurve3三维线段曲线
QuadraticBezierCurve二维二次贝塞尔曲线
QuadraticBezierCurve3三维二次贝塞尔曲线
SplineCurve二维样条曲线

几何体

名称解释
BoxGeometry几何体
CircleGeometry圆形
CloneGeometry圆锥形
CylinderGeometry圆柱体
DodecahedronGeometry十二面体
EdgesGeometry边缘几何体
ExtrudeGeometry挤压缓冲几何体
IcosahedronGeometry十二面缓冲
LatheGeometry车削几何体
OctahedronGeometry八面体
PlanceGeometry平面缓冲几何体
PolyhedronGeometry多面缓冲几何体
RingGeometry圆环缓冲几何体 类似于二维环
ShaperGeometry形状缓冲几何体 单面
SpheGeometry
TetrahedronGeometry四面缓冲几何体
TorusGeometry甜甜圈形状
TorusKnotGeometry圆环缓冲扭结几何体
TubeGeometry管道缓冲几何体
WireframeGeometry网格几何体

辅助对象

名称解释
ArrowHelper模拟方向的三维箭头对象
AxesHelper坐标轴
BoxHelper用于图形化地展示对象世界轴心对齐的包围盒的辅助对象,展示每个点的三维坐标
Box3Helper模拟三维包围盒的辅助对象
CameraHelper模拟相机视锥体的辅助对象
DirectionalLightHelper模拟平行光的辅助对象,表示光的方向和位置
GridHelper二维网格对象
PolarGridHelper极坐标网格对象
HemisphereLightHelper创建一个虚拟的球形网格
PlanceHelper模拟平面的辅助对象
PointLightHelper模拟一个虚拟球的网格辅助对象模拟点光源,就是将点光源位置可视化
SkeletonHelper用来模拟骨骼 Skeleton 的辅助对象. 该辅助对象使用 LineBasicMaterial 材质.
SpotLightHelper用于模拟聚光灯 SpotLight 的锥形辅助对象.

灯光

名称解释
AmbientLight环境光
AmbientLightProbe环境光探针
DirectionalLight平行光
HemisphereLight半球光
HemisphereLightProb半球光探针
Light光源的基类
LightProb光照探针
PointLight点光源
RectAreaLight平面光光源
SportLight聚光灯

阴影

名称解释
LightShadow光影基类
PointLightShadow点光源阴影
DIrectionalLightShadow方向性光影
SpotLightShadow聚光灯阴影

加载器

管理器

材质

名称解释
LineBasicMaterial基础线条材质
LineDashedMaterial虚线材质
Material材质基类
MeshBasicMaterial基本的网格材质,显示为做基本的颜色或线框,不考虑光线的影响
MeshDepthMaterial使用简单的颜色,但是颜色的深度和距离相机的远近有关
MeshDistanceMaterial网格距离材质,可以通过相机与物体之间的距离展示不同的效果,可以使用顶点着色器去控制
MeshLamberMaterial兰伯特网格材质,考虑光线影响,哑光材质
MeshMatcapMaterial马特卡普网格材质,在三维渲染时提供高光反射效果,可以创建非常真实的表面,如金属,皮肤,塑料等
MeshNormalMaterial法线网格材质,用于将网格外观设置为基于法线向量的颜色,法线向量垂直于表面向量,用于计算光照和
阴影
MeshPhongMaterial高光网格材质,考虑光线影响,光泽材质
MeshPhysicalMaterial物理网格材质,提供更高级物理渲染属性
MeshStandardMaterial标准网格材质,可实现物理渲染PBR,需要灯光才能显示
MeshToonMaterial卡通网格材质
PointsMaterial点材质
RawShaderMaterial原始着色器材质
ShaderMaterial着色器材质,使用着色器来控制顶点如何被放置,像素如何披着色
ShadowMaterial阴影材质
SpriteMaterial点精灵材质,针对单个点渲染时可以使用

数学库

插值

物体

名称中文解释
Bone骨骼
Group分组
InstanceMesh网格实例
Line线创建一条线
LineLoop环线创建一条首尾相接的线
LineSegments线段设置模型的轮廓线
LOD多层次细节根据相机的远近展示更少的几何体来进行精准显示
Mesh网格
Points点集
Skeleton骨架使用一个bones数组来创建一个可以由SkinnedMesh使用的骨架
SkinnedMesh蒙皮网格
Sprite精灵精灵的面总是朝向摄像机的,通常包含一个半透明的纹理

渲染器

名称中文注释
WebGLMultipleRenderTargets多目标渲染器能够使片段着色器写入多个纹理
WegGLRenderer常用渲染器
WebGl1Renderer旧版本webgl1渲染器
WebGLRenderTarget渲染缓冲创建一个渲染缓冲区
WebCubeRenderTarget立方相机渲染器必须配合CubeCamera使用

着色器

名称中文注释
ShaderChunk着色器片段WebGL着色器库的着色器片段
ShaderLib着色器库three.js的WebGL着色器库
UniformsLib外置属性库为webgl着色器提供的Uniforms库
UniformsUtils工具库

webXR

场景

名称中文注释
Fog创建雾气属性
FogExp2雾-指数包含了参数自定义雾的属性
Scene场景是threejs的基础,可防止模型,相机,灯光等

纹理贴图

名称中文注释
CanvasTexturecanvas贴图
CompressedTexture压缩的纹理基于被压缩的数据,创建一个纹理贴图,例如从一个DDS文件中。
CompriessedArrayTexture压缩数组纹理
CubeTexture立方体纹理
DataArrayTexture数据数组纹理
Data3dTexture三维纹理贴图
DataTexture纹理贴图从袁术数据的宽高来直接创建一个纹理贴图
DepthTexture深度纹理贴图
FramebufferTexture帧缓冲纹理贴图
Source纹理数据源
Texture纹理创建一个纹理贴图,将其应用于一个表面,或作为反射折射贴图
VideoTexture视频纹理创建一个使用视频来作为贴图的纹理对象

附件

控制器

名称中文注释
DragControls拖动控件提供可被拖动的交互
FirstPersonControls第一人称控制第一人称视角
FlyControls飞行控制器启用了类似数字内容的创建工具中的飞行模式的导航凡是,可以在3D空间中变换相机并且无任何限制
OrbitControls轨道控制可以使得相机围绕目标进行轨道运动
PointerLockControls指针锁定控件类似于人物操控效果,与CF的操作类似
TrackballControls轨迹球控件与OrbitControls类似,但是没有极点
TransformControls变换控件类似于blender中的模型位置变换,可控制xyz的平移

几何体

辅助对象

灯光

加载器

物体

后期处理

名称中文解释
AdaptiveToneMappingPass自适应色调映射自适应色调映射,用于提高场景亮度和色彩范围
AfterimagePass残影效果残影效果,用于模拟相机快门速度较慢时的残影效果
BloomPass泛光效果泛光效果,用于模拟相机透镜和眼睛对亮度过高区域的适应能力
BokehPass景深效果景深效果,用于模拟相机的景深效果
ClearMaskPass清除蒙版清除蒙版,用于清除之前添加的蒙版
ColorifyPass颜色着色颜色着色,用于改变场景颜色
DotScreenPass点状屏幕效果点状屏幕效果,用于模拟印刷品的效果
FilmPass胶片效果胶片效果,用于模拟电影或照片的颗粒和伪像效果
FlitchPass故障效果故障效果,用于模拟故障或数字干扰效果
GodRaysPass光柱效果光柱效果,用于模拟太阳或其他强光源的光线穿过云层或其他遮挡物时产生的光柱效果
HalftonePass半色调效果半色调效果,用于模拟印刷品的半色调效果
MaskPass蒙版效果蒙版,用于创建蒙版
OutLinePass轮廓线效果轮廓线效果,用于创建物体的轮廓线
PixelationPass像素化像素化效果,用于模拟像素化效果
RenderPass渲染通道渲染通道,用于渲染场景
SAOPass环境光遮蔽环境光遮蔽,用于增强场景细节和深度感
ShaderPass自定义着色器通道自定义着色器通道,用于添加自定义的着色器通道
SSAOPass屏幕空间环境光遮蔽屏幕空间环境光遮蔽,用于模拟光线在环境中的散射和遮蔽效果
SSAARenderPassSSA抗锯齿通道SSAA抗锯齿通道,用于减少场景中的锯齿效果
TAARenderPassTAA抗锯齿通道TAA抗锯齿通道,用于减少场景中的锯齿效果
TexturePass贴图通道贴图通道,用于添加贴图
UnrealBloomPass真实泛光效果真实泛光效果,用于增强场景的泛光效果,提高场景的视觉效果和真实感

渲染器

实用工具