Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





imágenes borrosas

Iniciado por geokym, 29 de Mayo de 2007, 03:55:41 PM

« anterior - próximo »

geokym

Hola la verdad, hace mucho tiempo e querido hacer
un juego, pero hasta el momento no e podido hacerlo
la razón trabajo y estudio... hace tiempo ya que
programo en VB6.0 y la verdad me habia reventado la
cabeza utilizando algunas librerias gráficas que en
el pongo tiempo q tengo encontre por hay... "la bitblt"
aunque no me gusto mucho... quizas tú la utilices en
tu libreria no lo sé... pero bueno... no e indagado
mucho en eso...

hace algunos días encontre por casualidad el sitio de
la dxlib32 y me parecio genial el proyecto y espero
que siga creciendo...

al grano mi problema... estube revisando los tutoriales
y la verdad me pareció que la gráfica era estupenda...
(al margén de esto solo he practicado con la libreria
gráfica de momento) pero no puedo agregar mis diseños
al modo video... (lás imágenes si aparecen por si piensas,
que no puede agregarlas al form, pero las imágenes no
aparecen con la calidad que esperaba) revisando los tutoriales
me detube a ver las propiedades de la imágen textura que utilizas
en ellas y me di cuenta que tenia las siguientes propiedades

Ancho: 256
Largo: 256
Resolución horizontal: 76ppp
Resolución vertical: 76ppp
Profundidad en Bits: 24
Número de cuadros:1

el mío tenia las siguientes propiedades...

Ancho: 640
Largo: 480
Resolución horizontal: 76ppp
Resolución vertical: 76ppp
Profundidad en Bits: 8
Número de cuadros:1

La única diferencia que se dá a notar es la profundidad en bits
la tuya de 24 y la mía de 8, entonces me digne a exportar otra vez
la imágen con las mismas propiedades pero después de todo dio el mismo
resultado una imágen borrosa!!!

Luego de algunos intentos... y de exportar la misma imágen en diferentes
extenciones (jpg, bmp, etc) con distintas propiedades dio la misma imagen
borrosa... (ahhh la extención *.tif no me la acepta...)

Entonces fui a la ayuda de la libreria y me encontre con algo nuevo
la verdad devería haberlo notado pero no lo hice...

el "Smooth" del "MAP_LOAD", que carga el suavisado de los pixeles
del gráfico lo cambie a falso que por defecto aparece como Verdadero
y dío la misma imágen borrosa...

bueno algo largo salio el texto...
si pudieras encontrar alguna solucion a mi problema
o si dispones de ella porfa!! ayudame... oka..!!!

--------------------------------------------------------------------------

Un concejo de utilidad si no te molesta resivirlo...
====================================================

Cuando compruebas si la tarjeta gráfica soporta cierta resolucion en el
"DEVICE_ExistsDisplayMode" los parámetros a incluir son: El largo, El
Ancho y el Bpp y cuando se inicia el modo de video con él
"Init" los parametros son el Hwnd, El Ancho, El largo y otras...

al grano no sería mejor tomar en orden ambas funciones...

por lo menos yo pense que estaban asi y me daba el error de que la tarjeta
grafica no soportaba la resolucion por que en ambas puse como orden el largo
y ancho... que despues de invierten en el "Init".

--------------------------------------------------------------------------

OK... me despido muy agradecido de tu libreria que se mucho tiempo
me va a ahorrar para mi proyecto... adios... te cuidas...
---------
GEOKYM

RobiHm

yo tuve el mismo problema xD

es por el tema de las imágenes que utilizas xD

debes utilizar potencias de dos en su tamaño, ya que la gráfica las redimensiona a potencias de dos xD

16x16
32x32
64x64
128x128
256x256
512x512...

si no lo haces pierde algo de calidad

el post donde me respondió y explicó todo el creador de la lib xD
http://www.stratos-ad.com/forums3/viewtopic.php?t=8572
Web : Indómita
Blog : MiBlog
Evobas : Evobas
Kobox : Kobox

[EX3]

Editado: veo que se me adelanto con diferencia RobiHm :lol:

Buenas y bienvenido :)

Lo primero recomendar a quienes empezais con la libreria leeros la entradas del Apendice en la documentacion ya a parte de explicar el significado de algunos terminos explican temas relacionados con estos.

Esta libreria trabaja contra la memoria grafica de la tarjeta y trata las imagenes como texturas. Una textura solo puede ser de tamaño potencia de dos, esto es tamaños similares a 32x32, 256x128, 512x1024, etc... por lo que si tu cargas en memoria una imagen de 131x185 esta se transforma en memoria a 256x256 escalando su pixeles, razon de por que ciertas imagenes generan unos suavizados forzados. Tu dices que estas trabajando con una imagen de 640x480, por lo que en memoria se escala a 1024x1024. Por esta razon al dibujarla a 640x480 se ve tan suavizada, debido a ese escalado que genera la tarjeta grafica.

