3d max opengl ve directx modu arasındaki fark - sayfa: 3

Re:Cvp

ferhatozyurt

[quote=27204]Ufak bir test daha .

Directx modu opengl modundan %100 daha hızlı diil. %1000 daha hızlı :)

Test Makinası:
Amd 2500+,ati 9700 pro ekran kartı, 2 gb ram

Teste kullanılan obje
Turbo smooth uygulanmış bir box

200.000 polygonda
OPENGL: 15 FPS
DIRECTX: 150 FPS

opengl modu daha stabil çalışsada, hız konusunda directx önde.
Neden aradaki fark bu kadar çok???[/quote]

Tamamen katılıyorum, bir keresinde yaklaşık 750.000 poligonlu bi sahnede çalışıyordum, farkında olmadan display modunu opengl e çevirmişim, sahneyi açtığımda ne oluyor dedim, bilgisayar mı arızalandı, rotate bile neredeyse yapamıyordum[:D] sorunun opengl den kaynaklandığını farkedince bayaa rahatlamıştım.

2007-01-11 10:29:06

Cvp

chrome_nickel

opengl aslında yavaş değildir, hatta directx´den çok daha hızlıdır. ya kullandığınız grafik kartı opengl´yi hızlı hesaplamıyordur, yada kullandığınız yazılım opengl için yeterince optimize edilmemiştir. Autodesk direct3d önerdiğine göre neden direct 3d´nin opengl´den daha başarılı olduğunu da max´in bilgisayar oyunu sektöründe direct 3d programlamayı hızlandırmak amaçlı bir çok seçenek sunması, ve bu yüzden oyun geliştiricilerin daha verimli çalışması için direct3d sürücüsü ile 3ds max´in tam bir oyun motoru performansına sahip olmasından kaynaklanıyor olabilir. 3ds max´i geliştirme yazılımlarına dahil etmiş bir oyun firmasında programcılar ne shader dert eder, ne model dert eder, ne sahne hiyerarşisi dert eder, ne fizik hesapları dert eder. ressamlar ve animatörler shader´ları material editörde hazılar, modelciler modelleri çizer, animatörler animasyonları yapar ve reactör koleksiyonlarını hazırlar. daha sonra bunlar programcıya verilir. oyunun fizik motoru olarak özellikle reactor kullanıldıysa ( bakınız oblivion ) işler bu sayede neredeyse 3ds max üzerinde çözülür ve programcıya görsel öğeleri düşünmesi gerekmeyen alt yapı yazılım işleri kalır. dolayısı ile oyun daha çekici daha görsel olur.

bütün bunları dert etmemek istiyorsanız alın bi 3dlabs wildcat, kurtulun. o kadar paranız yoksa da kardeşim girersiniz ekran kartı üreticinizin resmi sitesine, bulursunuz ekran kartı modelinizi, opengl ve direct3d performansları ile diğer teknik bilgilerini görebilirsiniz zaten ( saniyede aktarabildiği veri miktarı, texture sıkıştırma oranı, kaç grafik hattı olduğu )

bu bilgilerle zaten hangi sürücüyü seçeceğiniz konusunda fikir edinebilirsiniz. mesela grafik hattı daha geniş olan ekran kartları için opengl, daha düşükleri için direct3d daha iyi sonuçlar verebilir. mesela bir çok prof kartta 16 grafik hattı bulunur. prof serisi kartlarda opengl çoğu zaman daha iyi performans verebilir. gerçi kendi sürücüleri de oluyor ama :) olmayanları için artık.saniyede aktardığı veri düşükse, ekran çözünürlüğünüzü düşürerek ekran kartınızdan çok daha yüksek performanslar elde edebilirsiniz. texture sıkıştırma oranını öğrenerek opengl mi yoksa direct3d´mi kullanacağınıza karar verebilirsiniz. texture sıkıştırma oranı iyiyse direct3d kötüyse opengl seçersiniz.

ayrıca, yazılımınızın hangi opengl veya hangi direct3d sürümünü desteklediğine bakarsınız.

