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

Temas - Loover

#81
 Creía que tenía claro estos conceptos pero me he hecho un lio.
A ver, en OGL tenía una aplicación que al crearla te dejaba elegir entre 16 y 32 bits de color. Al crear el render, le pasaba como parámetro (entre otros como el tamaño de ventana) el bpp 16/32. Luego, cuando ogl creaba las texturas yo solo tenía que indicarle donde estaba el array de bytes y su formato (GL_RGB, GL_RGBA, etc). Tan simple como eso.

Ahora, desde D3D me he hecho un lio tremendo. Pensaba que iba a ser de la misma mangera pero las cosas cambian hasta la manera de inicializarlo. Ojeando la ayuda, llegué a pensar que usando D3DDISPLAYMODE y dándole el formato:
- D3DFMT_R5G6B5 Sería 16 bits
- D3DFMT_A8R8G8B8 Sería 32 bits
Aunque no tenía ni idea de que para que servía especificar el alpha en el backbuffer ese.

Así que usando un array de bytes en formato RGBA probé a cargar la textura usando D3DFMT_A8R8G8B8 y al dibujarla a pantalla completa, tanto en lo que yo creía que iban a ser 16 como 32 bits se veía como de 32 bits. Así que dije, pues habrá que cargar la textura con D3DFMT_R5G6B5. Pero claro, al tener el array de bytes de 4 en 4 bytes (RGBA) mal rollo, salía mal dibujada.

Vamos, que ando despistado  :blink:  y no sé como hacer algo tan simple como que el usuario elija entre 16 y 32 bits en Direct 3d. Me gustaría que me aclararais todo esto un poco, gracias.

PD: Si ya de paso me hablais sobre el modo 256 colores (usando paletas y tal) os invito a un cubata  (ole)  
#82
Programación gráfica / Texturas Procedurales En D3d
26 de Diciembre de 2003, 01:28:01 AM
 No creí que algo tan sencillo me trajera tantos quebraderos de cabeza.

Tengo un array de 256*256*4 bytes en memoria, en formato BGRA defienen una imagen de 256x256.
¿Cómo lo paso a una textura en Direct3d?

He probado con D3DXCreateTextureFromFileInMemory pero sospecho que esa función te pide todo el archivo cargado en memoria con cabecera y todo (lo cuál me parece una estupidez de función pero bueno).
He leído sobre superficies, pero tampoco me ha quedado claro y no lo he resuelto.
Y no existe una D3DXCreateTextureFromMemory, lo cuál me parece una putada.

¿Cómo se hace? Agradecería mucho mucho código con ejemplos, o el nombre exacto de las funciones.
#83
Programación gráfica / Texturas Más Eficaces
16 de Diciembre de 2003, 12:56:26 AM
 ¿¿ Es verdad que para una misma superficie se renderiza más rapido con una textura de 128x128 que con una de 128x32 ??
#84
General / No Me Gusta Que Los Mensajes No Se Puedan Editar..
14 de Diciembre de 2003, 09:02:19 PM
 Pues eso, que no me gusta nada que los mensajes no se puedan editar pasado x tiempo. Sobre todo para hacer cosas tipo las que hacen en otros foros, de colocar imágenes de tu proyecto SOLO en el post inicial e ir editándolo para poner nuevas imágenes y llevar acabo explicaciones de las mismas según la fecha.
Aparte de que siempre hay algo que quieres retocar/avisar/imagen que añadir en post pasados.

¿El resto que pensais?

Un saludo!
#85
 Buenas.

Estoy portando una serie de clases que había implementado con OpenGL a Direct3d y me han surgido algunas dudas.
Una de ellas es la forma en que yo hacía una especie de "entintado" en las imágenes:

OPENGL
A cada frame:

glColor4f (1.0f, 1.0f, 1.0f, 0.5f);
glCallList (displayList);

Y ale, la imagen que estaba en displayList se entintaba.

DIRECT3D

¿Cómo hago eso a cada frame en Direct3d sin tener que lockear el vertex buffer, cambiar el color de todos los vértices, unlockear y dibujar?

Porque según tengo entendido, lockear a cada frame es muy costoso.

Un saludo!
#86
Bueno, en el post anterior me convenció la StlPort y empecé a usarla. Va de maravilla... excepto con un problema que no sé resolver.

El caso es que tengo una clase que será usada desde una DLL tal que:


#define DLL_EXP __declspec(dllexport)

class DLL_EXP LOV_ImageManager
{
public:
...
...
...
deque <int> mDequeImages;
...
...
...
void MetodoDePrueba ();
...
...
...
};


Hasta ahí todo bien, excepto que al compilar me da el siguiente warning:

warning C4251: 'mDequeImages' : class '_STL::deque<int,class _STL::allocator<int> >' needs to have dll-interface to be used by clients of class 'LOV_ImageManager'


Luego, en un método de esa clase tengo:

