Large texture manager class (general)

大图合集类(通用)

层级 (查看完整内容)

构造函数

属性

active: boolean = true
autoExtend: boolean = false

Whether to automatically extend the number of large textures

是否自动扩展大图数量

backColor: Vector4 = ...

Background color

背景色

checkDup: boolean = true

Whether to check duplicates

是否查重

COLOR_ITEM_SIZE: number = 4
delay: number = 30

Delay time 30ms

延迟时间 30ms

destroyed: boolean = false

Whether destroyed

是否已销毁

EXTEND_SIZE: number = 0

The texture expansion size (can reduce black edges)

纹理扩边量(可减少黑边)

gammaCorrection: number = 1.0

The gamma correction value of the texture. If set to 1.0, texture sampling will be linear without any correction.

纹理的伽马校正值。如果设置为1.0,则纹理采样将为线性,不进行任何校正。

gpuMemory: number = 0

GPU memory usage

显存使用量

id: number
immediately: boolean = false

Whether to immediately execute merging

是否立即执行合并

LARGE_TEX_H: number = 2048

Large texture height

大纹理高度

LARGE_TEX_N: number = 32

Large texture maximum number

大纹理最大数量

LARGE_TEX_W: number = 2048

Large texture width

大纹理宽度

largeTexs: LargeTex[] = []

Merged large texture objects

合并的大纹理对象

mipMap: boolean = true

Whether to enable MipMap

是否启用MipMap

name: string

Large texture set name

大图合集名称

sRGB: boolean = false

Whether sRGB space

是否sRGB空间

TEX_SIZE_MAX: number = 1024

The maximum allowed size of small textures that can be merged, beyond which they will not be merged

参与合并的小纹理最大允许尺寸,超过这个尺寸将不参与合并

TEX_SIZE_MIN: number = 16

The minimum size of small textures that can be merged, beyond which they will not be merged

参与合并的小纹理最小允许尺寸,超过这个尺寸将不参与合并

texAnisoLevel: number = 1

Anisotropic value

各向异性值

texFormat: RenderTargetFormat = RenderTargetFormat.R8G8B8A8

Large texture pixel format

大纹理像素格式

texMode: FilterMode = FilterMode.Trilinear

Texture sampling mode

纹理采样模式

texWrap: WrapMode = WrapMode.Clamp

Texture repeat mode

纹理重复模式

totalCapacity: number = 0

Total capacity

总容量

updateHook: ((index: number, completedIds: number[]) => void) = null

Update hook

更新钩子

usedCapacity: number = 0

Used capacity

已经使用的容量

方法

  • 添加纹理占位符

    参数

    • url: string

      纹理资源

    • w: number

      纹理宽度

    • h: number

      纹理高度

    • scale: number = 1

      放缩系数(0.1~10.0)

    • largeTextureIndex: number = -1

      指定大图纹理编号(-1:不指定)

    返回 number

  • 添加小纹理

    参数

    • tex: Texture2D

      纹理对象

    • scale: number = 1

      放缩系数(0.1~10.0)

    • largeTextureIndex: number = -1

      指定大图纹理编号(-1:不指定)

    • url: string = null

      纹理URL

    • needRemove: boolean = false

      小纹理用完后是否需要删除

    返回 number

    成功大纹理编号,失败-1

  • 将一组小纹理合并到指定的大纹理中

    参数

    • texs: Texture2D[]

      小纹理数组

    • scale: number

      放缩系数

    • largeTextureIndex: number

      大纹理编号

    • needRemove: boolean = false

      小纹理用完后是否需要删除

    返回 boolean

    成功true,失败false,如果失败,所有的小纹理都没有合并进大纹理中

  • 大图指定位置用颜色填充

    参数

    • largeTextureIndex: number

      大纹理序号

    • x: number

      位置x

    • y: number

      位置y

    • w: number

      宽度

    • h: number

      高度

    • r: number

      红色成分(0~255)

    • g: number

      绿色成分(0~255)

    • b: number

      蓝色成分(0~255)

    • a: number = 255

      Alpha(0~255)

    返回 void

  • 更新小纹理

    参数

    • tex: Texture2D

      纹理对象

    • scale: number = 1

      放缩系数(0.1~10.0)

    • largeTextureIndex: number = -1

      指定大图纹理编号(-1:不指定)

    • 可选url: string

      纹理URL

    • needRemove: boolean = false

      小纹理用完后是否需要删除

    返回 number

    成功大纹理编号,失败-1

  • 计算纹理分块尺寸

    参数

    • tw: number

      纹理宽度

    • th: number

      纹理高度

    • scale: number

      放缩系数

    • tsm: number

      最小尺寸

    • exs: number

      边缘扩展

    返回 number[]

    [宽,高,水平块数,垂直块数]