opengl 2.0 destekleyen bir ekran kartında opengl direct 3d´den daha iyi sonuç verebilir. ekran kartı uyumlu olduğu opengl sürümünü %100 desteklemek zorundadır( sadece donanımda hesaplanabildiği için ). öte yandan ekran kartı direct3d´yi %100 desteklemek zorunda değildir.. ekran kartınız direct3d´yi %100 destekliyorsa, direct3d seçmek daha verimli olabilir. desteklemiyorsa, hangi özelliklerini desteklemediğine bakıp, kullandığınız yazılımın bu özellikleri sürekli olarak kullanıp kullanmadığını kontrol ederek doğru sürücüye karar verebilirsiniz.

öte yandan bir çok insan bu iki satır yazıyı okumayacak veya diğer bir çok insan da bu yazıyı okuduğu halde kim uğraşacak şimdi onlarla, hem bende ingilizce yok / zayıf. nası anlayacam o kadar şeyi üretici sitesinden falan.. diyerek sallayacak:) ben yükümü attım allah kurtarsın..

2007-01-12 04:29:44

Cvp

POWERD3D

Çok güzel noktalara değinmişsin kadir. Bende birkaç ilave yazmak isterim izninle.

Normalde zaten prof. ekran kartları diye tabir edilen grafik kartlarında optimize yazılımları mevcuttur.
Bu yazılımlar hatta cad/3d yazılımlarına isim isim destek verirler. Şu andaki oyun kartlarıda aslında güçsüz sayılmazlar ama modelleme ve telkafes gibi özel çalışma alanalarına hitap ederken bazen yetersiz optimize olmamaları nedeniyle sürücülere ve programlara destek veremeyebiliyorlar.
Aslında işin özünde opengl / directx den öte kullanılan ekran kartının optimizasyonu ve sağladığı destekler önemlidir.
Yüksek polygon ve telkafes çalışma anında ekranda yapılan her hareket (rotate, move, scale) esnasında hesaplamalar yeniden yapılmaktadır. Buda ekran kartının işlem kapasitesi, veri yolu hızı, hafızası vs gibi özelliklerine bakmaktadır.
Burda max openglye destek vermiyor demek kesinlikle yanlış ve tutarsız bir bilgidir. Hatta prof. ekran kartlarında üzerinde özel modülleri bulunanlar bile mevcuttur. Tabiki bu tarz kartlarda aranması gereken özellikler vardır. Kendi kartınızda bu özellikler varmı bir bakıp karşılaştırmanızda yarar var.

Örnek grafik kartı olarak;
ATI FIRE GL™ V5200
Ortalama fiyat: 2.800 YTL

Professional CAD
Alias|Wavefront™ StudioTools™, ANSYS DesignSpace, ANSYS Multiphysics, Autodesk® AutoCAD®, Autodesk® Inventor™, Autodesk® Mechanical Desktop®, Bentley MicroStation®, CoCreate™ OneSpace Designer, Dassault Systems CATIA®, Dassault Systems Enovia, DELCAM PowerSHAPE, EDS I-deas® NX, GNS Animator3, Matra Datavision EUCLID Quantum, Megatec MegaCAD Evolution, MSC.Software® MSC.Patran, MSC.software® MSC.VisualNastran, Nemetschek Allplan, PTC® Pro/ENGINEER® Wildfire, SolidWorks®, Tebis, T-Systems Medina.

Professional DCC
Adobe® Premiere, Alias|Wavefront™ Maya®, Discreet® 3ds max™, Discreet® combustion™, MAXON CINEMA 4D, MAXON BODYPAINT 3D, NewTek LightWave 3D®, Side Effects Software™ Houdini™, SOFTIMAGE® |XSI®, SOFTIMAGE® |3D.

* Gelişmiş işistasyonu uygulamaları için, yüksek 3D/2D grafik hızlanımı ve optimize OpenGL® sürücüleri
* Optimize yazılım desteği sayesinde stabil 3D modelleme ortamında prodüktivite artışı
* En popüler işletim istemleri ve ana işlemcilerin (CPU) performanslarını maksimize etmek için FIRE GL™ V5200 fabrika çıkış konfigürasyonu
* Görüntü profil ayar menüleri üzerinden, çalışılan uygulamalar için spesifik ince ayar imkanı

