2016-01-28 23 views
9

using buffer geometries değerini anladığım gibi, performansı artıracak ve bellek kullanımını azaltacaktır çünkü bu verilerin tümünü GPU'a geçirme maliyetini azaltacaktır. Three.js - hakkında sorular (kullanımı) THREE.BufferGeometry

Ve

Burada from @WestLangley his post anlaşılan: Bu hesaplama daha verimli olduğu gibi

THREE.BufferGeometry

yavaşça THREE.Geometry yerini alıyor. R72 -

Şu anda Three.js kullanıyorum.
Geometrilerimi çizdiğimde kafesler oluşturup sahneye eklediğimde, geomtries __directGeometry ve _bufferGeometry içinde iki özellik olduğunu görüyorum. Bir THREE.BoxGeometry yılında Burada

:

İşte

enter image description here

THREE.Geometry bir de: Bir THREE.ShapeGeometry yılında Burada

enter image description here

:

enter image description here

Sorularım:

bir THREE.DirectGeometry ve ne yapar ne
  1. ? (Bu konuda herhangi bir belge bulamıyorum)
  2. THREE.BufferGeometry_bufferGeometry içinde otomatik olarak kullanılıyor mu? Değilse, performansı artırmak için onu geometrimden ziyade kullanabilir miyim?
  3. Dönüştürme yöntemleri vardır: THREE.BufferGeometry, toGeometry ve THREE.Geometry, toBufferGeometry sahiptir. Tüm normal geometrileri bu yöntemi kullanarak arabellek geometrilerine dönüştürürsem, bana başlangıçtan itibaren THREE.BufferGeometry olarak çizim yapmakla karşılaştırıldığında aynı performans artışını verir mi?
  4. THREE.BufferGeometry'u nasıl ve ne zaman kullanmalıyım?
  5. Ne zaman üç.js 'u THREE.BufferGeometry lehine desteklemeyi durduracaktır?

NOT: Ben tampon geometri ne zaman kullanılacağını ve nasıl veya ne THREE.Geometry değiştirilmesi olacak zaman hakkında ayrıntılı bilgi bulamadık. Ancak birisinin iyi bir kaynağı veya referansı varsa lütfen yorum bırakın.

cevap

7
  1. __directGeometryTHREE.Geometry ve THREE.BufferGeometry arasında geçiş için kullanılan dahili bir veri yapısıdır. Onunla uğraşma.
  2. THREE.BufferGeometry.toGeometry() ve THREE.Geometry.toBufferGeometry() kolaylık yöntemleridir.Birincisi, modeliniz BufferGeometry olarak yüklüyse ve Geometry'u manipüle etmede daha rahat hissediyorsanız yararlıdır. Performansla ilgili cevaplar istiyorsanız, bir test yapmanız gerekir. Tampon geometrileri kesinlikle daha hızlı yüklenir.
  3. BufferGeometry kullanımını gösteren birçok örnek vardır. "İndeksli" ve "endekslenmemiş" BufferGeometry arasındaki farkı anladıysanız akıllıca olur. BufferGeometry tanımlanmış index özniteliği, köşelerin paylaşımına izin verir. İndekslenmemiş BufferGeometry "üçgen çorba" dediğimiz şeydir. Öngörülebilir gelecek için
  4. THREE.Geometry devam edecektir.

Three.js Cevabınız için r.73

+0

teşekkürler. Bu kısımda biraz detaylandırmaya devam ederseniz: * Eğer normal geometrilerimi bu yöntemi kullanarak tampon geometrilerine dönüştürürsem, bu bana bir THREE.BufferGeometri başlangıcından daha fazla çizim yapmama kıyasla aynı performans artışını verir mi? * Çünkü ben hala Maksimum performans elde etmek için geometrilerimi tampon geometrileri olarak yeniden çizmemin mümkün olup olmadığından emin değilim ... – Wilt

+0

Bir tane daha ... Dizine eklenmemiş bir dizin geometrisi arasında bir performans farkı var mı? – Wilt

+2

(1) # 3'te söylediğim gibi. Yukarıda, performansla ilgili cevaplar istiyorsanız, özel uygulamanızın bir testini yapmanız gerekir. (2) İşleyici, normal geometrilerinizi yine de geometriyi arabelleklemeye dönüştürür; bu nedenle, dönüşümü el ile yapmanıza gerek yoktur. Ancak, iyi bir öğrenme deneyimi olabilir. (3) Endekslenmiş ve endekslenmemiş 'BufferGeometry', _significant_ performans farklılıklarına sahip olabilir veya olmayabilir. Geometriye bağlı. – WestLangley