Render.ru

Backface

Ro

Знаток
Рейтинг
38
#1
Привет, обьясните плиз, назначил toggle backface surface culling в хоткее, что бы одним нажатием включать и выключать выделение невидимых (задних) фейсов. но в режиме фейсов хоть задняя часть и исчезает, но сетка с фейсами остается, и выделяются как ни в чем не бывало. Если поменять режим backface culling в дисплей/полигонc - фейсы становятся недоступны к выделению, здорово, но тогда назначеная в хоткее функция toggle backface surface culling не работает. Тоже самое, если настроить backface culling в преференсах :( надеюсь, хоть суть понятно обьяснил :) Спасибо!
 

Fabis

Активный участник
Рейтинг
16
#2
Может метод устаревший, но я его где-то нашел, вот такой скрипт-переключалка:


Код:
proc ToggleBackFaceCulling()
           {
           
           if( `headsUpDisplay -ex BackFaceCullingHUD`)
           headsUpDisplay -rem BackFaceCullingHUD;
           string $Meshes[] = `filterExpand -sm 31 -sm 32 -sm 34 -sm 12`;
           string $Tokens[];
           int $Cycle;
           if( `size ($Meshes)` != 0)
           {
              tokenize $Meshes[0] "." $Tokens;
              $Tokens = `listRelatives -s -ni $Tokens[0]`;
              $ShapeName = $Tokens[0];
           
             $Val = `getAttr ($ShapeName + ".bck")`;
             if( $Val == 0)
           	{
           		$Cycle = 1;
           		headsUpDisplay -lfs "large" -l Wire -section 5 -block 15 BackFaceCullingHUD;
           	}
             else if($Val == 1)
           	{
           		$Cycle = 3;
           		headsUpDisplay -lfs "large" -l Full -section 5 -block 15 BackFaceCullingHUD;
           	}
             setAttr ($ShapeName + ".bck") $Cycle;
           
           
           }
           
           
           else if( size(`filterExpand -sm 68 -sm 36 -sm 37 -sm 38`) > 0)
             {
           	string $currentPanel = `getPanel -withFocus`;  
           	 string $panelType = `getPanel -to $currentPanel`;  
           	 if ($panelType ==  "modelPanel") 
           	 {	 
           		   int $culling = `modelEditor -query -backfaceCulling $currentPanel`;
           		   modelEditor -edit -backfaceCulling (1 - $culling) $currentPanel;
           	 }
             }
           }
           ToggleBackFaceCulling();
 

Ro

Знаток
Рейтинг
38
#3
Пасиба! :) абсолютно то что надо, тока что бы вернуть в предыдущее состояние приходится два раза вызывать процедуру. Бум оптимизировать :)
 

Fabis

Активный участник
Рейтинг
16
#4
Ну назначьте скрипт на кнопку в shelf или на hotkey и будет быстрее. Можете также вырезать из цикла "Full" или "Wire" режим.
 
Сверху