Üstün İşistasyonu Grafiği

* ATI´nin kendi özel 16 iş hatlı PCI Express mimarisi ve 256MB GDDR3 bellek sayesinde mükemmel 3D grafik hızlanımı
* OpenGL® double-buffer overlay desteği
* Wire-frame ve shaded modlarda simültane çalışma ve çok sayıda pencere ve menü açıkken işistasyonu performansından taviz vermeden operasyon imkanı
* Ful DirectX® desteği - ATI´nin patentli özel teknolojileri sayesinde "canlı" 3D modeller:


Çift-Monitör Desteği

* Eşsiz HYDRAVISION™ teknolojisi ile birden fazla monitör için operasyon desteği
* ´Digital flat´ ekranlara bağlantı ile keskin ve gerçekten düz görüntüler sayesinde gözdeki yükü minimize etme ve masaüstü alanından tasarruf imkanı
* ´Hot Key´ tuş kombinasyonlarına fonksiyon atama metodu ile çok kullanılan pencere ve/veya uygulama açma-kapama-kaydırma vb. işlemleri seri yap(tır)ma olanağı
* ´Application Position Memory´ opsiyonu sayesinde uygulamaların hep arzulanan pencere büyüklüğünde ve masaüstü pozisyonunda açılabilmesi - bilgisayarın her bir yeniden başlatılması sonrası bir daha ayar gereği kalmaz

ATI Dizayn ve Üretimi "Built by ATI" Ürün Avantajları:

* ATI garantisi
* Güvenilir müşteri hizmeti
* ATI.com sitesi üzerinden sürücü güncellemeleri
* Optimize performans için özel ATI yazılımları

Spesifikasyonlar

Sistem Gereklilikleri

* Pentium® 4/Xeon™, AMD® Athlon®/Opteron® veya muadili ana işlemci (CPU)
* PCI-Express standardında veriyoluna sahip bir grafik slotu
* 128MB sistem belleği (256MB ve üzeri tavsiye edilir)
* Yazılım ve sürücülerin kurulumu için CD-ROM sürücü
* Plug and Play monitör
* 300 Watt veya üzeri güç kaynağı (tavsiye edilir)

Grafik İşlemci

* FGL™ V5200

Bellek

* 256MB GDDR3

İşletim Sistemi Desteği

* Windows® 2000
* Windows® XP - 32-bit
* Windows® XP - 64-bit
* LINUX® 32

Tasarım Geliştirme Arayüz Desteği

* OpenGL®
* OpenGL Shading Language
* Microsoft® DirectX®
* DirectX® HLSL


Monitör Desteği

* CRT Monitör
* Dijital Flat Panel
* CRT Monitör ve Dijital Flat Panel

Grafik Özellikleri

Donanım üzerinden hızlandırılan grafik fonksiyon ve parametreleri:

* Anti-aliased noktalar veya full scene anti-aliasing çizgiler (2X, 4X, 6X)
* 3D çizgiler ve üçgenler
* Stipple points
* Two-sided lighting
* 8 adete kadar ışık kaynağı light sources
* Directional and local lighting
* OpenGL overlay planes
* Occlusion culling
* 6 adet kullanıcı tanımlı clip planes
* OpenGL çok-modlu işlevler (polymode functions)
* 32-bit (24+8-bit stencil) Z Buffer
* Hızlı Z ve renk temizleme
* Full DX9 vertex shader desteği (4 vertex ünitesi üzerinden)

SMARTSHADER™ 2.0

* Programlanabilir pixel ve vertex shader üniteleri
* Her geçiş başına (per pass) 16 doku birimi (textures)
* Her RGBA komponenti için 32-bit floating-point hassasiyetli, 160 komutlu pixel shader
* Çoklu render hedefi desteği
* Shadow volume rendering hızlanımı
* Kanal başına 10-bit yüksek hassasiyetli frame buffer desteği

SMOOTHVISION™ 2.0

* 2X/4X/6X anti-aliasing modları
* Programlanabilir örnek patronlu yüksek performanslı ayar algoritması
* 2X/4X/8X/16X anisotropic filtreleme modları
* Performans için bi-linear, kalite için tri-linear opsiyonlu ayar algoritması

