V-Ray : "Displacement Map" bulan script

"Displacement Map" bulan script
aylmzabdullah yılmazAvatar

İyi günler. Benim sorunum şu. Sahnede map olarak eklenmiş olan displacement map in hangi objede olduğunu yada hangi materialde olduğunu bulabileceğim bir script var mı? Vray displacement uygulanmış objeleri bulabiliyorum fakat map displacement olunca yüzlerce material arasından tek tek bakmak çok zor oluyor.


Bildiklerimiz kadar bilgili, bilmediklerimiz kadar cahiliz. //aylmz
2015-07-24 17:34:38
  • Offline
  • Erkek
işine yarar bi script
rakunnerrakunner

işine yarar bi script hazırladım. eğer yanlış anlamadıysam standart materiallere atanmış disp mapleri bulur


try(DestroyDialog dm) catch()
rollout dm "Disp.Map Finder"
(
global aray=#()
fn Finder=
(
for i in geometry where (i.material !=undefined and i.material.displacementMap != undefined) collect i.name
)
button btnAddList "Find / Refresh"
listbox list "List"

on list selected nameIndex do
(
select (getNodeByName list.items[nameIndex])
)
on btnAddList pressed do
(
list.items = Finder()
)
)
createDialog dm


2015-07-24 22:27:24 Edit:2015-07-24 22:49:28
  • Offline
  • Erkek
* ve ?
ErkanErkan ÇALIŞKANAvatar

shift+t `ye basarak problemli kaplamaları kolayca göre bilirsin

(cevabın burdan sonrası max 2011 ve üzeri versiyonlar için)
material editor`ü compact olarak ayarla
(slate`in seçim komutu linkli objelerde sorun çıkarır max2015`e kadar var bu sorun 2016`yı denemedim)
sahnendeki tüm group ları aç material editorden get mateiale tıkla
aradığın kaplamanın isminin başına * koyarak
material map browser/serch by name bölümüne yazınca
aradığın kaplamanın slotu en üste çıkar. çift tıkla ve
material editorden select by material`i tıklayınca kaplamanın hangi objede olduğunu bulmuş olursun
tekrar material map browser penceresine gel
scene materials bölümünde scene materials yazısına sağ tıkla filter selec objects`i seçince de
kaplamanın hangi malzemede olduğunu bulmuş olursun

not * ve ? max içerisinde (script, material editor...)aynı windowsta kullanıldığı gibi kullanılır.
* kaç karakter olursa olsun anlamına gelir
? belli sayıda bilinmeyen karakter anlamına gelir
örnek: 102.png ve 102(1).png isimli iki akplama olsun
eğer material editorden select by material bölümüne
*102???. yazarsak sadece 102(1).png görürüz
*102*. yazarsak 102.png ve 102(1).png görürüz

kolay gelsin


ANIMASYONA GÖNÜL VERENLERLE TANIŞALIM
2015-07-25 14:30:26 Edit:2015-07-25 14:34:01
  • Offline
  • Erkek
Çok teşekkür ederim. İnşallah
aylmzabdullah yılmazAvatar

Çok teşekkür ederim. İnşallah işime yarar hemen deniyorum.


Bildiklerimiz kadar bilgili, bilmediklerimiz kadar cahiliz. //aylmz
2015-07-25 14:30:41
  • Offline
  • Erkek
Malesef çalışmadı. Ben bu
aylmzabdullah yılmazAvatar

Malesef çalışmadı. Ben bu şekil bir script yazdım fakat olmadı :)

select (for o in objects where ((for n in o.material!=displacementmapenable collect n).count>0) collect o)


Bildiklerimiz kadar bilgili, bilmediklerimiz kadar cahiliz. //aylmz
2015-07-25 16:43:04
  • Offline
  • Erkek
material map browser/serch by
ErkanErkan ÇALIŞKANAvatar

material map browser/serch by name bölümüne
*displacement* yaz bitsin ne uğraşıyosun
yukarda yazdıklarımı okumadınmı?


ANIMASYONA GÖNÜL VERENLERLE TANIŞALIM
2015-07-25 17:04:03
  • Offline
  • Erkek
Yazdım fakat çalışmıyor. Max
aylmzabdullah yılmazAvatar

Yazdım fakat çalışmıyor. Max 2014 kullanıyorum.


Bildiklerimiz kadar bilgili, bilmediklerimiz kadar cahiliz. //aylmz
2015-07-25 17:14:03
  • Offline
  • Erkek
başına ve sonuna yıldız
ErkanErkan ÇALIŞKANAvatar

başına ve sonuna yıldız

başına ve sonuna yıldız (*) koydunmu?

ANIMASYONA GÖNÜL VERENLERLE TANIŞALIM
2015-07-25 17:26:07
  • Offline
  • Erkek
"Show subtree" aktif olmadığı
aylmzabdullah yılmazAvatar

"Show subtree" aktif olmadığı için görünmüyordu. Tekrar denedim oldu. Çok teşekkürler. Fakat yine bir komut satırı olarak yazabilseydim çok iyi olurdu.


Bildiklerimiz kadar bilgili, bilmediklerimiz kadar cahiliz. //aylmz
2015-07-25 17:33:58
  • Offline
  • Erkek
script
ErkanErkan ÇALIŞKANAvatar

select $*
for i in $* do
(
if i.material != undefined then ( brk=0
if classof i.material == (VRayMtl) and i.material.texmap_displacement != undefined then
(i.material.texmap_displacement_on = off
brk=1)
if classof i.material == (Multimaterial) then
(for m=1 to (i.material.materialIDList.count) do
(
if classof i.material.material[m] == (VRayMtl) and i.material.material[m].texmap_displacement != undefined then
(i.material.material[m].texmap_displacement_on = off
brk+=1
)
)
)
if brk==0 then (deselect i)
)
else (deselect i)
)


kod malzemesinde displacemet olanları seçiyor ve displacementini kapatıyor
işini biraz görür ama ben örnek olarak sadece multisub materiali verdim
VRayBlendMtl
VRayOverrideMtl
VRay2SidedMtl
CompositeMaterial
gibi daha nice sub materiallerin kodlarını sen yazmalısın.
yoksa kod tüm displacement leri bulamaz.


ANIMASYONA GÖNÜL VERENLERLE TANIŞALIM
2015-07-25 19:22:00 Edit:2015-07-29 11:23:15
  • Offline
  • Erkek

Kapalı

Topic closed automatically because it`s been more than a year!