ProceduralTextureData QML Type
允许从 QML 创建和导入TextureData 。更多
Import Statement: | import QtQuick3D.Helpers |
Since: | Qt 6.6 |
Inherits: |
属性
- depth : int
- format : enumeration
- hasTransparency : bool
- height : int
- textureData : ArrayBuffer
- width : int
详细说明
ProceduralTextureData 是一种辅助类型,允许从 QML 创建TextureData 。TextureData 组件是抽象的,通常由 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,TextureData 的textureData 属性被填充。
属性文档
depth : int |
该属性表示纹理数据的深度(像素)。将深度设置为 0 以上表示纹理将作为三维纹理处理。
format : enumeration |
该属性表示纹理数据的格式。
常量 | 说明 |
---|---|
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 |
该属性表示纹理数据的高度(像素)。
textureData : ArrayBuffer |
该属性用于保存纹理数据。
width : int |
该属性表示纹理数据的宽度(像素)。
© 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.