Juzwa Napisano 16 Maj 2013 Share Napisano 16 Maj 2013 Witam, Mam kilkadziesiac elementow. Kazdy ma inny kształt. Kazdy sklada sie z kilku tysiecy mniejszych fragmentów (pocietych w RayFire). Potrzeba mi z nich zdjąć "warstwe zewnętrzną". Glowie sie nad tym od wczoraj i mysle ze trzeba bedzie zahaczyc o maxscript, jednak nie wiem zbytnio jaki utworzyc warunek selekcji. Jednak wolalbym maxscripta nei ruszac, nie jestem w tym biegly. Reczne usuwanie to kilkudniowe katorga. Oto screen o co mi dokladnie chodzi (oproszczone oczywiscie, interesuje mnie by pozostaly tylko elementy czerwone): Uploaded with ImageShack.us Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Reanimator Napisano 16 Maj 2013 Share Napisano 16 Maj 2013 Jezeli to co chcesz zaznaczyc ma konkretny material (jesli rayfire przydziela nowe dla partii wewnetrznych, zniszonych), to mozesz po materiale. Mozesz zaznaczac obiekty w czasie animacji? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Juzwa Napisano 16 Maj 2013 Autor Share Napisano 16 Maj 2013 Jezeli to co chcesz zaznaczyc ma konkretny material (jesli rayfire przydziela nowe dla partii wewnetrznych, zniszonych), to mozesz po materiale. Mozesz zaznaczac obiekty w czasie animacji? Rayfire moze ewentulanie przydzielic material nowo powstalym elementom przy cieciu, bez zadnych warunkow niestety. Moge wybierac sobie obiekty podczas animacji. Chcialbym wlasnie tego uniknac bo to paskudna reczna robota i zajelaby mi prawdopodobnie caly weekend :) - - - Połączono posty - - - Licze bardziej na cos w stylu: select visible to camera :) P.S. ten czerwony kolor to do podgladu o co mi chodzi Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Miłosz3ds Napisano 16 Maj 2013 Share Napisano 16 Maj 2013 Cześć. Nie bardzo wiem w jakiej to jest formie, ale jakbyś połączył to wszystko w jeden obiekt editable poly, zaznaczył sub-object "element" i pobawił się zaznaczaniem z "ignore backfacing" to może coś z tego wyjdzie? Strzelam, nie wiem czy to się uda- a nie mam jak sprawdzić w tym momencie ;) albo jeszcze inaczej - zaznacz sobie widoczne polygony (właśnie za pomocą ignore backfacing) i potem ctrl + click na podgrupę "element". Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Juzwa Napisano 16 Maj 2013 Autor Share Napisano 16 Maj 2013 @Miłosz3ds - Tez tak myslalem z poczatku. Jednak ignore backfacing to jest troszke inna opcja i zwraca tylko uwage, w ktora strone patrza fejsy. W efekcie zaznaczasz fejsy patrzace w strone kamery, a nie widoczne w kamerze - pamietam ze mialem kiedys z tym juz problem. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Miłosz3ds Napisano 16 Maj 2013 Share Napisano 16 Maj 2013 Cholera, masz rację. Pomyliłem kwestię - myślałem, że rzeczywiście są interpretowane fejsy od strony kamery, ale byłem przekonany, że działa to też na przysłaniające się polygony - tzn. jak jeden zasłania drugi - to ten zasłonięty nie jest zaznaczany. Mój błąd. Pomyślę jeszcze i jak na coś wpadnę to napisze, pozdrawiam! :) Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Reanimator Napisano 16 Maj 2013 Share Napisano 16 Maj 2013 Heh, wyobrazam sobie, ze jakis skrypt sprawdza bounding box calego obiektu, pozniej kazdego fragmentu i ich polozenia w przestrzeni. Na zasadzie porownania wspolrzednych zaznacza te, ktore sa najblizej krawedzi obiektu, zdejmujac zewnetrzna warstwe;) Duza abstrakcja ;) Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Juzwa Napisano 16 Maj 2013 Autor Share Napisano 16 Maj 2013 Udało się! Odpowiedz znaleziona na AreaAutodesk, Oto rezultat i o co mi chodzilo: Naprawde ciekawe, prawda? Oto skrypt, który dokładnia działa jak "Select Visible" - juz wyladowal u mnie na shelfie. ----------------------- visobj = #() for obj = 1 to $objects.count do ( $objects[obj].gbufferChannel = obj ) preferences.maximumGBufferLayers = 1 bitmapsize = 320 bm = bitmap bitmapsize bitmapsize channels:#(#objectID) render bitmapsize bitmapsize to:bm channels:#(#objectID) for j=0 to bitmapsize-1 do ( for k=0 to bitmapsize-1 do ( Test = getchannel bm [j,k] #objectID TestString = Test as string TestString = trimleft TestString "#(" TestString = trimright TestString ")" testasnumber = TestString as integer if (TestString !="0") then(appendIfUnique visobj $objects[testasnumber]) ) ) select visobj ------------------------------------- P.S. http://area.autodesk.com/forum/autodesk-3ds-max/maxscript/solved-select-objects-visible-to-camera/page-1/ a to link z calym tematem Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się