ProceduralTextureData QML Type

允许从 QML 创建和导入TextureData更多

Import Statement: import QtQuick3D.Helpers
Since: Qt 6.6
Inherits:

TextureData

属性

详细说明

ProceduralTextureData 是一种辅助类型,允许从 QML 创建TextureDataTextureData 组件是抽象的,通常由 C++ 创建。使用 ProceduralTextureData,可以从 QML 中填充TextureData

ProceduralTextureData {
    id: dynamicTextureData
    property color color1: "red"
    property color color2: "black"
    width: 32
    height: 32
    hasTransparency: false
    format: TextureData.RGBA8
    textureData: generateTextureData(color1, color2)

    function generateTextureData(newColor1: color, newColor2 : color) : ArrayBuffer {
        let dataBuffer = new ArrayBuffer(width * height * 4)
        let data = new Uint8Array(dataBuffer)
        // Create a checkered pattern using newColor1 and newColor2
        for (let x = 0; x < width; x++) {
            for (let y = 0; y < height; y++) {
                let index = (x + y * width) * 4
                let color = (x % 2 === y % 2) ? newColor1 : newColor2
                data[index + 0] = color.r * 255
                data[index + 1] = color.g * 255
                data[index + 2] = color.b * 255
                data[index + 3] = 255
            }
        }
        return dataBuffer
    }
}

在上述代码片段中,函数 generateTextureData 用于使用 color1 和 color2 两种颜色生成棋盘图案。通过用生成的数据填充 ArrayBuffer,TextureDatatextureData 属性被填充。

属性文档

depth : int [default: 0]

该属性表示纹理数据的深度(像素)。将深度设置为 0 以上表示纹理将作为三维纹理处理。


format : enumeration [default: TextureData.RGBA8]

该属性表示纹理数据的格式。

常量说明
TexureData.None未定义颜色格式
TexureData.RGBA8颜色格式被视为 R、G、B 和 alpha 通道中的 8 位整数。
TexureData.RGBA16F颜色格式在 R、G、B 和 alpha 通道中被视为 16 位浮点数。
TexureData.RGBA32F颜色格式在 R、G、B 和 Alpha 通道中被视为 32 位浮点。
TexureData.RGBE8颜色格式在 R、G 和 B 通道中被视为 8 位尾数和 8 位共享指数。
TexureData.R8在 R 通道中,颜色格式为 8 位整数。
TexureData.R16在 R 通道中,颜色格式被视为 16 位整数。
TexureData.R16F在 R 通道中,颜色格式被视为 16 位浮点数。
TexureData.R32F颜色格式被视为 R 通道中的 32 位浮点数。
TexureData.BC1颜色格式为 BC1 压缩格式,包含 R、G、B 和 alpha 通道。
TexureData.BC2颜色格式为带有 R、G、B 和 Alpha 通道的 BC2 压缩格式。
TexureData.BC3彩色格式为 BC3 压缩格式,有 R、G、B 和 alpha 通道。
TexureData.BC4彩色格式为 BC4 压缩格式,只有一个彩色通道。
TexureData.BC5彩色格式为 BC5 压缩格式,有两个彩色通道。
TexureData.BC6H彩色格式为 BC6H 压缩格式,有三个高动态范围彩色通道。
TexureData.BC7色彩格式为 BC7 压缩格式,具有 R、G、B 和 alpha 通道。
TexureData.DXT1_RGBA彩色格式被视为具有 R、G、B 和 Alpha 通道的 DXT1 压缩格式。
TexureData.DXT1_RGB颜色格式被视为具有 R、G 和 B 通道的 DXT1 压缩格式。
TexureData.DXT3_RGBA彩色格式被视为具有 R、G、B 和 Alpha 通道的 DXT3 压缩格式。
TexureData.DXT5_RGBA彩色格式为 DXT5 压缩格式,有 R、G、B 和 alpha 通道。
TexureData.ETC2_RGB8颜色格式被视为 RGB888 数据的 ETC2 压缩格式。
TexureData.ETC2_RGB8A1对于 Alpha 为 1 位的 RGBA 数据,颜色格式被视为 ETC2 压缩格式。
TexureData.ETC2_RGBA8对于 RGBA8888 数据,颜色格式被视为 ETC2 压缩格式。
TexureData.ASTC_4x4彩色格式被视为 ASTC 压缩格式,占用 4x4 块空间。
TexureData.ASTC_5x4彩色格式被视为 ASTC 压缩格式,占用 5x4 个数据块。
TexureData.ASTC_5x5彩色格式被视为 ASTC 压缩格式,占用 5x5 个数据块。
TexureData.ASTC_6x5彩色格式被视为 ASTC 压缩格式,占用 6x5 个数据块。
TexureData.ASTC_6x6彩色格式被视为 ASTC 压缩格式,占板面积为 6x6 块。
TexureData.ASTC_8x5彩色格式被视为 ASTC 压缩格式,占用 8x5 个数据块。
TexureData.ASTC_8x6彩色格式被视为 ASTC 压缩格式,占用 8x6 块空间。
TexureData.ASTC_8x8彩色格式被视为 ASTC 压缩格式,占用 8x8 个数据块。
TexureData.ASTC_10x5彩色格式被视为 ASTC 压缩格式,占用 10x5 个数据块。
TexureData.ASTC_10x6彩色格式被视为 ASTC 压缩格式,占用 10x6 个数据块。
TexureData.ASTC_10x8彩色格式被视为 ASTC 压缩格式,占用 10x8 个数据块。
TexureData.ASTC_10x10彩色格式被视为 ASTC 压缩格式,占用 10x10 个数据块。
TexureData.ASTC_12x10彩色格式被视为 ASTC 压缩格式,占地面积为 12x10 块。
TexureData.ASTC_12x12彩色格式被视为 ASTC 压缩格式,占位面积为 12x12 块。

注: TexureData.RGBA8 外,并非所有格式在运行时都受支持,这取决于使用的后端和硬件。

注: TexureData.RGBE 在内部表示为TexureData.RGBA8 ,但在用作 lightProbe 或天空盒纹理时,将按描述进行解释。

注: 使用TexureData.None 将假定默认值为TexureData.RGBA8


hasTransparency : bool

此属性表示纹理数据是否具有透明度。


height : int [default: 0]

该属性表示纹理数据的高度(像素)。


textureData : ArrayBuffer

该属性用于保存纹理数据。


width : int [default: 0]

该属性表示纹理数据的宽度(像素)。


© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.