void LOV_ImageManager::MetodoDePrueba ()
{
mDequeImages.push_back(2);      // Le meto un int 2 por meterle algo de prueba
int tema = mDequeImages.at (0); // ESTA LÍNEA PEGA UN REVENTÓN
}


Cuando digo que pega un reventón, me refiero a más tarde. Compilar compila, aunque con ese warnig, y tb lo da al linkar.
Pues bien, una vez desde el código que usa esta DLL, al compilarlo me da el mismo warning. Luego al ejecutarlo pega un reventón en la línea que he señalado y el programa se cuelga.
Como veis he usado un "deque" (muy similar al "vector") pero no es cosa suya, esto peta con cualquier container. Vamos, que si pongo vector en lugar de deque peta igual.
El usar enteros en el deque es solo para hacer la prueba.
Otra cosa, si el deque, vector o el container que sea no está definido en la clase sino dentro de un método entonces no peta. Pero claro, yo quiero que ese container sea accesible por todos los métodos y que no se destruya al acabar el método en cuestión, vamos, que sea public o private.

¿Qué puedo hacer para remediarlo?
#87
General Programadores / Sgi Standard Template Library
01 de Diciembre de 2003, 02:12:04 PM
 Buenas, hacía un huevo que no me pasaba por aquí :) Saludos a todos!

Bueno, al grano. Tengo un problema con la STL de SGI. No logro instalarla bien para usarla con Visual Studio 6.
Hago los siguientes pasos: bajo la libreria (en una caperta llamada stl). Luego, desde el visual studio, voy a project>settings>c/c++>preprocesor>additional include directories y le meto el valor "c:\stl" (donde esta la carpetita).

Hasta ahi bien.¡ Pero cuando le doy a compilar me da mil errores! Pero no la stl, sino .h de la carpeta del visual que deben entrar en conflicto o alguna cochinada por el estilo.

¿Cómo se instala correctamente?

Un saludo!
#88
 Mirar que web he encontrado:

(uoh)  http://www.aventuraycia.com/bluffpcgames/frame2.htm  (uoh)
#89
Modelado / Problemas con el render to texture + GI
25 de Junio de 2003, 02:27:15 PM
                                He estado probando el "render to texture" del max 5 (gracias por los consejos Eurisko). Es una pasada porque te permite algo que había estado buscando desde hacía tiempo: texturizar en max y luego sacar una única textura (a partir de todas las capas que haya utilizado) para usar en una aplicación en tiempo real.
Funciona muy bien, incluso con luces del max, plugins como quick dirt, etc.
Pero hay una caso en el que no logro el resultado esperado. Al usar iluminación global (GI).
Tanto si uso Final Render como Brazil el resultado es que al hacer el render to texture... el sombreado (por llamarlo de alguna manera) no aparece donde debería. Esto se debe (creo) a que estos motores de renders tienen en cuenta la posición de la cámara y sinembargo un render to texture es independiente de la misma.
Como solución alternativa, he tenido que probar otros GI más antiguos, como el script Sky Dome. Estos SI funcionan bien, porque después de todo no dejan de ser scripts de max que utilizan luces puestas en distintos sitios (el script se encargar de colocarlas).

Ahora bien, no se puede comparar el script de GI sky dome con Final Render o Brazil, por eso me preguntaba si sabeis alguna manera de que funcionen correctamente en un render to texture.

Un saludo.                                
#90
                                Bueno, ahora direis... ¿que coño hace este anunciando su corto en una web de juegos? ¿No es offtopic? Pos toma offtopic, jeje.

Podeis bajaros mi corto aquí:
http://www.plus.es/codigo/notodo/es/fichap...i.asp?id=247441

Espero que os guste! Ya me contareis

A partir del 1 de junio (creo) se podrán votar.

Ale, un saludo!                                
#91
General Audio / Pensando en comprarme un teclado master
04 de Marzo de 2003, 04:29:05 PM
                                Pues eso, que no sé por cuál decidirme. ¿Qué os parece este?

http://www.rockcenter.com.ar/productos/tec...olandRD-150.htm


No quiero un teclado profesional, pero tampoco una caca de la vaca. Quiero algo de calidad media, para aporrearlo y hacer cancioncillas como hobby.                                
#92
General Audio / Duda FruityLoops
28 de Febrero de 2003, 01:16:18 PM
                                No sé si se puede hacer.
Pero cuando estoy sobre un canal y pulso el teclado del ordenador este funciona como si el de un piano se tratara. Lo que no sé hacer es que las notas que toco se "graben" o "pasen" al piano roll. Es decir, poder grabar lo que toco directamente con el teclado.

:I

Y ya de paso... el mda piano que me recomendasteis me gusta mucho. ¿Conoceis algún violin decente también gratuito o barato que funcione para fruityloops?

Un saludo                                
#93
                                Desde msdos, si utilizo copy, copia la carpeta y los ficheros que haya en ella... pero no las subcarpetas y sus ficheros.
