改变三维对象的表面外观
- 更新时间2025-08-27
- 阅读时长5分钟
默认情况下,新建的三维对象使用实心的单色表面。要改变三维对象的外观,必须在三维对象上应用纹理。纹理是包裹三维对象的二维图形。
使用的对象
使用下列程序框图对象改变三维对象的表面外观:
操作步骤
创建下列程序框图,从程序上修改三维对象的表面外观。根据您的具体编程目标自定义灰色部分的内容。

下面列出了上述程序框图的要点:
|
获取要改变的三维对象的引用。获取引用的方法由您的编程需求决定。获取三维对象最常见的方法是创建一个新的三维对象。该例中,先创建了一个三维盒子,然后获取该三维对象的引用。 |
|
“特殊:纹理”属性为三维对象添加纹理。如未将“特殊:纹理”属性设置为On,则不能在3D对象上应用纹理。如要应用纹理的对象是另一对象的子类,可将“特殊:纹理”属性设置为Inherit Value,以继承父对象的纹理设置。 |
|
获取定义纹理的LabVIEW图像数据。通过下列方法获取LabVIEW图像数据:
|
|
纹理VI将LabVIEW图像数据转换为场景纹理引用。必须将图像数据转换为场景纹理应用,才能使用场景纹理属性和方法来改变三维对象上纹理显示方式。 |
|
应用模式属性指定纹理在三维对象上的显示方式。如不设置纹理的应用模式,LabVIEW将混合地应用该纹理,即图像数据与对象的背景色混合。如希望纹理保持原来的二维图的色彩,将应用模式设置为As a Decal或As a replacement。该范例使用纹理的应用模式属性指定纹理以原色显示为图层。 |
|
“纹理:设置纹理”方法将纹理分配至引用的三维对象。 |
|
使用场景对象引用显示或操作新建的三维对象。可通过该应用实现下列目的:
|
提示和疑难解答
- 可创建更为复杂的纹理。使用场景纹理属性,对纹理进行更多的设置,例如:过滤模式、水平或垂直换行模式和纹理上使用的变形。
- 纹理是否意外出现在场景中的多个三维对象上?纹理可能已应用于三维对象层次结构中的父对象。任何对三维对象父对象的改动都会应用于其子对象。要解决该问题,需将纹理应用于子对象应用,而不是父对象引用。
- 纹理是否完全未显示?无论是用户直接将“特殊:纹理”属性设置为On,还是该属性继承了其父属性的On值,“特殊:纹理”属性必须解析为On值。请验证特殊.纹理属性的值。
- 三维图片控件在前面板上是否显示为引用句柄?必须从前面板而不是程序框图上的接线端创建三维图片控件。在前面板创建三维图片控件后,将相应的程序框图接线端连接至场景对象引用,显示引用的对象。
- 无法与前面板上的三维图片控件交互?必须配置视角,从不同角度查看三维场景。
- 总是连线错误输入和错误输出接线端。该范例着重介绍了程序逻辑,但是在实际编程中错误处理是非常重要的一个环节。
范例
关于包含纹理对象的三维场景的范例,见labview\examples\Graphics and Sound\3D Picture Control目录下的3D Model of Solar System VI。