En DirectX, para activar la transformación e iluminación de los vertices por hardware, ademas de usar D3DCREATE_HARDWARE_VERTEXPROCESSING al crear el dispositivo 3D, ¿hace falta hacer algo mas?
Hola.
No he usado T&L por hard, pero por lo que he leido aparte de indicar eso al crear el Device solo hay que tener en cuenta algunos parametros en la creacion de los vertexbuffer..
Supongo que sera en lo relativo a la administracion de memoria de estos vertexbuffer (es decir, donde van a ir colocados) para que la tarjeta sea capaz de acceder a estos vectores para aplicar las matrices introducidas de transformacion.
Mirate la creacion de los vertex buffers que por ahi hay una "tecla" :sonriendo:
Saludos, Astharoth.
Gracias.
Para la creacion de los vertex buffer uso D3DPOOL_MANAGED. Me he mirado la ayuda del SDK y creo que estoy usando el correcto, si no es asi, por favor que alguien me lo diga :sonriendo:
Si usas HARDWARE_VERTEX, sólo funcionará en aquellas tarjetas que lo tengan por hardware. No vale la pena si sólo usas Vertex Shaders, pero indispensable si usas Pixel Shaders.
Respecto a lo del MANAGED, te diré que eso signfica que mantiene una copia de todo lo que hagas, por lo que bajará tu rendimiento, pero al hacer un Reset del device, DX te hará el trabajo sucio de recrearlo todo. Te daré un ejemplo que te hará saltar de la silla:
Cuando usas el Lock en un Vertex Buffer y modificas valores, al hacer el Unlock, DX te copia esos mismos datos a un buffer local. Es decir, que lo que haces se copia dos veces!! Esto no es muy positivo para el rendimiento,¿verdad?
Citar
Drácula escribió:
Si usas HARDWARE_VERTEX, sólo funcionará en aquellas tarjetas que lo tengan por hardware. No vale la pena si sólo usas Vertex Shaders, pero indispensable si usas Pixel Shaders.
A mi no me gustaría tener una flamante GeForce 4 con T&L y que me den un juego que trabaja los vértices en la CPU.
Citar
Respecto a lo del MANAGED, te diré que eso signfica que mantiene una copia de todo lo que hagas, por lo que bajará tu rendimiento, pero al hacer un Reset del device, DX te hará el trabajo sucio de recrearlo todo. Te daré un ejemplo que te hará saltar de la silla:
Cuando usas el Lock en un Vertex Buffer y modificas valores, al hacer el Unlock, DX te copia esos mismos datos a un buffer local. Es decir, que lo que haces se copia dos veces!! Esto no es muy positivo para el rendimiento,¿verdad?
Muy interesante esto, no lo sabia. Carmack, prepárate!! xDD