HYPER Z™ III

* 3-seviyeli Hiyerarşik Z-Buffer (erken Z test özellikli)
* Kayıpsız Z-Buffer kompresyonu (24:1)
* Fast Z-Buffer Clear

Not: Bu kartdan daha üst seviye ve destek olarak daha güçlü kartlarda mevcuttur.

2007-01-12 10:23:34

Cvp

chrome_nickel

FireGL V7350 gibi... bu ekran kartı olsun da 1 milyar poligondan az sahne yapası gelsin insanın. olur şeymi be.. [S65]

2007-01-12 14:49:45

Cvp

POWERD3D

Bu kartlar olmadan 3d de gaza basmak biraz zordur malesef. [S58]

2007-01-12 15:30:59

Cvp

lordofbody

firegl ile bir sahnede maksimum kaç polygon olabiliyor? Bileniniz var mı? Yani ekran 200 milyon polygonda 30 fps verebilir mi ?

2007-01-12 22:35:20

Cvp

chrome_nickel

windows ortamında çok zor sanırım :)

ayrıca ekran kartı tek başına etken değildir. sistemin geri kalanının yeterli beslemeyi yapabilmesi de önemlidir.
öte yandan, oyunların yüksek poligondaki fps´si ile max gibi yazılımların fps´sini kesinlikle karşılaştırmamak lazım. oyunlarda görüntülenecek objeler, biz oyunun başında loading olayını beklerken ekran kartının ( directx mesh yada opengl displaylists ) formatına çevrilerek ekran kartının belleğine yerleştirilmesi ile, çok karmaşık sahnelerde bile hızlıca hesaplanabilir. zaten realtime 3d görüntüler, ekran kartından windows´un belleğine gelmeden doğrudan monitöre gönderilir. bu sayede, oyunların bütün görsel hesapları ekran kartında döndüğünden, ekran kartının çizebileceği poligon sayısı, tamamen işlem hızı kadardır. ama max gibi yazılımlarda, kütleler anlık olarak max tarafından sürekli müdahale altında olduğundan toparlanıp ekran kartı formatına çevrilerek çok hızlı şekilde işlenemezler. 3d kütlelerin bilgisi genelde ramde bulunur ve bu yüzden hem sistemin performansına etki eder, hem de ekran kartı ile sürekli veri alışverişi gerektirdiğinden, ekran kartı maksimum performansta hizmet edemez. bu sorunu çözmenin yolu çok yüksek veri yolu hızı ( veya genişliği ) ve çok hızlı veri transferi yapabilen ram ve anakart diyebiliriz ancak.

dolayısı ile sadece ekran kartı ile 200 milyon poligon çizemezsin. bunun yanında sistemin de bunun altından kalkacak kadar iyi olmalı. eğer 64 bit xeon sistem toplarsan muhtemelen çizersin

2007-01-13 12:12:12

Cvp

mokambo

arkadaslar,
kullandıgım kart Ati firegl v7200.

ana kartım asus p5wd2 premium

2gb dual ram

intel 3.6 GHz CPU

denemeler yaptım.

display : Direct 3D

sahneme 200 segmentlik 4 küre koydum.
bunlara da mesh smooth uyguladım.

4 kure ile polygon sayısı 318.400 FPS :193

perspektiv ekranında sorunsuz ( cok hızlı bir sekilde) tüm sahneyi evirip cevirebildim.

display ayarını opengl moduna getirip , tekrar aynı poly sayısına esit 4 küre olusturdum. polygon sayısı 318.400 FPS : 2,28

ve evirip cevirme hareketim kademeli olarak atlamalı bir sekilde olustu.

tekrar direct 3D ye döndüm ve küreleri 16 adet yaptım.

polygon : 1,273,600 FPS : 18

deli gibi evirip cevirebildim.
64 adet yapmayı denedim ama hata verdi ve max kapattı.

sorun olarak meshsmooth hatası veriyordu. bende meshsmooth vermeden fazla sayıda kure ile denedim.

200 segmentli 200 tane küre ile

