maya单独显示线框和带贴图物体 优化视窗操作流畅度

xiaoxiao2021-02-28  190

maya有的时候需要在场景里切换物体显示效果,比如线框还是贴图之类

有时候在大量场景文件需要单独对一个物体进行贴图查看显示,而不需要显示其他的,因为加载贴图会很卡

一般方法是我们选中需要显示贴图的物体,然后孤立选择,再按6切换,但有的时候切回去的时候忘了关贴图就会直接卡死maya

max有这种方式可以单独对一个物体显示线框,但是maya没有很方便的方式(我用的2016)

所以这里给出一种方式可以单独切换,比如下面的效果

但不影响渲染结果,只是修改视口的显示效果

这里主要根据的是maya里物体对象显示的绘制覆盖属性

这个属性可以覆盖你在视口设置的物体显示模式,线框啊 实体带贴图啊(viewport 2也是这样)

所以可以根据这个对maya里面视口显示进行优化

比如先重置一遍覆盖显示,然后单独对某些物体显示需要的效果

于是写了下面的mel脚本

global proc setAll() { string $objects[] = `ls -dag -type mesh`; for($object in $objects) { setAttr ($object+".overrideEnabled") 1; setAttr ($object+".overrideTexturing") 0; } } global proc setOneVisible() { string $objects[] = `ls -dag -type mesh -sl`; for($object in $objects) { setAttr ($object+".overrideEnabled") 0; } } global proc setOneInvisible() { string $objects[] = `ls -dag -type mesh -sl`; for($object in $objects) { setAttr ($object+".overrideEnabled") 1; } } global proc wjChangeViewportRender() { if(`window -ex myTestWin`) deleteUI myTestWin; window -t "材质显示切换" myTestWin; columnLayout -adj 1; button -l "初始化全部隐藏" -c "setAll"; button -l "显示材质" -c "setOneVisible"; button -l "隐藏材质" -c "setOneInvisible"; showWindow myTestWin; } wjChangeViewportRender(); 使用方法是先初始化全部隐藏,然后按6键

另外测试表明一开始初始化后,单独再打开某一个带贴图的物体,那个物体的贴图是单独加载的

并不会加载全部贴图,其他物体因为都覆盖的了显示属性,所以可以优化maya里操作流程

当然这还只是一个原型,可以用其他方式去扩展,比如远处的不显示,或者只显示线框

可以在很大程度上使得maya操作更流畅

转载请注明原文地址: https://www.6miu.com/read-79775.html

最新回复(0)