IfcPixelTexture

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

RuleDescription
MinPixelInS

宽度(S坐标)方向上的最小像素数应为1。

MinPixelInT

高度(T坐标)方向的最小像素数应为1。

NumberOfColours

颜色成分的数量应为1、2、3或4。

SizeOfPixelList

像素列表应具有精确的宽度*高度成员。

PixelAsByteAndSameLength

为每个像素提供的二进制值应为8位的倍数。所有像素的长度都应相同。

 

 

 

 

 

 

 

 

 

 

 

 

 

Attribute inheritance

#AttributeTypeCardinalityDescriptionC
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。
按照惯例,参数[1]应保存源值,参数[2]保存函数值,参数[3]保存用于选择操作的基本RGB颜色,参数[4]保存用于选择操作的alpha值。

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;

 

posted @ 2021-01-01 09:39  西北逍遥  阅读(267)  评论(0编辑  收藏  举报