polygon :7,920,000 FPS : 31,13 ile sahneyi deli gibi evirip cevirdim.

[img]http://www.tr3d.com/dosyalar/9RajVarnc.jpg[/img]

polygon :9,266,400 FPS : 22,29 ile aynı..

ama,
[img]http://www.tr3d.com/dosyalar/vf60O8OkT.jpg[/img]
polygon :10,296,000 FPS : 0,87 ile sahnedeki küreler durmadan kendini yenilemekte ve her mause hareketimde bu tekrarlamaktaydı. sonucta max kendini kapadı.

yani bu kart bu sistem birleşimi ile 10 milyon poligondan sonra cöküyor.
sayın kadir,
bu durumda 1 milyar poligon gibi bir düşünce ne kadar dogru. şahsen, 7350 nin cok farkedecegini sanmıyorum ...

tum bu denemeleri kartın kendi sürücüsü ile deneyemedim, cünkü ne yaptıysam bu sürücüyü kuramadım. max görmedi bir türlü..
belkide ben bir yerde hata yaptım bilemiyorum.

saygılar...

2007-01-15 14:32:24

Cvp

chrome_nickel

öncelikle 1 milyar poligonlu sahne dedim, hepimiz bazen 10 - 20 milyon poligonlu sahne çizeriz. ama viewport´ta 100.000 den fazlasını görmeyiz pek, hide yaparız, saklarız xref yaparız bounding box göster deriz, seçileni kaplamalı göster deriz, ama her ne kadar aynı anda 100.000 civarı poligonla çalışsakta toplamda 20 - 30 milyon poligona çıkarız bazen. 1 milyar poligonlu sahne derken kastım buydu. şu anki sistemlerimizle herhalde 100 milyon poligonu pek cesaret edesimiz gelmez. çünkü saklasanda bounding box yapsanda sistemin taşıyabileceği veri yükü bellidir, ve bize realtime olarak 1 milyar poligonu farklı şekillerde de olsa parça parça da olsa görüntülemek için ekran kartı ve ram işlemci arasında sağlayacağı trafik tartışılır.


ram´leriniz dual olabilir, ecc özelliğini aramak lazım

işlemciniz pentium serisi,

anakartınız çok güçlü olabilir, ama sistem uyumunuz tartışılır.

10 milyon poligonu görüntülemek için öncelikle ram´inizden ekran kartınıza bu 10 milyon poligonun verisi akacak. ekran kartında görüntüsü değişmeyen kütleler tespit edilerek ekran kartının belleğinde elden geçirilip realtime gösterime uygun hale gelecekler, daha sonra ekranda başka bir bounding box nesneye tıkladığınızda shaded haline dönüşünce onun da verisi ram´den ekran kartına akacak, ekran kartının veri trafiği yetersiz kalıyorsa işlem sırası bekleyecek falan.

sisteminiz pci-e olabilir. ama workstation tipi sistemlerin diğerlerinden çok pahalı olmasının sebebi, üzerinde yazan değerlerde işlemi uzun süre boyunca kararlı şekilde sürdürmelerini sağlayabildikleri içindir. yada, aynı anda işlenebilen veri miktarının ( daha hızlı işlenmesi değil, aynı anda daha çok işlenmesi ) ev tipi sistemlere göre çok daha yüksek olmasındandır.

normal pc sistemlerinde ram, ekran kartı ve işlemci arasındaki zamanlama hatalarından ve veri yollarının o anda müsait olmaması durumlarından dolayı yapılan bir çok hesap kitap tekrardan ele alınmak zorunda kalır. halbuki çift işlemcili bilgisayarlar çift şeritli otoban gibidir ( çift çekirdek değil, çift çekirdek işlemci dışarıyla veri alışverişini gene tek kanaldan yaptığından dolayı veri taşıması normal işlemciden çok farklı değildir kendi içinde işlem hızı yüksektir diyebiliriz.) veri bi taraftan gelirken diğer taraftan gider, ecc özelliği gibi verinin hatalı olup olmadığının kontrolü ile gereksiz tekrar hesaplarının önüne geçilerek normal pc´nin defalarca tekrar denediği işlemleri bir iki denemede sonuca ulaştırırlar. yoksa 1066mhz fsb´ye sahip bir ev tipi anakart 200 dolar iken sgi makinaların fsb hızı hala 266mhz´de olup en ucuz makinası 20bin dolardan satılmazdı.. pentium yada athlon serisi bir işlemciyle yapabilecekleriniz bellidir. öte yandan elde toplanmış bir workstation yada ev tipi bilgisayarın uyumluluğu ( parçalar arasındaki zamanlama uyumu en önemli konudur. fsb´leri en yüksek olanlar daima iyi demek değildir) tartışılır, memleketimizde bilgisayarcı firmalara danıştığınızda bu parça şununla daha uyumludur cevabı ister istemez çoğu zaman onların stok durumuna göre değişkenlik gösteren durumlar olduğundan dolayı, bu parça uyumlu denince alınan parçalardan ne kadar uygun sonuç elde edilir bilinmez.


