Jak zrozumiałem using buffer geometries zwiększy wydajność i zmniejszy zużycie pamięci, ponieważ obniża koszt przekazania wszystkich tych danych do GPU.Three.js - Pytania dotyczące (używania) THREE.BufferGeometry
I jak rozumieć from @WestLangley his post tutaj:
THREE.BufferGeometry
powoli zastępującTHREE.Geometry
jak to jest obliczeniowo bardziej wydajne.
Obecnie używam Three.js - R72.
Kiedy narysuję geometrię, tworząc siatki i dodając je do sceny, widzę, że w moich geometrach znajdują się dwie właściwości: __directGeometry
i _bufferGeometry
.
Tutaj w THREE.BoxGeometry
:
tu w THREE.Geometry
:
tu w THREE.ShapeGeometry
:
Moje pytania:
- Co jest
THREE.DirectGeometry
i co to robi? (Nie mogę znaleźć żadnej dokumentacji na ten temat) - Czy to
THREE.BufferGeometry
przechowywane w_bufferGeometry
jest już automatycznie używane? Jeśli nie, czy mogę po prostu użyć go zamiast mojej geometrii, aby zwiększyć wydajność? - Istnieją metody konwersji:
THREE.BufferGeometry
matoGeometry
iTHREE.Geometry
matoBufferGeometry
. Jeśli skonwertuję wszystkie moje normalne geometrie do geometrii buforów za pomocą tej metody, czy da mi to taki sam wzrost wydajności w porównaniu do rysowania ich od początku jakoTHREE.BufferGeometry
? - Jak i kiedy należy użyć
THREE.BufferGeometry
? - Kiedy program three.js przestanie obsługiwać
THREE.Geometry
na rzeczTHREE.BufferGeometry
?
UWAGA: nie mogłem znaleźć szczegółowe informacje o tym, kiedy i jak używać geometrii buforowe lub gdy będzie zastąpienie THREE.Geometry
. Ale jeśli ktoś ma dobre źródło lub referencję, zostaw komentarz.
dziękuję za odpowiedź. Czy mógłbyś jeszcze trochę rozwinąć w tej części: * Jeśli skonwertuję wszystkie moje normalne geometrie do geometrii buforów za pomocą tej metody, czy da mi ten sam wzrost wydajności w porównaniu do rysowania ich jako TRZECH.BufferGeometry od początku? * Ponieważ wciąż jestem nie jestem pewien, czy powinienem przerysować moje geometrie jako geometrie buforów, aby uzyskać maksymalną wydajność ... – Wilt
Jeszcze jedna ... Czy istnieje różnica w wydajności między indeksowanymi i niezindeksowanymi geometriami bufora? – Wilt
(1) Tak jak powiedziałem w punkcie 3. powyżej, jeśli chcesz uzyskać odpowiedzi dotyczące wydajności, musisz wykonać test swojej konkretnej aplikacji. (2) Program renderujący konwertuje normalne geometrie do geometrii bufora, więc nie powinno być żadnego powodu, aby wykonać konwersję ręcznie. Może to jednak być dobre doświadczenie edukacyjne. (3) Indeksowane i nieindeksowane "BufferGeometry" mogą, ale nie muszą, mieć znaczące różnice wydajności. To zależy od geometrii. – WestLangley