como puedo hacer k con una malla cargada con d3dxloadmeshfromx pueda aplicarle la iluminacion? ein?
Nunca he utilizado los meshes de D3D pero tiene que haber alguna función de la interfaz ID3DXMesh que te genere las normales. Es lo único que necesitas. A no ser que lo que quieras es calcular la iluminación per-fragment, en cuyo caso necesitarás también que te genere la tangente y la binormal.
Ya lo único que te faltaría es manejar las luces. Bien a través de la fixed pipeline o bien a través de vertex & pixel shaders.
Saludos.
habia algo k se llamaba algo asi como d3dxcomputenormals. es eso no?
como se hace x vextex shaders x ejemplo?
en el tuto de mocosoft lo hacia asi...
No, a lo que me refería es a esta función:
HRESULT D3DXCreateMeshFVF(DWORD NumFaces,
DWORD NumVertices,
DWORD Options,
DWORD FVF,
LPDIRECT3DDEVICE9 pDevice,
LPD3DXMESH *ppMesh
);
Dependiendo del parámetro FVF, esta función te devolverá un mesh con unos datos u otros. Por ejemplo. Una FVF del tipo D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX0, te devolverá un mesh con un tipo de vértice compuesto por sus coordenadas, una normal y un set de coordenadas de textura.
Todo esto en teoría y según las MSDN ya que como he dicho antes, nunca he utilizado la interface ID3DXMesh.
Saludos.
Ok, me he fijado que lo que utilizas es la función de carga de archivos X. En ese caso he de suponer que al exportar tendrás la posibilidad de hacerlo con las normales, con lo cual, esa función ya se encargará de cargar normales, etc.
De todas formas, la función que mencionas también hará el trabajo de crearte las normales. La otra opción supongo que será recoger el buffer de datos del mesh y hacerlo por tí mismo.
Saludos.
y como puedo usar SetVertexShader con una malla??
Pues supongo que será llamando a SetVertexShader; especificando el vertex shader en cuestión, antes de renderizar el mesh.
Saludos.
yata! solusionau! asias