Skip to content

@simversus/yjvis


@simversus/yjvis / rendering / Renderer

Class: Renderer ​

Defined in: rendering/Renderer.ts:57

引擎主渲染器类 负责管理渲染流程、后端适配 (WebGL/WebGPU)、资源分配和场景绘制

Extends ​

  • BaseObject

Constructors ​

Constructor ​

new Renderer(options): Renderer

Defined in: rendering/Renderer.ts:272

构造函数

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:155

多渲染目标的清除颜色列表


_currentRenderBundle ​

_currentRenderBundle: any

Defined in: rendering/Renderer.ts:138

当前渲染任务包


_scenes ​

_scenes: CaxScene[] = []

Defined in: rendering/Renderer.ts:67

场景实例列表


_textures ​

_textures: Textures

Defined in: rendering/Renderer.ts:116

纹理管理器


autoClear ​

autoClear: boolean = true

Defined in: rendering/Renderer.ts:76

是否在渲染前自动清除画布


autoClearColor ​

autoClearColor: boolean = true

Defined in: rendering/Renderer.ts:78

是否自动清除颜色缓冲


autoClearDepth ​

autoClearDepth: boolean = true

Defined in: rendering/Renderer.ts:80

是否自动清除深度缓冲


autoClearStencil ​

autoClearStencil: boolean = true

Defined in: rendering/Renderer.ts:82

是否自动清除模板缓冲


classHierarchy ​

classHierarchy: ClassEnum[]

Defined in: core/baseObject.ts:19

继承链

Inherited from ​

BaseObject.classHierarchy


coordinateSystem ​

coordinateSystem: CoordinateSystem = CoordinateSystem.WebGL

Defined in: rendering/Renderer.ts:193


customRenderObjectFunction? ​

optional customRenderObjectFunction: Function

Defined in: rendering/Renderer.ts:59

自定义渲染对象的函数钩子


depth ​

depth: boolean = true

Defined in: rendering/Renderer.ts:70

是否开启深度测试


info ​

readonly info: Info

Defined in: rendering/Renderer.ts:98

渲染信息统计


label? ​

optional label: string

Defined in: core/baseObject.ts:27

自定义标识

Inherited from ​

BaseObject.label


onResize? ​

optional onResize: Function

Defined in: rendering/Renderer.ts:64

窗口大小变化时的回调函数 注意:已经默认调用重置窗口和摄像机视角函数


outputColorSpace ​

outputColorSpace: ColorSpace = ColorSpace.SRGB

Defined in: rendering/Renderer.ts:85

输出颜色空间 (默认为 sRGB)


samples ​

samples: number

Defined in: rendering/Renderer.ts:74

MSAA 采样数


stencil ​

stencil: boolean = false

Defined in: rendering/Renderer.ts:72

是否开启模板测试


toneMapping ​

toneMapping: ToneMapping = ToneMapping.No

Defined in: rendering/Renderer.ts:90

色调映射类型 (Tone Mapping)


toneMappingExposure ​

toneMappingExposure: number = 1.0

Defined in: rendering/Renderer.ts:92

色调映射曝光度


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:196

当前使用的渲染 API (WebGL/WebGPU)

Returns ​

API


backend ​

Get Signature ​

get backend(): Backend

Defined in: rendering/Renderer.ts:201

获取底层渲染后端实例

Returns ​

Backend


canvas ​

Get Signature ​

get canvas(): HTMLCanvasElement

Defined in: rendering/Renderer.ts:206

获取关联的 HTMLCanvasElement

Returns ​

HTMLCanvasElement


currentColorSpace ​

Get Signature ​

get currentColorSpace(): any

Defined in: rendering/Renderer.ts:231

获取当前输出色彩空间 如果存在 renderTarget,则优先使用 renderTarget 的色彩空间

Returns ​

any


currentToneMapping ​

Get Signature ​

get currentToneMapping(): ToneMapping

Defined in: rendering/Renderer.ts:258

获取当前实际生效的色调映射类型 当输出到渲染目标时,始终返回 NoToneMapping

Returns ​

ToneMapping


domElement ​

