3ds Max : milyonlarca polygonda yüksek viewport fps
bugün iş yerine dışarıdan birisi tarafından modellemiş bir proje geldi.
sahnede 4.5 milyon civarı polygon var fakat sahnedeki fps hızı 35 in altına inmiyor.
olay sahneyle ilgili olmasa gerek zira ben sahneye kendi modellediğim 1 milyon polygonlu bir objeyi merge ettiğimde, benim modelim kadraja girdikçe fps düşüyor, benim proje kadrajdan çıkıp sadece diğer modeller kadrajdaykense sorun yok. belli ki objelerde bir ayar var.
sahnedeki objelerin ayarlarına baktım "backface cull"u aktif etmesi ve ayarları "by layer" yapması dışında özel bir şey göremedim. zaten bunlardan olamaz zira ben de büyük ölçeklerde yüksek polygonda çalıştığım için modellerimi bu şekilde hazırlıyorum. hatta ben instance`ı da mümkün olduğunca kullanırım hızı artırmak için. gelin görün ki gelen sahnedekilerin çoğu instance bile değil buna rağmen performans şahane.
her hangi bir proxy vs yok sahnede baya net bildiğiniz 4.5 milyon polygon var. her birisi 200-300 bin polygonda seyreden binalar ve topografyadan oluşan kallavi bir model.
sahne görünümleri ve editleme konusunda de hiç bir sıkıntıları yok.
bende yarattığı his hazırlanan modellerin sanki paketlenmiş gibi olduğu yönünde. max artık onları sorgulamıyor gibi bir hava var. yani modelledikten sonra sanki bi ayar yapılmış ve ta ta! birden 10 polygonlu gibi davranmaya başlamışlar.
render vs konularında da sorun yok. dediğim gibi max sanki her harekette onları yeniden sorgulamıyormuş gibi hızlı davranıyorlar.
bunun ilmi nedir fikri olan var mı? 1/5000 ölçeklerde renderlar alıyorum ve polygon sayısı 2-3 milyonu bulduğu anda yerine göre çok kasıntı sahneler oluşabiliyor. yani bunun tam yolunu değilse bile prensip olarak nasıl olduğunu öğrenebilirsem çok rahatlayacağım.
şimdiden teşekkürler.
- Offline
- Erkek
merhabalar,
öncelikle yaptığım işlerin ölçekleri çok büyük ve elimdeki bilgisayar bir workstation paylaşımlı ekran kartı kullanmıyorum yani, kullanmam da mümkün değil yaptığım ölçeklerden ötürü.
rami yoracak bir durum da yok 24gb ram var onla da ilgisi olmaz.
kaldı ki dediğim gibi bu olay maxle de ilgili değil. yani gelen dosyayı bilgisayarımda açıyorum canavar gibi çalışıyor. ben modellerken o polygon sayısının yarısına bile geldiğimde fps daha düşük oluyor.
yine dediğim gibi bilgisayar değil, max değil, hatta o kurulmuş sahneyle de ilgili değil bu performans. nitekim objelerin hızı çok iyi, benim objeleri o sahneye atınca sahne otomatik yavaşlıyor.
olay tamamen sahnedeki objelerle ilgili. collapse vs da değil kullanılan. onlar da polygon sayısını düşürmeye yönelik modifierlar. bu bariz polygon. bildiğin 4.5 milyon çiğ bildiğin. :)
"objelere, viewportta bişey yapması için bişey atılmış". olayın özü bu. tahminim o yani.
ram player için de bildiğim ram playerdan bahsediyorsanız o alınan kare animasyon renderlarını birleştirmek için kullanılıyo. başka ram playersa bilmiyorum tabi.
- Offline
- Erkek
merhabalar,
öncelikle ben bir max kullanıcısı değilim, Blender kullanıyorum aktif olarak ancak bu sordugunuz şey VBOs(Vertex Buffer Objects yada Vertex Buffer Arrays olarakta geçiyor) tekniği ile ilgili sanırım, max te böyle bir ayarın olup olmadıgını tam olarak bilmiyorum ancak ben Blender ile bu VBOs tekniğini gösteren örnek bir video hazırladım, örnek sahnede 2 milyondan fazla polygon (triangles) var, VBO aktif değilken viewportta ortalama 5 fps veriyor, VBO aktif iken ise fps 40`ın üzerine çıkıyor (yaklaşık 8-9 kat artıyor)
peki nedir bu VBO ? basitçe bu teknik şunu yapıyor; sistem belleğindeki(RAM) vertex koordinatlarını ekran kartının belleğine gönderiyor böylece ekran kartı işlemcisi(GPU) modeli ekranda oluştururken vertex değerlerini sistem ram`inden okumak yerine kendi ekran kartı ram`inden okuyor, yani ekran kartı uzak yoldan değilde çok daha kısa yoldan vertex değerlerine ulaşıyor ve bu sayede viewportta ciddi oranda performans artışı sağlıyor, olayın daha iyi anlaşılması için alttaki örnek videoyu izleyin...
http://vimeo.com/33003769
umarım fikir verme açısından yardımcı olabilmişimdir...
- Offline
- Erkek