@simversus/yjvis / rendering / Renderer
Class: Renderer
Defined in: rendering/Renderer.ts:47
引擎主渲染器类 负责管理渲染流程、后端适配 (WebGL/WebGPU)、资源分配和场景绘制
Extends
BaseObject
Constructors
Constructor
new Renderer(
options):Renderer
Defined in: rendering/Renderer.ts:258
构造函数
Parameters
options
Partial<{ antialias: boolean; container: HTMLElement; dpr: number; forceWebGL: boolean; rendererSetting: any; requestMaxBufferSize: boolean; samples: number; }> = {}
配置项
Returns
Renderer
Overrides
BaseObject.constructor
Properties
_clearColors?
optional_clearColors:Color4[]
Defined in: rendering/Renderer.ts:141
多渲染目标的清除颜色列表
_currentRenderBundle
_currentRenderBundle:
any
Defined in: rendering/Renderer.ts:126
当前渲染任务包
_scenes
_scenes:
CaxScene[] =[]
Defined in: rendering/Renderer.ts:55
场景实例列表
_textures
_textures:
Textures
Defined in: rendering/Renderer.ts:104
纹理管理器
autoClear
autoClear:
boolean=true
Defined in: rendering/Renderer.ts:64
是否在渲染前自动清除画布
autoClearColor
autoClearColor:
boolean=true
Defined in: rendering/Renderer.ts:66
是否自动清除颜色缓冲
autoClearDepth
autoClearDepth:
boolean=true
Defined in: rendering/Renderer.ts:68
是否自动清除深度缓冲
autoClearStencil
autoClearStencil:
boolean=true
Defined in: rendering/Renderer.ts:70
是否自动清除模板缓冲
classHierarchy
classHierarchy:
ClassEnum[]
Defined in: core/baseObject.ts:19
继承链
Inherited from
BaseObject.classHierarchy
coordinateSystem
coordinateSystem:
CoordinateSystem=CoordinateSystem.WebGL
Defined in: rendering/Renderer.ts:179
customRenderObjectFunction?
optionalcustomRenderObjectFunction:Function
Defined in: rendering/Renderer.ts:49
自定义渲染对象的函数钩子
depth
depth:
boolean=true
Defined in: rendering/Renderer.ts:58
是否开启深度测试
info
readonlyinfo:Info
Defined in: rendering/Renderer.ts:86
渲染信息统计
label?
optionallabel:string
Defined in: core/baseObject.ts:27
自定义标识
Inherited from
BaseObject.label
onResize?
optionalonResize:Function
Defined in: rendering/Renderer.ts:52
窗口大小变化时的回调函数
outputColorSpace
outputColorSpace:
ColorSpace=ColorSpace.SRGB
Defined in: rendering/Renderer.ts:73
输出颜色空间 (默认为 sRGB)
samples
samples:
number
Defined in: rendering/Renderer.ts:62
MSAA 采样数
stencil
stencil:
boolean=false
Defined in: rendering/Renderer.ts:60
是否开启模板测试
toneMapping
toneMapping:
ToneMapping=ToneMapping.No
Defined in: rendering/Renderer.ts:78
色调映射类型 (Tone Mapping)
toneMappingExposure
toneMappingExposure:
number=1.0
Defined in: rendering/Renderer.ts:80
色调映射曝光度
userData
userData:
object={}
Defined in: core/baseObject.ts:23
用户自定义数据
Inherited from
BaseObject.userData
uuid
uuid:
string
Defined in: core/baseObject.ts:15
唯一标识符
Inherited from
BaseObject.uuid
Accessors
api
Get Signature
get api():
API
Defined in: rendering/Renderer.ts:182
当前使用的渲染 API (WebGL/WebGPU)
Returns
API
backend
Get Signature
get backend():
Backend
Defined in: rendering/Renderer.ts:187
获取底层渲染后端实例
Returns
Backend
canvas
Get Signature
get canvas():
HTMLCanvasElement
Defined in: rendering/Renderer.ts:192
获取关联的 HTMLCanvasElement
Returns
HTMLCanvasElement
currentColorSpace
Get Signature
get currentColorSpace():
any
Defined in: rendering/Renderer.ts:217
获取当前输出色彩空间 如果存在 renderTarget,则优先使用 renderTarget 的色彩空间
Returns
any
currentToneMapping
Get Signature
get currentToneMapping():
ToneMapping
Defined in: rendering/Renderer.ts:244
获取当前实际生效的色调映射类型 当输出到渲染目标时,始终返回 NoToneMapping
Returns
ToneMapping
domElement
Get Signature
get domElement():
HTMLCanvasElement
Defined in: rendering/Renderer.ts:197
获取 DOM 元素 (同 canvas)
Returns
HTMLCanvasElement
dpr
Get Signature
get dpr():
number
Defined in: rendering/Renderer.ts:229
获取设备的像素比率 (DPR)
Returns
number
forceWebGL
Get Signature
get forceWebGL():
boolean
Defined in: rendering/Renderer.ts:202
是否强制使用 WebGL 模式
Returns
boolean
mtime
Get Signature
get mtime():
number
Defined in: core/baseObject.ts:56
获取对象的最后修改时间戳
Returns
number
Inherited from
BaseObject.mtime
size
Get Signature
get size():
Number2
Defined in: rendering/Renderer.ts:236
获取视图尺寸 (单位:CSS 像素)
Returns
Number2
slot
Get Signature
get slot():
HTMLElement
Defined in: rendering/Renderer.ts:209
渲染器挂载的容器槽位
Returns
HTMLElement
Methods
_initWebGL()
_initWebGL():
void
Defined in: rendering/Renderer.ts:1053
初始化 WebGL 后端
Returns
void
_initWebGPU()
_initWebGPU():
void
Defined in: rendering/Renderer.ts:1060
初始化 WebGPU 后端
Returns
void
addEventListener()
addEventListener(
type,cb):void
Defined in: core/baseObject.ts:105
添加事件监听器
Parameters
type
string
事件类型字符串
cb
Function
事件触发时的回调函数
Returns
void
Inherited from
BaseObject.addEventListener
changed()
changed():
void
Defined in: core/baseObject.ts:72
标记对象为已修改 更新修改时间戳并触发所有注册的变更回调
Returns
void
Inherited from
BaseObject.changed
compute()
compute(
computeNodes):Promise<void>
Defined in: rendering/Renderer.ts:634
执行计算任务 (Compute Shader)
Parameters
computeNodes
计算节点或节点列表
ComputeNode | ComputeNode[]
Returns
Promise<void>
copyFramebufferToTexture()
copyFramebufferToTexture(
framebufferTexture,rectangle):void
Defined in: rendering/Renderer.ts:1203
将当前帧缓冲区内容拷贝到指定的纹理中
Parameters
framebufferTexture
Texture
目标纹理
rectangle
拷贝区域 (Vec2 或 Vec4),默认为整个纹理尺寸
Returns
void
copyTextureToBuffer()
copyTextureToBuffer(
texture,x,y,width,height):Promise<TypedArray>
Defined in: rendering/Renderer.ts:596
Parameters
texture
Texture
x
number = 0
y
number = 0
width
number = texture.image.width
height
number = texture.image.height
Returns
Promise<TypedArray>
dispatchEvent()
dispatchEvent(
event):void
Defined in: core/baseObject.ts:126
分发事件 触发所有注册了该事件类型的监听器
Parameters
event
事件对象,包含 type 和可选的 data
data?
any
type
string
Returns
void
Inherited from
BaseObject.dispatchEvent
dispose()
dispose():
void
Defined in: rendering/Renderer.ts:1258
销毁渲染器实例 释放所有 GPU 资源、监听器并清空内存
Returns
void
Overrides
BaseObject.dispose
getActiveCubeFace()
getActiveCubeFace():
number
Defined in: rendering/Renderer.ts:565
Returns
number
getArrayBufferAsync()
getArrayBufferAsync(
attribute):Promise<ArrayBuffer>
Defined in: rendering/Renderer.ts:592
Parameters
attribute
BufferAttribute
Returns
Promise<ArrayBuffer>
getClearAlpha()
getClearAlpha():
number
Defined in: rendering/Renderer.ts:541
Returns
number
getClearColor()
getClearColor(
target):Color4
Defined in: rendering/Renderer.ts:523
Parameters
target
Color4 = ...
Returns
getClearDepth()
getClearDepth():
number
Defined in: rendering/Renderer.ts:549
Returns
number
getClearStencil()
getClearStencil():
number
Defined in: rendering/Renderer.ts:557
Returns
number
getDrawingBufferSize()
getDrawingBufferSize(
target):Vec2
Defined in: rendering/Renderer.ts:370
获取绘图缓冲区的物理像素尺寸
Parameters
target
Vec2 = ...
结果存储向量
Returns
物理像素尺寸
getMainInteractor()
getMainInteractor():
Interactor
Defined in: rendering/Renderer.ts:322
获取渲染层交互器 用于处理鼠标/触摸事件,不涉及具体场景内的拾取
Returns
交互器实例
getMRT()
getMRT():
MRTNode
Defined in: rendering/Renderer.ts:340
Returns
MRTNode
getPixelRatio()
getPixelRatio():
number
Defined in: rendering/Renderer.ts:361
获取当前像素比率
Returns
number
getRenderTarget()
getRenderTarget():
RenderTarget
Defined in: rendering/Renderer.ts:588
获取当前渲染目标
Returns
RenderTarget
getScissor()
getScissor(
target):Vec4
Defined in: rendering/Renderer.ts:450
Parameters
target
Returns
getScissorTest()
getScissorTest():
boolean
Defined in: rendering/Renderer.ts:478
Returns
boolean
getSize()
getSize(
target):Vec2
Defined in: rendering/Renderer.ts:397
获取当前逻辑窗口尺寸 (CSS 像素)
Parameters
target
Vec2 = ...
结果存储向量
Returns
getViewport()
getViewport(
target):Vec4
Defined in: rendering/Renderer.ts:491
Parameters
target
Returns
hasFeature()
hasFeature(
name):boolean
Defined in: rendering/Renderer.ts:1191
检查当前后端是否支持特定功能
Parameters
name
string
功能名称
Returns
boolean
是否支持
is()
is(
t):boolean
Defined in: core/baseObject.ts:65
检查对象是否属于指定的类类型
Parameters
t
ClassEnum
类类型枚举值
Returns
boolean
如果对象是该类型或继承自该类型,则返回 true
Inherited from
BaseObject.is
onChanged()
onChanged(
cb): () =>void
Defined in: core/baseObject.ts:90
注册对象变更回调 当对象发生改变(调用 changed 方法)时触发
Parameters
cb
Function
回调函数
Returns
取消注册该回调的函数
():
void
Returns
void
Inherited from
BaseObject.onChanged
registerFrameCallback()
registerFrameCallback(
cb): () =>FrameCallBack[]
Defined in: rendering/Renderer.ts:335
注册帧更新回调函数 会在每一帧渲染循环中调用
Parameters
cb
FrameCallBack
回调函数
Returns
取消注册的函数
():
FrameCallBack[]
Returns
FrameCallBack[]
removeEventListener()
removeEventListener(
type,cb):void
Defined in: core/baseObject.ts:116
移除事件监听器
Parameters
type
string
事件类型字符串
cb
Function
要移除的回调函数
Returns
void
Inherited from
BaseObject.removeEventListener
removeScene()
removeScene(
s):void
Defined in: rendering/Renderer.ts:1284
从渲染器中移除指定场景
Parameters
s
要移除的场景实例
Returns
void
render()
render(
scene,camera,useFrameBufferTarget):Promise<RenderContext>
Defined in: rendering/Renderer.ts:615
启动场景渲染流程 (同步/异步) 如果渲染器尚未初始化完成,会先等待初始化
Parameters
scene
场景或单个 Mesh
Scene | Mesh
camera
相机
useFrameBufferTarget
boolean = false
是否使用中间帧缓冲 (用于后处理)
Returns
Promise<RenderContext>
渲染上下文信息
renderAsync()
renderAsync(
scene,camera,useFrameBufferTarget):Promise<void>
Defined in: rendering/Renderer.ts:625
异步渲染场景并解析时间戳 (用于性能监测)
Parameters
scene
Scene | Mesh
camera
useFrameBufferTarget
boolean = false
Returns
Promise<void>
renderObject()
renderObject(
object,scene,camera,geometry,material,group,lightsNode):void
Defined in: rendering/Renderer.ts:694
渲染单个几何对象
Parameters
object
Transform
变换节点
scene
Scene
场景
camera
相机
geometry
BufferGeometry
几何体
material
NodeMaterial
材质
group
any
渲染分组
lightsNode
LightsNode
灯光节点
Returns
void
setClearAlpha()
setClearAlpha(
alpha):void
Defined in: rendering/Renderer.ts:545
Parameters
alpha
number
Returns
void
setClearColor()
setClearColor(
color,alpha):void
Defined in: rendering/Renderer.ts:532
设置清除颜色 (Clear Color)
Parameters
color
颜色值
alpha
number = 1
透明度 (0-1),默认为 1
Returns
void
setClearColors()
setClearColors(
colors?):void
Defined in: rendering/Renderer.ts:537
Parameters
colors?
Color4[]
Returns
void
setClearDepth()
setClearDepth(
depth):void
Defined in: rendering/Renderer.ts:553
Parameters
depth
number
Returns
void
setClearStencil()
setClearStencil(
stencil):void
Defined in: rendering/Renderer.ts:561
Parameters
stencil
number
Returns
void
setDrawingBufferSize()
setDrawingBufferSize(
width,height,pixelRatio):void
Defined in: rendering/Renderer.ts:381
设置绘图缓冲区尺寸 会同步更新 Canvas 的逻辑尺寸和后端状态
Parameters
width
number
宽度 (CSS 像素)
height
number
高度 (CSS 像素)
pixelRatio
number
像素比率
Returns
void
setMRT()
setMRT(
mrt):Renderer
Defined in: rendering/Renderer.ts:344
Parameters
mrt
MRTNode
Returns
Renderer
setOpaqueSort()
setOpaqueSort(
method):void
Defined in: rendering/Renderer.ts:438
设置不透明物体的自定义排序方法
Parameters
method
Function
排序函数
Returns
void
setPixelRatio()
setPixelRatio(
value):void
Defined in: rendering/Renderer.ts:353
设置像素比率
Parameters
value
number = 1
DPR 值,默认为 1
Returns
void
setRenderTarget()
setRenderTarget(
renderTarget,activeCubeFace,activeMipmapLevel):void
Defined in: rendering/Renderer.ts:575
设置渲染目标 (RenderTarget)
Parameters
renderTarget
RenderTarget
目标纹理,传 null 则渲染到屏幕
activeCubeFace
number = 0
立方体纹理的激活面
activeMipmapLevel
number = 0
激活的 Mipmap 层级
Returns
void
setScissor()
setScissor(
x,y?,width?,height?):void
Defined in: rendering/Renderer.ts:467
设置裁剪测试区域 (Scissor) 传入的是 CSS 像素值
Parameters
x
X 坐标或 Vec4 区域
number | Vec4
y?
number
Y 坐标
width?
number
宽度
height?
number
高度
Returns
void
setScissorTest()
setScissorTest(
boolean):void
Defined in: rendering/Renderer.ts:486
开启或关闭裁剪测试 (Scissor Test)
Parameters
boolean
boolean
是否开启
Returns
void
setSize()
setSize(
width,height,updateStyle):void
Defined in: rendering/Renderer.ts:408
设置窗口尺寸 (CSS 像素) 同步更新 Canvas 的宽度、高度以及后端状态
Parameters
width
number
宽度 (CSS 像素)
height
number
高度 (CSS 像素)
updateStyle
boolean = true
是否更新 DOM 样式属性
Returns
void
setTransparentSort()
setTransparentSort(
method):void
Defined in: rendering/Renderer.ts:446
设置透明物体的自定义排序方法
Parameters
method
Function
排序函数
Returns
void
setViewport()
setViewport(
x,y?,width?,height?,minDepth?,maxDepth?):void
Defined in: rendering/Renderer.ts:505
设置视口区域 (Viewport) 传入的是 CSS 像素值
Parameters
x
X 坐标或 Vec4 区域
number | Vec4
y?
number
Y 坐标
width?
number
宽度
height?
number
高度
minDepth?
number = 0
最小深度 (0-1)
maxDepth?
number = 1
最大深度 (0-1)
Returns
void
waitReady()
waitReady():
Promise<void>
Defined in: rendering/Renderer.ts:313
等待渲染器完成初始化
Returns
Promise<void>
Promise
