Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Enorme disminucion de FPS

Iniciado por bnl, 20 de Octubre de 2002, 06:32:32 PM

« anterior - próximo »

bnl

                                Ya esta solucionado!!! Muchisimas gracias a todos  :D

Ambos teniais razon. Por un lado estaba el hecho de q se dublicaba el tamaño a dibujar por lo q se bajaban los fps.

Y si actibaba y desactivaba el alpha-blending tambien he conseguido q aumenten los fps

Y si en vez de al cargar las texturas indicando formato desconocido le pongo formato de 16 bits como me indicastes aumenta tambien los fps.


Lo unico es q ahora el personaje no se me dibuja con zonas transparentes. Al cambiar el formato con el que cargo la textura las zonas transparentes del prota dejan de serlo.

La imagen la tengo en un bmp de 24 bits (el paint solo me deja guardar como 8bits o 24) y supongo q al cargarlo como si fuera de 16 bits perdera informacion.

¿como puedo saber cual es el valor del nuevo magenta en 16 bits? En 24 bits era 255 0 y 250 (FF00FA en hexadecimal)

¿Hay alguna forma de capturar el color de un pixel determinado de una textura? Si fuera asi podria capturar el color del primer pixel de la textura q es magenta y ver su valor.                                
Mi web: http://www.brausoft.com/
No sabían que era imposible, así que lo hicieron.

ethernet

Felicidades, unos detalles:

No se como cargaras con vb el bmp pero supong q tendra ya una funcion para ello. Precisamente esto es lo malo q tiene vb q si q te quieres salir un poco de lo q te dan la tienes clara.

El blending por lo general es caro, hazlo como te ha dicho lord trancos antes, solo poniendo blend cuando dibujes el monigote ;)

saludos

bnl

                                Si, en VB hay una funcion para cargar el bmp en la textura (CreateTextureFromFileEx) y hay otra un poco mas sencilla menos configurable (tiene menos parametros)

Me gustaria aprender C (algo se) en profundidad ya que sin duda alguna es mucho mas potente que el VB. Lo malo es la falta de tiempo. Son tantas las cosas que quiero hacer y aprender y tan poco el tiempo del q dispongo  :(  

   Estoy haciendo lo del blending como dice Lord Trancos, pero no consigo q el personaje me salga transparente.  :(                                
Mi web: http://www.brausoft.com/
No sabían que era imposible, así que lo hicieron.

ethernet

No se como ira el blending en D3d pero deberia poner un modo de tal manera q el alfa origen se multiplicara por el color origen para eliminar las partes q no quieres del muñeco. en opengl seria glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); eso si, siempre q el jugador tenga el alfa a 0 en las zonas no visibles.

Por cierto, bmp creo q no soporta canal alfa, png y tga si, por si te sirve de algo ;)
saludos

Lord Trancos

                                Para cargar graficos sin transparencias:

D3DX.CreateTextureFromFileEx(D3DDevice, App.Path & "" & fichero, D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_R5G6B5, D3DPOOL_MANAGED, D3DX_FILTER_POINT, D3DX_FILTER_POINT, ByVal 0, ByVal 0, ByVal 0)

Para graficos con transparencias:

D3DX.CreateTextureFromFileEx(D3DDevice, App.Path & "" & fichero, D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_A1R5G5B5, D3DPOOL_MANAGED, D3DX_FILTER_POINT, D3DX_FILTER_POINT, ColorKeyVal, ByVal 0, ByVal 0)

Siendo ColorKeyVal = &HFC1F '// Magenta para el formato D3DFMT_A1R5G5B5

Si no te va, para los graficos con transparencias prueba esto:

D3DX.CreateTextureFromFileEx(D3DDevice, App.Path & "" & fichero, D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, D3DX_FILTER_POINT, D3DX_FILTER_POINT, ColorKeyVal, ByVal 0, ByVal 0)

Siendo ColorKeyVal = &HFF0F '// Magenta para el formato D3DFMT_A4R4G4B4                                
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

bnl

                                Conseguido!!!!  :D

Muchas gracias a todos. Sois unas maquinas!!!

Efectivamente habia que poner D3DFMT_A1R5G5B5 al cargar la textura.

Luego en el colorkey no habia q poner el color en formato de 16bits sino siempre en formato 32 bits (lo dice la ayuda del SDK de DirectX) asi q el color key es FFFF00FF

Gracias de nuevo!                                
Mi web: http://www.brausoft.com/
No sabían que era imposible, así que lo hicieron.

Lord Trancos

                               
Citar
Luego en el colorkey no habia q poner el color en formato de 16bits sino siempre en formato 32 bits (lo dice la ayuda del SDK de DirectX) asi q el color key es FFFF00FF

Bueno es saberlo ;)                                
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.






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.