mirror of
https://github.com/unanmed/HumanBreak.git
synced 2025-04-18 17:48:52 +08:00
3.4 KiB
3.4 KiB
GL2 类 API 文档
需丰富
本文档由 DeepSeek R1
模型生成并微调。
继承关系
graph LR
GL2 --> RenderItem --> EventEmitter
click RenderItem "./RenderItem"
click EventEmitter "https://nodejs.org/api/events.html#class-eventemitter"
属性说明
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
support |
boolean (静态) |
检测 WebGL2 支持性 | 标识当前环境是否支持 WebGL2 |
canvas |
HTMLCanvasElement |
- | 绑定的 WebGL2 画布元素 |
gl |
WebGL2RenderingContext |
- | WebGL2 渲染上下文 |
UNIFORM_1f ~ UNIFORM_4uiv |
UniformType 枚举 |
对应枚举值 | WebGL uniform 类型常量(共 25 种) |
U_MATRIX_2x2 ~ U_MATRIX_4x4 |
UniformMatrix 枚举 |
对应枚举值 | 矩阵类型 uniform 常量(9 种) |
ATTRIB_1f ~ ATTRIB_I4uiv |
AttribType 枚举 |
对应枚举值 | 顶点属性类型常量(12 种) |
MAX_TEXTURE_COUNT |
number |
0 |
最大纹理支持数量(实际值由 WebGL 上下文决定) |
构造方法
constructor
参数
type
: 渲染模式(absolute
绝对定位 /static
跟随摄像机)
行为
- 初始化 WebGL2 上下文
- 自动检测 WebGL2 支持性(通过静态属性
support
) - 设置默认渲染模式
方法说明
createProgram
function createProgram<T extends GL2Program>(
Program: ProgramConstructor<T>,
vs?: string,
fs?: string
): T;
描述
创建 WebGL 着色器程序
参数
Program
: 着色器程序类(需继承GL2Program
)vs
: 自定义顶点着色器代码(可选)fs
: 自定义片元着色器代码(可选)
示例
class MyProgram extends GL2Program {}
const program = gl2.createProgram(MyProgram);
useProgram
function useProgram(program: GL2Program): void;
描述
切换当前使用的着色器程序
示例
gl2.useProgram(shaderProgram);
framebuffer
function framebuffer(
name: string,
texture: IShaderTexture2D,
clear?: boolean
): void;
描述
将渲染结果输出到帧缓冲纹理
参数
name
: 帧缓冲名称texture
: 目标纹理对象clear
: 是否清空画布
drawScene
(抽象方法)
function drawScene(
canvas: MotaOffscreenCanvas2D,
gl: WebGL2RenderingContext,
program: GL2Program,
transform: Transform
): void;
描述
抽象渲染方法,子类必须实现具体绘制逻辑
静态方法说明
GL2.support
static readonly support: boolean;
描述
静态只读属性,检测 WebGL2 支持性
示例
if (GL2.support) {
// 初始化 WebGL2 功能
}
总使用示例
暂时没有。