1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Backface

Тема в разделе "Maya", создана пользователем Ro, 26 окт 2008.

Модераторы: Dark™, Skif
  1. Ro

    Ro Знаток

    С нами с:
    28.11.2007
    Сообщения:
    291
    Симпатии:
    0
    Баллы:
    28
    Привет, обьясните плиз, назначил toggle backface surface culling в хоткее, что бы одним нажатием включать и выключать выделение невидимых (задних) фейсов. но в режиме фейсов хоть задняя часть и исчезает, но сетка с фейсами остается, и выделяются как ни в чем не бывало. Если поменять режим backface culling в дисплей/полигонc - фейсы становятся недоступны к выделению, здорово, но тогда назначеная в хоткее функция toggle backface surface culling не работает. Тоже самое, если настроить backface culling в преференсах :( надеюсь, хоть суть понятно обьяснил :) Спасибо!
     
  2. Fabis

    Fabis Активный участник

    С нами с:
    26.10.2006
    Сообщения:
    454
    Симпатии:
    0
    Баллы:
    16
    Может метод устаревший, но я его где-то нашел, вот такой скрипт-переключалка:


    Код:
    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();
     
  3. Ro

    Ro Знаток

    С нами с:
    28.11.2007
    Сообщения:
    291
    Симпатии:
    0
    Баллы:
    28
    Пасиба! :) абсолютно то что надо, тока что бы вернуть в предыдущее состояние приходится два раза вызывать процедуру. Бум оптимизировать :)
     
  4. Fabis

    Fabis Активный участник

    С нами с:
    26.10.2006
    Сообщения:
    454
    Симпатии:
    0
    Баллы:
    16
    Ну назначьте скрипт на кнопку в shelf или на hotkey и будет быстрее. Можете также вырезать из цикла "Full" или "Wire" режим.
     
Модераторы: Dark™, Skif

Поделиться этой страницей