Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - SkyNetBCN

#16
Programación gráfica / Archivos .fx en Mesh
05 de Agosto de 2008, 08:05:11 AM
Qué tal. Tengo una curiosidad. Me gustaría saber cómo hace la aplicación "DXViewer" (que viene con el DirectX SDK) para cargar los archivos .fx que vienen dentro de un archivo .X?

Lo quiero implementar en mi código pero no se me ocurre cómo hacerlo...
Gracias de antemano
#17
Programación gráfica / Hago mal el DrawPrimitive?
29 de Enero de 2007, 09:38:13 PM
Perdonar mi ignorancia pero... como puedo saber si los vértices están ordenados? y si no lo están, como los puedo ordenar?

Sí, sí he puesto el Begin/EndScene... la verdad es que el mesh ya es simple, es "suelo" , un rectángulo enorme sin desniveles de momento...
#18
Programación gráfica / lol
28 de Enero de 2007, 08:51:34 PM
joer que pajarillo estoy... todo son errores al copiar...

resumiendo, tengo un Mesh cargado, y lo que quiero es obtener la informaíón de sus vértices para dibujar con la función DrawPrimitive. Y un resumen de lo que hago es:

struct D3DVERTEX
{
   D3DXVECTOR3 p;
   D3DXVECTOR3 n;
   FLOAT       tu, tv;

   static const DWORD FVF;
};

const DWORD D3DVERTEX::FVF = D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1;

//
//
//

LPDIRECT3DVERTEXBUFFER9 Vertices;
DWORD dwNumVertices;

Mesh->GetVertexBuffer( &Vertices );
dwNumVertices = Mesh->GetNumVertices();


//
//
//


         
DXUTGetD3DDevice()->SetRenderState(D3DRS_LIGHTING, FALSE );
DXUTGetD3DDevice()->SetFVF( D3DVERTEX::FVF );
DXUTGetD3DDevice()->SetStreamSource( 0, Vertices, 0, sizeof(D3DVERTEX) );
DXUTGetD3DDevice()->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, dwNumVertices );



El caso es que me dibuja algo; un puñado de triángulos dibujado por "ahí" al tuntún y sin ningún orden... si alguien me pudiese ayudar... gracias!!
#19
Programación gráfica / mismo problema...
23 de Enero de 2007, 10:45:53 PM
Yo tengo el mismo problema que Sagan (que conseguí resolver de un modo un poco rupestre). En mi caso las boundingBox/boundingSpheres no me sirvieron de nada, porque no hay ninguna boundingP... que tenga la forma de un mapa lleno de habitaciones (no todas las paredes son rectas...), pasillos, puertas, etc...

Si encuentras una manera de hacer eso con bounding.... estaría bien que la colgases para echarle un vistazo...  :D

Salud2!!
#20
Programación gráfica / Hago mal el DrawPrimitive?
23 de Enero de 2007, 10:42:03 PM
Hola compañeros, estoy intentando dibujar "a mano" un objeto (mesh) en vez de pasárselo entero al DirectX, pero me dibuja una auténtica guarrada...



lo que intento es:

Mesh->GetVertexBuffer( &Vertices ):
Num = Mesh->GetNumVertices();
Vertices->Lock( 0, 0, (void**)&pVertices, 0  );
Vertices->Unlock();
Vertices->Release();
//
//..
//..
//
3D->SetStreamSource( 0, VerticesParedes, 0, sizeof(D3DVERTEX) );
3D->SetFVF( D3DVERTEX::FVF );
3D->DrawPrimitive(D3DPT_TRIANGLELIST ,0,Num/3);

El fin de todo esto es (una vez consiga como mínimo dibujar correcamente algo  :P ) optimizar el renderizado, ya que dibujo un mapa muy grande y el directX me dibuja toooodo... y evidentemente los fps caen en picado....

gracias de antemano!
#21
Programación gráfica / Puertas... xD
01 de Enero de 2007, 06:43:30 PM
Qué tal compañeros, la verdad es que no sabía exactamente dónde colocar este post, porque toca otros temas a parte de la programación... pero ahí va.

Estoy diseñando un mapa con 3dMax7 para poder andar por él después con una mini-app que hecho con directX. Lo exporto a .x para utilizarlo en mi app.
El problema es que para hacer los huecos de las puertas utilizo el operador booleano del 3dMax pero a la hora de exportar, se me exporta como si fuese una pared por lo cual cuando desde mi app vas caminando por el mapa en 3d ves el hueco de la puerta pero no lo puedes atravesar porque lo trata como "sólido".

No sé si esto os habrá pasado alguna vez a alguno de vosotros, si es así, necesito que alguien me diga alguna otra manera de hacer esto mismo...

