2010-10-04 16 views
5

Hiç kimse VTK ve OpenSceneGraph'ı kıyaslama konusunda deneyime sahip mi? VTK'ya daha aşina oluyorum, ama herkesin her ikisini de kapsamlı olarak denediğini merak ediyorum.VTK (görselleştirme araç takımı) OSG'ye (OpenSceneGraph) karşı, diğer?

Her ikisini de oluşturdum, 5.6 vtk ve 2.9.9 osg, örnekleri çalıştırabilirim ... ilk bakışta OSG daha fazla 'kaba' görünüyor, ama belki sorun değil. Özellikle, VTK'da düşük seviyeli openGL ile uğraşmaktan endişeleniyorum; Örneğin. Eminim glReadPixels OSG ile daha güzel davranırdı. Yorumlar?

(ya ... Ben özlüyorum? Diğerleri var biliyorum ama OSG ve VTK kitlesel kapsamında bir göz atın o güzel 'öteki' yoktur)

cevap

10

VTK ve OSG gerçekten çözmek Farklı problemler, kullanmanız gereken şey, yapmaya çalıştığınız şeye bağlıdır! VTK öncelikle bilimsel görselleştirme amaçlıdır ve bu nedenle veri görselleştirme algoritmalarına daha fazla odaklanmaktadır. Bir sahne grafik modunda çalışmak için bazı yetenekleri olabilir, ancak esas olarak, farklı veri kümelerinin birbirinin üzerine kaydedilebilmesi (üst üste) olabilmesidir. Bu, keyfi sahneleri temsil etmek için tasarlanmamıştır (buna rağmen ayakkabı giydirilmiş olabilir). Haklısınız, OpenGL çağrılarını VTK ile karıştırmanız amaçlanmamıştır. Yine, yapılabilir, ancak mutlaka kolay değildir. Öte yandan, OSG, SGI'nin Performer'ının manevi ardılısıdır ve daha fazla rastgele grafiksel sahneler için tasarlanmıştır. Okumak için sizi cesaretlendireceğim sahne grafiği metaforuna çok bağımlıdır (wikipedia iyi bir makaleye sahiptir). Onunla fazla tecrübem yok (daha çok şeylerin bilim-kurgu tarafında olmak). Kısaca, volumetrik verilerin, akış alanı görselleştirmelerinin veya bilimsel verilerden türetilen diğer görselleştirmelerin izosuntagramlarını görüntülemek isterseniz, VTK ile devam edin. Bir tür sanal dünyayı uygulamaya çalışıyorsanız, OSG'ye (veya benzer bir şeye) gidin. Başka bir şey başarmaya çalışıyorsanız, bize bildirin ve belki de birileri ihtiyaçlarınız için daha uygun bir araç önerebilir.

+0

Gerçekten gri bir alanda olduğum için dikkatlice karar vermem gerekiyor. Ben 'vritual bir dünyaya' ihtiyacım var ama son derece basit olabilir, bence bir kaç vtkPolyData binaları ve üzerine yapıştırılmış dokuları olan büyük bir dikdörtgen onu yapardı. Gerçekten yapmam gereken şey, görüntü verisini okumak, görüntü beslemesinde başka bir yerde hesaplama yapmak, sonra da geometriyi muhtemelen güncellemek. Yani gerçekten 'screengrab' etkin bir şekilde ihtiyacım var; Örneğin. Eğer VTK bunu yapabilirse glReadPixels() harika olurdu, sadece o aramayı nereye koyacağımı bilmiyorum. –

+0

Bir 'vtkOpenGLStateCache' olduğunu görüyorum, ancak her şeyi sadece OpenCV'ye pipetleyeceğim, bu yüzden gerekli olandan daha fazla vtk OO-sarmayı önlemek istiyorum. –

+1

Anladım. Öncelikle, eğer vtkRenderWindow'unuz varsa, vtkRenderWindow :: Get [RGBA] PixelData'yı bunun üzerine çağırabilirsiniz ve bir piksel bloğu - ya ham bir işaretçi olarak ya da bir vtkArray türüne dönüşür. Açıkçası, hem OSG hem de VTK biraz aşırı bir ses gibi geliyor - düz OpenGL kullanmayı düşündünüz mü? Ya da programlama dilinize bağlı olarak, kullanabileceğiniz bazı hafif görüntü işleme oluşturma kitaplıkları vardır. – Gretchen

İlgili konular