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.
#2
Programación gráfica / Simulación de fluidos en tiempo real
19 de Mayo de 2008, 11:13:23 AM
Ron Fedkiw y Jos Stam son buenas referencias en el campo de CFD.
Ron Fedkiw tiene un montón de papers sobre el tema y Jos Stam tiene un buen paper sobre simulación de fluídos en video-juegos.
En ninguno de los casos utilizan SPH.
También tienes el capítulo de las GPU Gems, Fast Fluid Dynamics Simulation on the GPU.
En cualquiera de lo casos es necesaria una buena dosis de conocimientos en cálculo diferencial e integral. :lol:
Saludos.
Ron Fedkiw tiene un montón de papers sobre el tema y Jos Stam tiene un buen paper sobre simulación de fluídos en video-juegos.
En ninguno de los casos utilizan SPH.
También tienes el capítulo de las GPU Gems, Fast Fluid Dynamics Simulation on the GPU.
En cualquiera de lo casos es necesaria una buena dosis de conocimientos en cálculo diferencial e integral. :lol:
Saludos.
#3
Programación gráfica / Obtener las coordenadas en pantalla de un objeto 3D OpenglES
10 de Abril de 2008, 10:24:10 AMCita de: "diluo"Por cierto no son 3 matrices? La de perspectiva no se como se llama.La perspectiva es un tipo de proyección, o sea que hablamos de la misma matriz.
Saludos.
#4
Programación gráfica / Obtener las coordenadas en pantalla de un objeto 3D OpenglES
08 de Abril de 2008, 10:56:47 PM
Hola.
Sacado de aquí.
Saludos.
Código [Seleccionar]
/* projection du point (objx,objy,obz) sur l'ecran (winx,winy,winz) */
GLint gluProject(GLdouble objx, GLdouble objy, GLdouble objz,
const GLdouble model[16], const GLdouble proj[16],
const GLint viewport[4],
GLdouble * winx, GLdouble * winy, GLdouble * winz)
{
/* matrice de transformation */
GLdouble in[4], out[4];
/* initilise la matrice et le vecteur a transformer */
in[0] = objx;
in[1] = objy;
in[2] = objz;
in[3] = 1.0;
transform_point(out, model, in);
transform_point(in, proj, out);
/* d'ou le resultat normalise entre -1 et 1 */
if (in[3] == 0.0)
return GL_FALSE;
in[0] /= in[3];
in[1] /= in[3];
in[2] /= in[3];
/* en coordonnees ecran */
*winx = viewport[0] + (1 + in[0]) * viewport[2] / 2;
*winy = viewport[1] + (1 + in[1]) * viewport[3] / 2;
/* entre 0 et 1 suivant z */
*winz = (1 + in[2]) / 2;
return GL_TRUE;
}
Código [Seleccionar]
/*
* Transform a point (column vector) by a 4x4 matrix. I.e. out = m * in
* Input: m - the 4x4 matrix
* in - the 4x1 vector
* Output: out - the resulting 4x1 vector.
*/
static void transform_point(GLdouble out[4], const GLdouble m[16], const GLdouble in[4])
{
#define M(row,col) m[col*4+row]
out[0] = M(0,0) * in[0] + M(0,1) * in[1] + M(0,2) * in[2] + M(0,3) * in[3];
out[1] = M(1,0) * in[0] + M(1,1) * in[1] + M(1,2) * in[2] + M(1,3) * in[3];
out[2] = M(2,0) * in[0] + M(2,1) * in[1] + M(2,2) * in[2] + M(2,3) * in[3];
out[3] = M(3,0) * in[0] + M(3,1) * in[1] + M(3,2) * in[2] + M(3,3) * in[3];
#undef M
}
Sacado de aquí.
Saludos.
#5
Programación gráfica / Duda con cámara 3d - SetLookAt
14 de Marzo de 2008, 09:08:47 PM
Una vez creada la matriz de vista con D3DXMatrixLookAtLH (internamente genera los vectores right, up y look), puedes extraer los mismos a través de la propia matriz generada.
Corresponden a las columnas 1ª, 2ª y 3ª, respectivamente.
Saludos.
Corresponden a las columnas 1ª, 2ª y 3ª, respectivamente.
Saludos.
#6
General Programadores / Algebra planos
29 de Febrero de 2008, 04:25:16 PM
¿Has probado con el documento de Hartman y Gribb?
Aunque la implementación que tienes se parece a la que describe en el paper, por lo que es posible que sí lo hayas leído.
Saludos.
Aunque la implementación que tienes se parece a la que describe en el paper, por lo que es posible que sí lo hayas leído.
Saludos.
#7
Programación gráfica / Re: ¿es verdad? (tema tamaño texturas)
05 de Febrero de 2008, 06:52:46 PMCita de: "Tei"De todos modos un BMP tiene compresión RLE. Asi que un BMP ocupara menos que una imagen "descomprimida".Pero en memoria de video se almacena descomprimida (que creo que es la duda que tiene sms) salvo que se comprima en algún formato S3TC en tiempo de carga.
Saludos.
#8
Programación gráfica / ¿es verdad? (tema tamaño texturas)
05 de Febrero de 2008, 04:02:37 PM
Si no comprimes la textura en algún formato S3TC (y el hardware lo soporta), el tamaño será el mismo que la textura sin comprimir.
Saludos.
Saludos.
#9
Principiantes / Mi vocación
03 de Febrero de 2008, 08:29:54 PM
Yo tal como veo las cosas ahora, tampoco la dejaría. Pero bueno, eso también va a depender de a qué te quieras dedicar exactamente y el nivel que quieras alcanzar.
Yo personalmente me arrepiento de no haber hecho más hincapié en matemáticas (sobre todo en cálculo) y en física. Mi nivel académico es el de COU, que es lo esencial para la programación gráfica 3D, tanto a nivel matemático como físico. Sí es cierto que he hecho avances por mi cuenta a través de libros, pero cuando llega la hora de crear simulaciones más complejas como por ejemplo utilizar las ecuaciones de Navier-Stokes para simulación de fluidos, o simular la dispersión de la luz en la atmósfera, echo mucho de menos un mayor conocimiento en matemáticas y física. Que sí, que puedes coger el código del famoso solver de Jos Stam y el shader de no se quién para el render de la atmósfera, pero a mí lo que me interesa es entender lo que hago para después poder mejorarlo, optimizarlo o lo que sea.
Sí es cierto que intento paliar eso con libros pero sinceramente, es complicado y además tampoco puedo dedicarle todo el tiempo que sería necesario (temas de trabajo, jejej). Además, me imagino que siempre es mejor tener a alguien que sepa del tema y te explique in situ.
Saludos.
Yo personalmente me arrepiento de no haber hecho más hincapié en matemáticas (sobre todo en cálculo) y en física. Mi nivel académico es el de COU, que es lo esencial para la programación gráfica 3D, tanto a nivel matemático como físico. Sí es cierto que he hecho avances por mi cuenta a través de libros, pero cuando llega la hora de crear simulaciones más complejas como por ejemplo utilizar las ecuaciones de Navier-Stokes para simulación de fluidos, o simular la dispersión de la luz en la atmósfera, echo mucho de menos un mayor conocimiento en matemáticas y física. Que sí, que puedes coger el código del famoso solver de Jos Stam y el shader de no se quién para el render de la atmósfera, pero a mí lo que me interesa es entender lo que hago para después poder mejorarlo, optimizarlo o lo que sea.
Sí es cierto que intento paliar eso con libros pero sinceramente, es complicado y además tampoco puedo dedicarle todo el tiempo que sería necesario (temas de trabajo, jejej). Además, me imagino que siempre es mejor tener a alguien que sepa del tema y te explique in situ.
Saludos.
#10
Proyecto dx_lib32 / Mirar lo que encontre de casualdiad navegando
25 de Enero de 2008, 08:43:37 PM
Enhorabuena, siempre da gusto ver que alguien hace uso de las creaciones de uno. :)
PD: juas, idiot software... :lol:
PD: juas, idiot software... :lol:
#11
Programación gráfica / Comprobar visibilidad de objetos
16 de Enero de 2008, 11:48:05 PM
Creo que el documento al que se refiere senior wapo es
Fast Extraction of Viewing Frustum Planes from the World-View-Projection Matrix
de Gil Gribb y Klaus Hartmann.
El sistema del que habla es el que utilizamos nosotros en Haddd/Jade.
Saludos.
Fast Extraction of Viewing Frustum Planes from the World-View-Projection Matrix
de Gil Gribb y Klaus Hartmann.
El sistema del que habla es el que utilizamos nosotros en Haddd/Jade.
Saludos.
#12
Programación gráfica / Comprobar visibilidad de objetos
16 de Enero de 2008, 01:48:57 AM
Yann Lombard mencionó hace tiempo un método que parece ser muy rápido. Aquí tienes el hilo, más abajo pone el código.
Yo no lo he probado así que no sé cuán eficiente será, pero si Yann lo dice... :lol:
Saludos.
Yo no lo he probado así que no sé cuán eficiente será, pero si Yann lo dice... :lol:
Saludos.
#13
Programación gráfica / Problema con Implementación del Double Buffer
13 de Enero de 2008, 01:12:52 AM
¿Con que no funciona quieres decir que el programa da un error al ejecutarlo o que la imagen parpadea?. Si es lo último, prueba a sobrecargar el método OnEraseBkgnd de la vista y haz que devuelva FALSE.
Sólo es una idea, la verdad es que mis tiempos de OpenGL pasaron hace muchos años. :P
Saludos.
Sólo es una idea, la verdad es que mis tiempos de OpenGL pasaron hace muchos años. :P
Saludos.
#14
Programación gráfica / lightmap y objetos dinamicos
10 de Enero de 2008, 02:01:33 PMCita de: "race"la verdad es que el efecto que necesito es oscurecer el jugador ( por ejemplo) cuando pase por una sombra.Sigues teniendo la opción 3D que mencioné (grid o textura) y además tendrías la opción de precalcular los shadow volumes de la geometría estática y posteriormente utilizarlos al renderizar tus objetos dinámicos (Doom III también precalcula muchos shadow volumes de los mapas, aunque en este caso no sólo los utiliza para proyectar sombras sobre los objetos dinámicos sino también sobre el propio escenario). También tienes la opción de precalcular los "depth shadow maps" y posteriormente proyectar sobre los objetos dinámicos.
Cita de: "Pogacha"En realidad proyecta texturas para mantener compatibilidad con placas viejas donde no hay shadersSí, efectivamente utiliza un método similar al que se describe en el link que puse más arriba (el de Ron Frazier). Es curioso que incluso en "ET:QW" siguen utilizando ese sistema. Efectivamente si fisgoneas en la carpeta de recursos, hay una carpeta de luces en la que puedes ver una textura 2D para la atenuación en XY y otra 1D con la atenuación en Z.
#15
Programación gráfica / lightmap y objetos dinamicos
07 de Enero de 2008, 04:10:44 PMCita de: "senior wapo"De doom 3 pasa que no usa lightmaps para nada.Sí, es cierto, toda la iluminación es dinámica pero por lo que he podio ver (y ciertamente no estoy seguro al 100%), creo que el diffuse se consigue con proyección de texturas (no se hace el NdotL, por lo que he podido ver en el "uber-shader" que viene con Doom III), aunque el specular sí se calcula utilizando Blinn-Phong. De ahí que comentara lo de que la proyección de texturas es una opción. Pero vamos, como digo no pongo la mano en el fuego... :P
Saludos.