ProceduralTextureData QML 类型

允许从 QML 创建并填充 TextureData更多...

导入语句import QtQuick3D.Helpers
Qt 6.6
继承

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 表示纹理被处理为 3D 纹理。


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 位浮点数。
TextureData.BC1颜色格式被认为是带R、G、B和alpha通道的BC1压缩格式。
TextureData.BC2颜色格式被认为是带R、G、B和alpha通道的BC2压缩格式。
TextureData.BC3颜色格式被认为是带R、G、B和alpha通道的BC3压缩格式。
TextureData.BC4颜色格式被认为是带一个颜色通道的BC4压缩格式。
TextureData.BC5颜色格式被认为是带两个颜色通道的BC5压缩格式。
TextureData.BC6H颜色格式被认为是带三个高动态范围颜色通道的BC6H压缩格式。
TextureData.BC7颜色格式被认为是带R、G、B和alpha通道的BC7压缩格式。
TextureData.DXT1_RGBA颜色格式被认为是带R、G、B和alpha通道的DXT1压缩格式。
TextureData.DXT1_RGB颜色格式被认为是带R、G和B通道的DXT1压缩格式。
TextureData.DXT3_RGBA颜色格式被认为是带R、G、B和alpha通道的DXT3压缩格式。
TextureData.DXT5_RGBA颜色格式被认为是带R、G、B和alpha通道的DXT5压缩格式。
TextureData.ETC2_RGB8颜色格式被认为是RGB888数据使用的ETC2压缩格式。
TextureData.ETC2_RGB8A1颜色格式被认为是带有1位alpha的RGBA数据的ETC2压缩格式。
TextureData.ETC2_RGBA8颜色格式被认为是带RGBA8888数据的ETC2压缩格式。
TextureData.ASTC_4x4颜色格式被认为是具有4x4块脚印的ASTC压缩格式。
TextureData.ASTC_5x4颜色格式被认为是具有5x4块脚印的ASTC压缩格式。
TextureData.ASTC_5x5颜色格式被认为是具有5x5块脚印的ASTC压缩格式。
TextureData.ASTC_6x5颜色格式被认为是具有6x5块脚印的ASTC压缩格式。
TextureData.ASTC_6x6颜色格式被认为是具有6x6块脚印的ASTC压缩格式。
TextureData.ASTC_8x5颜色格式被认为是具有8x5块脚印的ASTC压缩格式。
TextureData.ASTC_8x6颜色格式被认为是具有8x6块脚印的ASTC压缩格式。
TextureData.ASTC_8x8颜色格式被认为是具有8x8块脚印的ASTC压缩格式。
TextureData.ASTC_10x5颜色格式被认为是具有10x5块脚印的ASTC压缩格式。
TextureData.ASTC_10x6颜色格式被认为是具有10x6块脚印的ASTC压缩格式。
TextureData.ASTC_10x8颜色格式被认为是具有10x8块脚印的ASTC压缩格式。
TextureData.ASTC_10x10颜色格式被认为是具有10x10块脚印的ASTC压缩格式。
TextureData.ASTC_12x10颜色格式被认为是具有12x10块脚印的ASTC压缩格式。
TextureData.ASTC_12x12颜色格式被认为是具有12x12块脚印的ASTC压缩格式。

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

注意:TextureData.RGBE在内部表示为TextureData.RGBA8,但在用作lightProbe或skybox纹理时按描述解释。

注意:使用值TextureData.None将假定TextureData.RGBA8的默认值。


hasTransparency : bool

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


高度 : 整型 [默认: 0]

此属性存储纹理数据的像素高度。


textureData : ArrayBuffer

此属性存储纹理数据。


width : 整型 [默认: 0]

此属性存储纹理数据的像素宽度。


© 2024 Qt公司有限公司。本文档中包含的贡献文档的版权属于各自的业主。本提供的文档是根据自由软件基金会发布的版本1.3的GNU自由文档许可协议许可的。Qt和相应的标志是芬兰及/或全球其他国家的Qt公司有限公司的商标。所有其他商标均属于各自的所有者。