Get Signature ​

get domElement(): HTMLCanvasElement

Defined in: rendering/Renderer.ts:211

获取 DOM 元素 (同 canvas)

Returns ​

HTMLCanvasElement


dpr ​

Get Signature ​

get dpr(): number

Defined in: rendering/Renderer.ts:243

获取设备的像素比率 (DPR)

Returns ​

number


forceWebGL ​

Get Signature ​

get forceWebGL(): boolean

Defined in: rendering/Renderer.ts:216

是否强制使用 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:250

获取视图尺寸 (单位:CSS 像素)

Returns ​

Number2


slot ​

Get Signature ​

get slot(): HTMLElement

Defined in: rendering/Renderer.ts:223

渲染器挂载的容器槽位

Returns ​

HTMLElement

Methods ​

_initWebGL() ​

_initWebGL(): void

Defined in: rendering/Renderer.ts:1452

初始化 WebGL 后端

Returns ​

void


_initWebGPU() ​

_initWebGPU(): void

Defined in: rendering/Renderer.ts:1459

初始化 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:696

执行计算任务 (Compute Shader)

Parameters ​

computeNodes ​

计算节点或节点列表

ComputeNode | ComputeNode[]

Returns ​

Promise<void>


copyFramebufferToTexture() ​

copyFramebufferToTexture(framebufferTexture, rectangle): void

Defined in: rendering/Renderer.ts:1602

将当前帧缓冲区内容拷贝到指定的纹理中

Parameters ​

framebufferTexture ​

Texture

目标纹理

rectangle ​

拷贝区域 (Vec2 或 Vec4),默认为整个纹理尺寸

Vec4 | Vec2

Returns ​

void


copyTextureToBuffer() ​

copyTextureToBuffer(texture, x, y, width, height): Promise<TypedArray>

Defined in: rendering/Renderer.ts:658

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:1657

销毁渲染器实例 释放所有 GPU 资源、监听器并清空内存

Returns ​

void

Overrides ​

BaseObject.dispose


getActiveCubeFace() ​

getActiveCubeFace(): number

Defined in: rendering/Renderer.ts:627

Returns ​

number


getArrayBufferAsync() ​

getArrayBufferAsync(attribute): Promise<ArrayBuffer>

Defined in: rendering/Renderer.ts:654

Parameters ​

attribute ​

BufferAttribute

Returns ​

Promise<ArrayBuffer>


getClearAlpha() ​

getClearAlpha(): number

Defined in: rendering/Renderer.ts:603

Returns ​

number


getClearColor() ​

getClearColor(target): Color4

Defined in: rendering/Renderer.ts:585

Parameters ​

target ​

Color4 = ...

Returns ​

Color4


getClearDepth() ​

getClearDepth(): number

Defined in: rendering/Renderer.ts:611

Returns ​

number


getClearStencil() ​

getClearStencil(): number

Defined in: rendering/Renderer.ts:619

Returns ​

number


getDrawingBufferSize() ​

getDrawingBufferSize(target): Vec2

Defined in: rendering/Renderer.ts:383

获取绘图缓冲区的物理像素尺寸

Parameters ​

target ​

Vec2 = ...

结果存储向量

Returns ​

Vec2

物理像素尺寸


getMainInteractor() ​

getMainInteractor(): Interactor

Defined in: rendering/Renderer.ts:335

获取渲染层交互器 用于处理鼠标/触摸事件,不涉及具体场景内的拾取

Returns ​

Interactor

交互器实例


getMRT() ​

getMRT(): MRTNode

Defined in: rendering/Renderer.ts:353

Returns ​

MRTNode


getPixelRatio() ​

getPixelRatio(): number

Defined in: rendering/Renderer.ts:374

获取当前像素比率

Returns ​

number


getRenderTarget() ​

getRenderTarget(): RenderTarget

Defined in: rendering/Renderer.ts:650

获取当前渲染目标

Returns ​

RenderTarget


getScissor() ​

getScissor(target): Vec4

Defined in: rendering/Renderer.ts:465

Parameters ​

target ​

Vec4

Returns ​

Vec4


getScissorTest() ​

