IfcPixelTexture提供基于2D图像的纹理贴图,作为像素值的显式数组(像素二进制属性列表)。与IfcImageTexture相反,IfcPixelTexture直接保存像素颜色(和不透明度)的二维列表,而不是引用URL。
架构和ISO X31-19D(ISO X35-D)的定义如下:
●PixelTexture节点将基于2D图像的纹理贴图定义为像素值(图像场)的显式数组和控制纹理在几何体上平铺重复的参数。
●纹理贴图在二维坐标系(s,t)中定义,在两个方向上的范围为0.0到1.0。像素图像的下边缘对应于纹理贴图的S轴,像素图像的左边缘对应于纹理贴图的T轴。像素图像的左下像素对应于s=0.0,t=0.0,并且图像的右上像素对应于s=1.0,t=1.0。
●图像字段指定单个未压缩的二维像素图像。图像字段包含三个整数,表示图像中组件的宽度、高度和数量,后跟表示图像中像素的宽度×高度十六进制值。像素值限制为256个强度级别(即0x00-0xFF十六进制)。
ⅰ单分量图像指定一个字节的十六进制值,表示图像的强度。例如,0xFF是十六进制的全强度(十进制为255),0x00是无强度(十进制为0)。
ⅱ双分量图像指定第一个(高)字节的强度和第二个(低)字节的alpha不透明度。
ⅲ三分量图像中的像素指定第一个(高)字节中的红色分量,然后是绿色和蓝色分量(例如,0xFF0000为红色,0x00FF00为绿色,0x0000FF为蓝色)。
ⅳ四分量图像指定红/绿/蓝之后的alpha不透明度字节(例如,0x0000FF80是半透明蓝色)。值00是完全透明的,FF是完全不透明的,80是半透明的。
请注意,如果alpha和transparency的范围都在0.0到1.0之间,则alpha等于(1.0-transparency)。
IFC2x2中增加的新实体。
Formal Propositions
Rule | Description |
---|---|
MinPixelInS |
宽度(S坐标)方向上的最小像素数应为1。 |
MinPixelInT |
高度(T坐标)方向的最小像素数应为1。 |
NumberOfColours |
颜色成分的数量应为1、2、3或4。 |
SizeOfPixelList |
像素列表应具有精确的宽度*高度成员。 |
PixelAsByteAndSameLength |
为每个像素提供的二进制值应为8位的倍数。所有像素的长度都应相同。 |
Attribute inheritance
# | Attribute | Type | Cardinality | Description | C |
---|---|---|---|---|---|
IfcPresentationItem | |||||
IfcSurfaceTexture | |||||
1 | RepeatS | IfcBoolean | [1:1] | “重复”字段指定纹理在S方向的缠绕方式。如果RepeatS为TRUE(默认值),则纹理贴图将在S方向的[0.0,1.0]纹理坐标范围外重复,以便填充形状。如果RepeatS为FALSE,则纹理坐标将在S方向上钳制,以位于[0.0,1.0]范围内。 | X |
2 | RepeatT | IfcBoolean | [1:1] | RepeatT字段指定纹理在T方向上的缠绕方式。如果RepeatT为TRUE(默认值),则纹理贴图将在T方向的[0.0,1.0]纹理坐标范围外重复,以便填充形状。如果RepeatT为FALSE,则纹理坐标在T方向上被钳制在[0.0,1.0]范围内。 | X |
3 | Mode | IfcIdentifier | [0:1] |
模式属性用于控制多重纹理的外观。然后,该模式控制混合操作的类型。该模式包括一个对亮的外观进行调制,一个对未亮的外观进行替换,以及两者的变化。 注意模式属性的适用值由视图定义或实现者协议确定。建议使用ISO/IES 19775-1.2:2008 X3D体系结构和基本组件第2版第1部分中描述的模式。建议值见18.4.3 MultiTexture。 |
X |
4 | TextureTransform | IfcCartesianTransformationOperator2D | [0:1] | TextureTransform定义应用于纹理坐标的2D变换。它会影响纹理坐标应用于几何表示的曲面的方式。2D变换支持更改形状上纹理的大小、方向和位置。不允许在IfcCartesianTransformationOperator中使用镜像 | X |
5 | Parameter | IfcIdentifier | L[1:?] |
参数属性用于控制多重纹理的外观。适用的参数取决于Mode属性的值。 注意:参数属性列表的适用值由视图定义或实现者协议确定。建议使用ISO/IES 19775-1.2:2008 X3D体系结构和基本组件第2版第1部分中描述的源和功能字段。建议值见18.4.3 MultiTexture。 |
X |
IsMappedBy | IfcTextureCoordinate @Maps |
S[0:?] | 纹理坐标,由纹理顶点到基于顶点的几何项的对应列表提供,或由纹理坐标生成器提供,该生成器将表面纹理应用于几何项的曲面。IFC4更改属性列表末尾添加的新属性。 | X | |
UsedInStyles | IfcSurfaceStyleWithTextures @Textures |
S[0:?] | X | ||
IfcPixelTexture | |||||
6 | Width | IfcInteger | [1:1] |
宽度方向上的像素数。 |
X |
7 | Height | IfcInteger | [1:1] |
高度(T)方向上的像素数。 |
X |
8 | ColourComponents | IfcInteger | [1:1] | 指示像素值是否包含1、2、3或4颜色分量。 | X |
9 | Pixel | IfcBinary | L[1:?] |
十六进制值的平面列表,每个值用1、2、3或4个分量描述一个像素。 |
X |
EXPRESS Specification
ENTITY IfcPixelTexture SUBTYPE OF (IfcSurfaceTexture); Width : IfcInteger; Height : IfcInteger; ColourComponents : IfcInteger; Pixel : LIST [1:?] OF IfcBinary; WHERE MinPixelInS : Width >= 1; MinPixelInT : Height >= 1; NumberOfColours : {1 <= ColourComponents <= 4}; SizeOfPixelList : SIZEOF(Pixel) = (Width * Height); PixelAsByteAndSameLength : SIZEOF(QUERY(temp<* Pixel | (BLENGTH(temp) MOD 8 = 0) AND (BLENGTH(temp) = BLENGTH(Pixel[1])) )) = SIZEOF(Pixel); END_ENTITY;