gracias
#22
Programación gráfica / + colisiones...
12 de Diciembre de 2006, 05:13:06 PM
Que tal compañeros... ya hace unos días que abrí esta discusión pidiendo orientación acerca de cómo utilizar colisiones en un fps contra una mapa cargado en un objeto CDXUTMesh. Después de intentarlo y más intentarlo no he podido (ya dije que soy novato...  :( )

He intentado varias cosas, la que más resultado me ha dado (aunque sea una caca, jeje) fue descomponer (en mi caso me iba bien) el movimiento que se iba a realizar para comprobar si frontal o lateralmente se producía una colisión, la comprobación la hacía con la función D3DXIntersect que me devolvía la distancia al objeto (si es que había colisión).

Pero bueno, como ya he dixo, el resultado, aunque se acerca, es una m...  ya casi me doy por vencido... si alguien me quiere echar una mano ya saben, o si quieren para una comunicación más "fluida" agregarme al msn.. así os paso código o lo que haga falta...

Gracias!!
#23
Programación gráfica / Colisiones
14 de Noviembre de 2006, 10:41:03 PM
jeje, Como si me hablaseis en chino... dando por hecho que hay muy poca documentación por internet de todo esto... alguien me puede decir por donde empezar? Recordar que soy nuevo...  :D

Gracias
#24
Programación de audio / DXUTSound
14 de Noviembre de 2006, 10:38:57 PM
Que tal compañeros... A ver si a alguien se le ocurre pk puede fallar la función "CSoundManager::Create" llamándola de la siguiente manera?

manager.Create( &sonido, L"C:\\sonido.wav");

Falla en la siguiente línea
   apDSBuffer = new LPDIRECTSOUNDBUFFER[dwNumBuffers];

y no tengo ni idea de por qué,

agradecería una ayuda pk esto me estávolviendo loco...

Gracias!! :D
#25
Programación gráfica / +Colisiones
12 de Noviembre de 2006, 09:35:28 PM
Crear un "cubo" con una forma parecida al mesh es complicado, ya que posiblemente el mesh sea un mapa sobre el que se caminará y puede llegar a ser bastante complejo...

Me gusta lo de comprobar si las coordenadas de un vértice está dentro del radio... decis que mejor sería comprobar los polígonos en lugar de los vértices? jeje, no sabía que podía hacer eso...  :D (ya sabeis que soy nuevo)

seguramente el mesh será muy grande (repito, un mapa), así que supongo que sería muy lento recorrer cada vez todos los vertices/poligonos del mesh, no?

Gracias por vuestras opiniones...
#26
Programación gráfica / Colisiones
11 de Noviembre de 2006, 03:16:04 PM
Hola de nuevo... como algunos de vosotros ya sabréis, estoy empezando a hacer mis primeras chapucillas con DirectX 9 y c++.

Me gustaría saber cual considerais que es la mejor manera (y como mejor me refiero a la más simple, aunque sea más precisa) de detectar colisiones entre un objeto (Mesh.x) y lo que sería el jugador en un juego en 1ª persona...
quizás creando una "esfera" alrededor de la camara detectando si el mesh se encuentra dentro de la esfera? no sé, esque realmente no tengo ni idea... cual es vuestra opinión?

Gracias!!

Saludos
#27
Programación gráfica / Texturas...
05 de Noviembre de 2006, 12:57:57 PM
Gracias a todos...

Al final, como dijistes tu BeRSeRKeR, he multiplicado los valores de tu y tv por el tiling que había en 3D Max y salió todo OK.

Aunque me preocupa que no se guarde este tipo de info en los archivos .X, quizás no sea el tipo de archivo que necesito, aunque de momento con lo que sé será mejor que no me complique mucho la vida...

Cuando haya acabado la escena que estoy haciendo subiré un par de escenas a ver que os parece... (ya que la estoy consiguiendo hacer gracias a vuestra ayuda... xD) .ok?

Saludos,
#28
Programación gráfica / Texturas...
02 de Noviembre de 2006, 04:27:50 PM
Lo siento, comenté que era nuevo en programación gráfica, jeje, y preguntarme esto:
Por cierto, ¿tienes el addressing mode en modo wrap?.
es como preguntarme a cerca de los orígenes del universo...  :?:

Sorry...
#29
Programación gráfica / Texturas...
02 de Noviembre de 2006, 07:56:40 AM
Pues como ya he dicho antes, no sé muy bien como hacerlo, pero lo que he intentado es esto...



LPDIRECT3DVERTEXBUFFER9 pTempVertexBuffer;
if(m_pMesh->GetVertexBuffer( &pTempVertexBuffer ) ) )
{
       int nNumVerts = m_pMesh->GetNumVertices();
       D3DVERTEX *pVertices = NULL;
       pTempVertexBuffer->Lock( 0, 0, (void**)&pVertices, 0 );
       for( int i = 0; i < nNumVerts; ++i )
       {
   pVertices.tu = 2.0f;
   pVertices.tv = 2.0f;
       }
       pTempVertexBuffer->Unlock();
       pTempVertexBuffer->Release();
}



Pero modificar tanto tu como tv hace que se vea aún peor o incluso dependiendo del valor, que no se vea la textura.

Gracias...
#30
Programación gráfica / Texturas...
30 de Octubre de 2006, 09:26:08 PM
Las estoy modificando con las opciones de tiling del material del editor de materiales del 3dMax...





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.