getScissorTest(): boolean

Defined in: rendering/Renderer.ts:520

Returns ​

boolean


getSize() ​

getSize(target): Vec2

Defined in: rendering/Renderer.ts:411

获取当前逻辑窗口尺寸 (CSS 像素)

Parameters ​

target ​

Vec2 = ...

结果存储向量

Returns ​

Vec2


getViewport() ​

getViewport(target): Vec4

Defined in: rendering/Renderer.ts:533

Parameters ​

target ​

Vec4

Returns ​

Vec4


hasFeature() ​

hasFeature(name): boolean

Defined in: rendering/Renderer.ts:1590

检查当前后端是否支持特定功能

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:348

注册帧更新回调函数 会在每一帧渲染循环中调用

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:1683

从渲染器中移除指定场景

Parameters ​

s ​

CaxScene

要移除的场景实例

Returns ​

void


render() ​

render(scene, camera, useFrameBufferTarget): Promise<RenderContext>

Defined in: rendering/Renderer.ts:677

启动场景渲染流程 (同步/异步) 如果渲染器尚未初始化完成,会先等待初始化

Parameters ​

scene ​

场景或单个 Mesh

Scene | Mesh

camera ​

Camera

相机

useFrameBufferTarget ​

boolean = false

是否使用中间帧缓冲 (用于后处理)

Returns ​

Promise<RenderContext>

渲染上下文信息


renderAsync() ​

renderAsync(scene, camera, useFrameBufferTarget): Promise<void>

Defined in: rendering/Renderer.ts:687

异步渲染场景并解析时间戳 (用于性能监测)

Parameters ​

scene ​

Scene | Mesh

camera ​

Camera

useFrameBufferTarget ​

boolean = false

Returns ​

Promise<void>


renderObject() ​

renderObject(object, scene, camera, geometry, material, group, lightsNode): void

Defined in: rendering/Renderer.ts:756

渲染单个几何对象

Parameters ​

object ​

Transform

变换节点

scene ​

Scene

场景

camera ​

Camera

相机

geometry ​

BufferGeometry

几何体

material ​

NodeMaterial

材质

group ​

any

渲染分组

lightsNode ​

LightsNode

灯光节点

Returns ​

void


setClearAlpha() ​

setClearAlpha(alpha): void

Defined in: rendering/Renderer.ts:607

Parameters ​

alpha ​

number

Returns ​

void


setClearColor() ​

setClearColor(color, alpha): void

Defined in: rendering/Renderer.ts:594

设置清除颜色 (Clear Color)

Parameters ​

color ​

Color

颜色值

alpha ​

number = 1

透明度 (0-1),默认为 1

Returns ​

void


setClearColors() ​

setClearColors(colors?): void

Defined in: rendering/Renderer.ts:599

Parameters ​

colors? ​

Color4[]

Returns ​

void


setClearDepth() ​

setClearDepth(depth): void

Defined in: rendering/Renderer.ts:615

Parameters ​

depth ​

number

Returns ​

void


setClearStencil() ​

setClearStencil(stencil): void

Defined in: rendering/Renderer.ts:623

Parameters ​

stencil ​

number

Returns ​

void


setDrawingBufferSize() ​

setDrawingBufferSize(width, height, pixelRatio): void

Defined in: rendering/Renderer.ts:394

设置绘图缓冲区尺寸。 输入的 width/height 为 CSS 像素,canvas.width/height 会按 DPR 转成物理像素。

Parameters ​

width ​

number

宽度 (CSS 像素)

height ​

number

高度 (CSS 像素)

pixelRatio ​

number

像素比率

Returns ​

void


setMRT() ​

setMRT(mrt): Renderer

Defined in: rendering/Renderer.ts:357

Parameters ​

mrt ​

MRTNode

Returns ​

Renderer


setOpaqueSort() ​

setOpaqueSort(method): void

Defined in: rendering/Renderer.ts:453

设置不透明物体的自定义排序方法

Parameters ​

method ​

Function

排序函数

Returns ​

void


setPixelRatio() ​

setPixelRatio(value): void

Defined in: rendering/Renderer.ts:366