Cita de: "geokym"(ahhh la extención *.tif no me la acepta...)
Cuando implemente en su dia las funciones de la clase grafica no probe todas las extensiones soportadas, me baso en la documentacion de DirectX que indicaba dichos formatos y entre ellos que recuerde se encontraba el *.tif, aun asi te recomiendo trabajar con el formato PNG, igual calidad que un BMP, ocupa menos que un BMP e incluso que un JPG a veces, y soporta canal Alpha como el TGA.

Cita de: "geokym"Entonces fui a la ayuda de la libreria y me encontre con algo nuevo
la verdad devería haberlo notado pero no lo hice...

el "Smooth" del "MAP_LOAD", que carga el suavisado de los pixeles
del gráfico lo cambie a falso que por defecto aparece como Verdadero
y dío la misma imágen borrosa...
Sea del tamaño que sea la imagen a cargar, esta por defecto se carga con un ligero suavizado de pixeles. Esto es notable en imagenes que sean potencia de dos que son las que conservan el aspecto original de los pixeles y es donde el parametro Smooth surte efecto.

Cita de: "geokym"Cuando compruebas si la tarjeta gráfica soporta cierta resolucion en el
"DEVICE_ExistsDisplayMode" los parámetros a incluir son: El largo, El
Ancho y el Bpp y cuando se inicia el modo de video con él
"Init" los parametros son el Hwnd, El Ancho, El largo y otras...

al grano no sería mejor tomar en orden ambas funciones...
Segun la documentacion, que la he revisado por si fuera una errata, y la definicion de parametros de la libreria, el primer parametro es el ancho (Width) y no el alto (Height) en ambas funciones:
Public Function Init(hwnd As Long, Width As Long, Height As Long, Optional Bpp As Long = 16, Optional Windowed As Boolean, Optional TripleBuffer As Boolean, Optional VSync As Boolean, Optional RefreshRate As Long = 60) As Boolean

Public Function DEVICE_ExistsDisplayMode(Width As Long, Height As Long, Optional Bpp As Long = 16, Optional RefreshRate As Long = 60) As Boolean

La unica diferencia entre ambas es que DEVICE_ExistsDisplayMode() no se le pasa el controlador de la ventana (hWnd) como ocurre con Init() por que no lo precisa para dicha tarea.

Todo esto de los suavizados inesperados reconozco que si se trabaja con imagenes grandes puede resultar un autentico coñazo. Como a la hora de diseñar la libreria tenia planteado trabajar con texturas pequeñas y generalmente de potencia de dos no me plantee diseñar un sistema como el que usa la libreriap para C++ de Loover, un compañero de este foro, que implemento un sistema que troceaba las imagenes en memoria y las agrupaba para formar la imagen original sin que esta sufriera perdida de calidad. A estas alturas y en el punto que se encuentra el proyecto no estoy con idea de realizar modificaciones severas a la libreria por lo que no me planteo hacer un sistema de carga similar.

Cita de: "geokym""la bitblt" aunque no me gusto mucho... quizas tú la utilices en
tu libreria no lo sé... pero bueno... no e indagado
mucho en eso...
dx_lib32 esta programada integramente en Visual Basic 6.0 y unicamente contra las librerias de DirectX y algunas API's de Windows. No se apoya en librerias similares.

Salu2...

P.D.: A todo esto, que tarjeta grafica usas? (puedes mirar la informacion con el tutorial 7, sobre todo me interesa la informacion referente al tamaño de textura maximo)
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

geokym

Okales compañero muchas gracias aunq no me qedo del too claro de las potencias de dos... tengo como dolor de cabeza ahora jaj..!!!
en todo kaso no os preocupeis q lo resulvo io...

te cuidas... adios...!!!
---------
GEOKYM

[EX3]

Cita de: "geokym"no me qedo del too claro de las potencias de dos... tengo como dolor de cabeza ahora jaj..!!!
No tiene mucho misterio con una calculadora en mano:
2 x 2 = 4 x 2 = 8 x 2 = 16 x 2 = 32 x 2 = 64 x 2 = 128 x 2 = 256 x 2 = 512 x 2 = 1024 x 2 = <hasta el infinito y mas alla>
Se trata de valores regulares y la forma en que se trabaja con la memoria (fijate si no la RAM o las unidades de memoria ;))

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

