默认情况下,新建的三维对象使用实心的单色表面。要改变三维对象的外观,必须在三维对象上应用纹理。纹理是包裹三维对象的二维图形。

使用的对象

使用下列程序框图对象改变三维对象的表面外观:

操作步骤

创建下列程序框图,从程序上修改三维对象的表面外观。根据您的具体编程目标自定义灰色部分的内容。



下面列出了上述程序框图的要点:

获取要改变的三维对象的引用。获取引用的方法由您的编程需求决定。获取三维对象最常见的方法是创建一个新的三维对象。该例中,先创建了一个三维盒子,然后获取该三维对象的引用。
“特殊:纹理”属性为三维对象添加纹理。如未将“特殊:纹理”属性设置为On,则不能在3D对象上应用纹理。如要应用纹理的对象是另一对象的子类,可将“特殊:纹理”属性设置为Inherit Value,以继承父对象的纹理设置。
获取定义纹理的LabVIEW图像数据。通过下列方法获取LabVIEW图像数据:
  • 使用图形格式选板上的VI将JPG等标准图像格式转换为LabVIEW图像数据。
  • 要使用已有三维对象上的图像,可使用三维图片控件属性或方法。
  • 也可通过图像簇创建一个自定义图像。
该例使用读取JPEG文件VI将JPG文件转换为LabVIEW图像数据。
纹理VI将LabVIEW图像数据转换为场景纹理引用。必须将图像数据转换为场景纹理应用,才能使用场景纹理属性方法来改变三维对象上纹理显示方式。
应用模式属性指定纹理在三维对象上的显示方式。如不设置纹理的应用模式,LabVIEW将混合地应用该纹理,即图像数据与对象的背景色混合。如希望纹理保持原来的二维图的色彩,将应用模式设置为As a DecalAs a replacement。该范例使用纹理的应用模式属性指定纹理以原色显示为图层。
“纹理:设置纹理”方法将纹理分配至引用的三维对象。
使用场景对象引用显示或操作新建的三维对象。可通过该应用实现下列目的:
  • 显示三维对象 - 在前面板窗口创建三维图片控件,将引用连接至控件在程序框图上的接线端。
  • 控制三维对象的大小和位置 - 将引用连接至某个变形VI。
  • 添加对象至多个对象的三维场景 - 通过引用创建包含多个三维对象的三维场景
  • 与三维对象的其他属性交互 - 将引用连接至三维对象的其他属性方法。属性和方法控制三维对象的特性和行为,例如,颜色、光源、纹理。
该范例通过三维图片控件显示了加纹理的三维对象。

提示和疑难解答

  • 可创建更为复杂的纹理。使用场景纹理属性,对纹理进行更多的设置,例如:过滤模式水平垂直换行模式和纹理上使用的变形
  • 纹理是否意外出现在场景中的多个三维对象上?纹理可能已应用于三维对象层次结构中的父对象。任何对三维对象父对象的改动都会应用于其子对象。要解决该问题,需将纹理应用于子对象应用,而不是父对象引用。
  • 纹理是否完全未显示?无论是用户直接将“特殊:纹理”属性设置为On,还是该属性继承了其父属性的On值,“特殊:纹理”属性必须解析为On值。请验证特殊.纹理属性的值。
  • 三维图片控件在前面板上是否显示为引用句柄?必须从前面板而不是程序框图上的接线端创建三维图片控件。在前面板创建三维图片控件后,将相应的程序框图接线端连接至场景对象引用,显示引用的对象。
  • 无法与前面板上的三维图片控件交互?必须配置视角,从不同角度查看三维场景。
  • 总是连线错误输入和错误输出接线端。该范例着重介绍了程序逻辑,但是在实际编程中错误处理是非常重要的一个环节。

范例

关于包含纹理对象的三维场景的范例,见labview\examples\Graphics and Sound\3D Picture Control目录下的3D Model of Solar System VI。

相关主题