设置像素比率

Parameters ​

value ​

number = 1

DPR 值,默认为 1

Returns ​

void


setRenderTarget() ​

setRenderTarget(renderTarget, activeCubeFace, activeMipmapLevel): void

Defined in: rendering/Renderer.ts:637

设置渲染目标 (RenderTarget)

Parameters ​

renderTarget ​

RenderTarget

目标纹理,传 null 则渲染到屏幕

activeCubeFace ​

number = 0

立方体纹理的激活面

activeMipmapLevel ​

number = 0

激活的 Mipmap 层级

Returns ​

void


setScissorCSSPx() ​

setScissorCSSPx(x, y?, width?, height?): void

Defined in: rendering/Renderer.ts:509

Parameters ​

x ​

number | Vec4

y? ​

number

width? ​

number

height? ​

number

Returns ​

void

Deprecated ​

使用 setScissorRectCSSPx,保留此别名以兼容旧调用。


setScissorDevicePx() ​

setScissorDevicePx(x, y?, width?, height?): void

Defined in: rendering/Renderer.ts:516

Parameters ​

x ​

number | Vec4

y? ​

number

width? ​

number

height? ​

number

Returns ​

void

Deprecated ​

使用 setScissorRect,保留此别名以兼容旧调用。


setScissorRect() ​

setScissorRect(x, y?, width?, height?): void

Defined in: rendering/Renderer.ts:478

设置裁剪测试区域 (Scissor Rect)。 输入单位为物理像素,对齐底层 WebGL/WebGPU framebuffer 语义。

Parameters ​

x ​

number | Vec4

y? ​

number

width? ​

number

height? ​

number

Returns ​

void


setScissorRectCSSPx() ​

setScissorRectCSSPx(x, y?, width?, height?): void

Defined in: rendering/Renderer.ts:493

设置裁剪测试区域 (Scissor Rect),输入单位为 CSS 像素。 内部会按当前 DPR 转成物理像素。

Parameters ​

x ​

number | Vec4

y? ​

number

width? ​

number

height? ​

number

Returns ​

void


setScissorTest() ​

setScissorTest(boolean): void

Defined in: rendering/Renderer.ts:528

开启或关闭裁剪测试 (Scissor Test)

Parameters ​

boolean ​

boolean

是否开启

Returns ​

void


setSize() ​

setSize(width, height, updateStyle): void

Defined in: rendering/Renderer.ts:422

设置窗口尺寸 (CSS 像素)。 同步更新 canvas.style 尺寸以及按 DPR 计算后的 drawing buffer 尺寸。

Parameters ​

width ​

number

宽度 (CSS 像素)

height ​

number

高度 (CSS 像素)

updateStyle ​

boolean = true

是否更新 DOM 样式属性

Returns ​

void


setTransparentSort() ​

setTransparentSort(method): void

Defined in: rendering/Renderer.ts:461

设置透明物体的自定义排序方法

Parameters ​

method ​

Function

排序函数

Returns ​

void


setViewport() ​

setViewport(x, y?, width?, height?, minDepth?, maxDepth?): void

Defined in: rendering/Renderer.ts:541

设置视口区域 (Viewport)。 输入单位为物理像素,对齐底层 WebGL/WebGPU framebuffer 语义。

Parameters ​

x ​

number | Vec4

y? ​

number

width? ​

number

height? ​

number

minDepth? ​

number = 0

maxDepth? ​

number = 1

Returns ​

void


setViewportCSSPx() ​

setViewportCSSPx(x, y?, width?, height?, minDepth?, maxDepth?): void

Defined in: rendering/Renderer.ts:563

设置视口区域 (Viewport),输入单位为 CSS 像素。 内部会按当前 DPR 转成物理像素。

Parameters ​

x ​

number | Vec4

y? ​

number

width? ​

number

height? ​

number

minDepth? ​

number = 0

maxDepth? ​

number = 1

Returns ​

void


waitReady() ​

waitReady(): Promise<void>

Defined in: rendering/Renderer.ts:326

等待渲染器完成初始化

Returns ​

Promise<void>

Promise