geokym

Okales jaj no si = entendi lo que pasaba es que era muxo el texto y taba con mucho trabajo y no tube tiempo de leer bien... en todo caso muchas gracias la verdad...

ehh ai te mantendre al tanto del proyecto y mis dudas si no es molestia...

bueno eso... te cuidas otra vez...

adios...
---------
GEOKYM

[EX3]

Cita de: "geokym"ehh ai te mantendre al tanto del proyecto y mis dudas si no es molestia...
Ahi estaremos pues ;)

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

geokym

Okales okales buenos dias!!!
grax por tu apoyo... me sirvio mucho tu ayuda ayer...
entendi lo de las potencias de dos y como trabaja el modo de video
grçafico... mi tarjeta grçafica es integrada...
la verdad no me acuerdo el modelo pero uno de estos dias te digo...
y quiero comprar una podrias decirme tu que tarjeta grçafica es buenisima y que tenga un costo bajo  :D

..........................................................................................

Otra pregunta...

tengo una imagen que es la barra del menu...
esta barra es como entre azul y celeste... con un fondo
blanco, cuando cargo la imçagen con el MAP LOAD doi como
transparencia el color blanco de fondo... pero como la barra
tiene las puntas redondeadas el efecto no es muy bueno
= se ven cuadros blancos...

QUE PUEDO HACER...
---------
GEOKYM

[EX3]

Cita de: "geokym"mi tarjeta grçafica es integrada...
la verdad no me acuerdo el modelo pero uno de estos dias te digo...
Te vuelvo a decir, el tutorial 7 de graficos te muestra esa informacion :P Sobre aconsejar una buena grafica, llevo tiempo fuera del tema asi ni yo mismo sabria cual comprarme.

Cita de: "geokym"tengo una imagen que es la barra del menu...
esta barra es como entre azul y celeste... con un fondo
blanco, cuando cargo la imçagen con el MAP LOAD doi como
transparencia el color blanco de fondo... pero como la barra
tiene las puntas redondeadas el efecto no es muy bueno
= se ven cuadros blancos...

QUE PUEDO HACER...
Hazle transparencias mediante photoshop por ejemplo. Despues guardalo como TGA o PNG par aconservar esa transparencia.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

geokym

Oie teni razón... jaj... ia bkm!!!
grax por la solu...

t cuidas...  adios...!!!
---------
GEOKYM

geokym

Ahhh otra pregunta... existe la posibilidadde encriptar los archivos con los que trabaja el juego y despues descriptarlos y guardarlos en la memoria... como las imágenes por ejemplo...

¿?¿?¿?¿?¿?¿?¿?¿?  :shock:


ahhh y tb queria preguntar si la libreria trae con sigo alguna
funcioncilla q cambie la resolución de la pantalla...
o tengo q escrbirla dentro de mi código

ehh leido algo de la documentacion pero no mucho por tiempo...
si deveras hago alguna preguntilla media tonta por fa sorry!!!
jaj...
---------
GEOKYM

geokym

Se me olvidaba agradecer a RobiHm por su colaboración
= lei el link que me sugeriste... y me di cuenta de tu proyecto
ojala este a buen ritmo...

te cuidas...
---------
GEOKYM

[EX3]

Cita de: "geokym"Ahhh otra pregunta... existe la posibilidadde encriptar los archivos con los que trabaja el juego y despues descriptarlos y guardarlos en la memoria... como las imágenes por ejemplo...
Archivos no, pero tienes funciones para encriptacion de textos.

Cita de: "geokym"ahhh y tb queria preguntar si la libreria trae con sigo alguna
funcioncilla q cambie la resolución de la pantalla...
o tengo q escrbirla dentro de mi código
Hay que patearse un poco mas la doc :P
dx_GFX.DEVICE_SetDisplayMode()
Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

geokym

OK!!! Muchas gracias por todo ya he terminado las pruebas y comence a programar el juego... aún no tengo muy claras la definicion del juego ni su nombre jaj... pero si los graficos y el tipo de juego... un mata globos jaj..!!! después explicare eso...

las imágenes están exelentes gracias a su ayuda...
y obvio me di la lata de leer toda la doc...

ahh y encontre la forma de encriptar las imagenes

lo explico...

la imagen cuando ya está lista, se encripta el archivo...
y antes de la carga de imágenes se descripta obvio...
la encripción del archivo... hay queda a su imaginacion
probe tambien encriptando con la funcion de la dxlib32
y funka re bien... lo que si hay que kmbiar es la encripción
por filas de texto para generarlo más rápido....

adios...!!!
---------
GEOKYM






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.