ProceduralTextureData QML 类型
允许从 QML 创建并填充 TextureData。 更多...
导入语句 | import QtQuick3D.Helpers |
自 | Qt 6.6 |
继承 |
属性
- depth : int
- format : 枚举
- 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 表示纹理被处理为 3D 纹理。
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 位浮点数。 |
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 |
此属性表示纹理数据是否具有透明度。
高度 : 整型 |
此属性存储纹理数据的像素高度。
textureData : ArrayBuffer |
此属性存储纹理数据。
width : 整型 |
此属性存储纹理数据的像素宽度。
© 2024 Qt公司有限公司。本文档中包含的贡献文档的版权属于各自的业主。本提供的文档是根据自由软件基金会发布的版本1.3的GNU自由文档许可协议许可的。Qt和相应的标志是芬兰及/或全球其他国家的Qt公司有限公司的商标。所有其他商标均属于各自的所有者。