wenas kisiera saber como se crean las matrices para por ejemplo rotar una malla escalarla... a partir de una malla de un archivo x para k por ejemplo cuando cargue mas d una malla pueda rotar esa y no el mundo entero
ostia es en directX 8.1 y si soy un novato
Tratándose de D3D, tienes la posibilidad de utilizar las D3DX para crear tus matrices. Así, para crear una matriz de transformación (traslación, rotación, escalado, etc), puedes utilizar las funciones
D3DXMatrix*************
Por ejemplo, para crear una matriz de rotación en el eje Y, 90º, utilizarías el siguiente código
D3DXMATRIX mRot;
D3DXMatrixRotationY(&mRot, D3DXToRadian(90.0f));
Si estás utilizando la fixed pipeline, una vez creada la matriz deberás activarla con
pDevice->SetTransform(D3DTS_WORLDMATRIX, &mRot);
y finalmente dibujar tu objeto.
Si utilizas vertex shaders, entonces la transformación la realizas dentro del mismo.
Y si lo que quieres es transformar cada objeto por separado, entonces deberas hacer esto:
- Creas la matriz de transformación para el objeto A
- Activas dicha matriz con SetTransform
- Dibujas el objeto A
- Creas la matriz de transformación para el objeto B
- Activas dicha matriz con SetTransform
- Dibujas el objeto B
- ...y así con todos tus objetos dinámicos...
A ver si eso ayuda...
Saludos
ahm gracias!
x cierto mi, ejem, compilador ya carga mallas 3d!!!!
¿Un compilador que carga mallas 3d? :blink:
Original :ph34r:
de que os extrañais?el mo tb las carga:
#include "malla.3ds"
no me referia a eso sino a esto:
program miprograma
begin
set_mode(m640x480);
[B]load_x("mimalla.x");[/B]
loop
frame;
end
end
dejaos ya de caxondeo ;)