FireGL
V7350

veri transfer hızı = 41.6GB/sec
saniyede hesaplayabildiği vertex sayısı = 1200M
sahnesine göre 1.5 milyar, 2 milyar poligon demektir.
30 fps´de 50 milyon poligon çizer, viewport performansında 12 fps´ye kadar çalışılabilir ve bu ekran kartının 150 milyon poligonla çalışmaya imkan sağlayacağı anlamına gelir.

100 bin poligonla viewportta çalışıp 10 milyon poligonlu sahne yapabiliyorsak,

150 milyon poligonlu viewportla çalışıp 1.5 milyar poligonlu sahne yapabiliriz demektir sanırım
tabi şöle bi durum var, eğer pentium serisi bir işlemci ile deniyorsak bu ekran kartından alacağımız verim tartışılır. eğer bahsettiğiniz sistemde 10 milyon poligon çizebiliyorsanız bunun tek sebebinin ekran kartının o kadar çizebildiği fikri olmaması gerekir.

zaten

"
dolayısı ile sadece ekran kartı ile 200 milyon poligon çizemezsin. bunun yanında sistemin de bunun altından kalkacak kadar iyi olmalı. eğer 64 bit xeon sistem toplarsan muhtemelen çizersin

"

cümlesini de daha önce belirtmişim.

ekran kartı saniyede 41.6gb´lik 3d verisini işleyebiliyordur belki... ama sisteminiz bu veriyi ona vakt-i zamanında yetiştiremiyorsa zaten onun bi günahı yok. tabi bu bahsettiklerimiz ram´in fabrikada üretim sırasında bir kaç saniye fazla ısıya maruz kalması ile bile farklılık gösterebilecek şeyler. birisi kalkıp ta 64bit son sistem xeon toplayıp üzerine dual 1gb firegl7350 takıp ben bunla 200 milyondan fazla poligon çizemiyorum demesin, :) ram´inizi değiştirin işlemcinizi değiştirin aynı model bile olsa başka bi işlemci deneyin :) ama sizi eleştiririm, eğer işiniz firegl7200 almayı gerektiriyorsa pentium işlemciyle çalışarak zaten büyük bir eksi yaşıyorsunuz.

max´in meshsmooth hatası vermesi çok normal. çünkü meshsmooth´daki poligon dönüşümlerini ekran kartı değil, işlemci hesaplar, sizin işlemciniz 10 milyon poligonu hesaplayıp kitaplayacak kadar hızlıysa bile, sistemin veriyolu o kadar yoğun veriyi realtime olarak ekran kartına aktaracak kadar geniş olmayabilir. bence bir ekran kartına bin kusur ytl veriyorsanız, sisteminizin de en az ekran kartı kadar önem taşıdığını, 64 bir çift işlemci sistemin taşıyabileceği verinin pentium serisi bir işlemciden on kata kadar daha yüksek olabileceğini hatırlatmak isterim :)

ayrıca bu konuyu kapatmak lazım. doğrudan donanıma dönüştü :) abarttımmı ne :D..

2007-01-15 15:35:14

Cvp

lordofbody

kadir xref nasıl yapılıyor? Diğer saydıklarını yapıyorum sahneyi hızlandırmak için ama xrefi bulamadım?

2007-01-15 20:49:04