2009-10-13 10 views

Respuesta

5

Puede almacenar múltiples mallas en un búfer de vértice. Puede obtener algún rendimiento colocando varias mallas pequeñas en un búfer. Para mallas realmente grandes, debe usar almacenamientos intermedios separados. SetStreamSource le permite especificar el desplazamiento del búfer de vértice para su malla actual.

pRawDevice->SetStreamSource(0, m_VertexBuffer->GetBuffer(), m_VertexBuffer->GetOffset(), m_VertexBuffer->GetStride()); 
-2

Con OpenGL puede usar glVertexPointer() para comenzar a dibujar desde un cierto desplazamiento dentro de la VBO. no estoy seguro acerca de D3D.

2

TBH en general, la razón para ponerlos a todos en un gran búfer es ahorrar en las llamadas al sorteo. El costo de cambiar un buffer de vértice es bastante mínimo. Si puedes unirlos a todos en un buffer de 1 vértice y renderizar 10 objetos en 1 llamada de draw, entonces estás en una gran victoria.

Por lo general, para fusionarlas simplemente creas 1 gran búfer de vértices con todos los datos de vértices, ya transformados en el mundo, uno tras otro. A continuación, configura un búfer de índice que los representa uno tras otro. A continuación, tiene todo lo que dibuja en llamadas de sorteo mínimo. Por supuesto, si mueve una cosa que requiere la actualización de una parte del búfer de vértices, es una situación ideal para la geometría estática.

Si todos los objetos son iguales, solo utilizará 1 búfer de vértice (con 1 definición de objeto) y 1 búfer de índice de todos modos, ¿no? Las matrices mueven o animan el objeto ...

Si todos los objetos son diferentes y se mueven/animan, me quedaría con VBs individuales. Dudo que noten ninguna diferencia al fusionarlos todos juntos.

0

Bueno, mi experiencia es que no hace mucha diferencia siempre y cuando tus buffers no sean muy pequeños o realmente grandes. Sospecho que cualquier ineficacia en los buffers de conmutación sería igualada por un aumento en la eficiencia al darle al conductor más operaciones para administrar su memoria con buffers más pequeños.

Cuestiones relacionadas