¿Cómo puedo hacer para que las copie tb?                                
#94
                                Supongamos un puntero a una estructura:

estructura *ptrEstructura;

Reservamos espacio:
ptrEstructura = new estructura;


Ahora podré hacer cosas cómo:
ptrEstructura->x = 0; (perteneciendo x a la estructura)

Sin embargo, si no hubiera reservado espacio, el programa habría petado lógicamente.
Ahora bien, que pasa cuándo no sé si el puntero que me llega tiene reservado espacio... es decir, me llega ptrEstructura, pero no sé si se ha hecho un new o un malloc o lo que sea asignándoselo a dicho puntero.
¿Hay alguna función parecida a esta?

bool IfValidPtr (ptrEstructura)

Es decir, que me diga si el puntero apunta a una zona de memoria q ya tenga reservada memoria de su tipo y que en caso contrario devuelva 0.                                
#95
Programación gráfica / 3 extensiones que hacen lo mismo?
03 de Diciembre de 2002, 12:21:51 PM
                                Quiero saber si el usuario puede usar "texture_edge_clamp"; creía que bastaba con mirar si tenía la extensión:

GL_EXT_texture_edge_clamp

pero me he dado cuenta que mi tarjeta soporta aún otra más muy parecida en nombre (radeon 7200):

GL_SGI_texture_edge_clamp

y que la voodoo banshee de un amigo tiene:

GL_SGIS_texture_edge_clamp (fijaros en la "s")

¿Cualquiera de estas 3 hacen lo mismo? ¿Porqué tienen nombres diferentes? ¿Diferentes desarrolladores?

Nota: El texture_edge_clamp le va a mi amigo de la banshee bien (partiendo una imagen en bloques (texturas) de 256x256 no se notan los bordes)

¿Bastas con chequear si tiene UNA DE LAS 3 extensiones?                                
#96
General Programadores / Ultimos drivers de OpenGL para la banshee
02 de Diciembre de 2002, 09:45:16 PM
                                ¿Dónde están? No encuentro por encima de la versión 1.1.0 de OpenGl :(
Los necesito para un colega.

Los oficiales llevan la versión 1.1.0  :enfadado:                                
#97
Programación gráfica / RGB to RGBA en texturas en OGL
30 de Noviembre de 2002, 05:15:37 PM
                                ¿Hay alguna forma de transformar una textura de formato RGB a RGBA? Digo la textura, no la imagen en memoria (supongamos que una vez creada la textura hemos liberado de memoria la imagen original)

Lo pregunto para OpenGL

Y lo necesito para hacer un glTexSubImage2D entre dos texturas cualesquiera, puesto que no funciona entre dos con distinto tipo... tendre que pasar la RGB a RGBA (o viceversa).                                
#98
Programación gráfica / Rotaciones en OpenGL
20 de Noviembre de 2002, 05:05:08 PM
                                Bueno uso este código para trasladar y rotar un objeto:



// Dibujamos

glPushMatrix();

 // Traslación

 glTranslatef (x, y, z);  

   

 // Rotación

 

 glRotatef (surfaces [id].spin.angle,

      surfaces [id].spin.axisX,

      surfaces [id].spin.axisY,

      surfaces [id].spin.axisZ);

 

 // Dibujamos

 glCallList (displayList);

 glFlush ();

glPopMatrix();



Funciona correctamente, el objeto (en este caso una imagen) rota los grados que indico en surfaces [id].spin.angle.
Ahora bien, siempre rota con respecto al mismo origen, la esquina superior izquierda de la imagen.
¿Cómo hago para cambiar ese origen para que por ejemplo rote con el origen en el centro de la imagen?

Un saludo.                                
#99
Programación gráfica / Cambio de modo de video en OpenGl
19 de Noviembre de 2002, 05:15:57 PM
                                A ver si esta bien pongo bien el post que me va lentisimo internet...

Tengo el siguiente problema: cuando cambio de modo de video a medio de ejecución del programa (destruyo ventana y render y vuelvo a crearlos) pasando por ejemplo de 640x480 a 800x600 me encuentro que las texturas que habia creado antes de cambiar de modo de video ya no puedo utilizarlas... ¿es decir, cada vez que cambiemos de modo de video hay que volver a cargarlo todo ? Puf :S ¿Hay otra forma de hacerlo?                                
#100
General Programadores / Cuiado los usuarios de XP con LmTools
08 de Noviembre de 2002, 11:59:19 AM
                                El programa me ha petado al intentar renderizar en el modo WireFrame con la típica ventaninta azul (no tan típica en el xp). Hasta ahi todo normal. Lo malo ha sido que al reiniciar... pues que no podía ejecutar nada, se veia el escritorio y no podía pinchar en nada. Después de reiniciar 3 o 4 veces he podido hacer una recuperación del sistema y de momento se ha arreglado.
Una lastima, porque el programa parecia merecer la pena, pero ya no me atrevo :(                                





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.