Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





coloreado de píxeles

Iniciado por RobiHm, 17 de Septiembre de 2008, 09:20:27 PM

« anterior - próximo »

RobiHm

al final agregaste alguna función/método/procedimiento para convertir un determinado color de pixel a otro color? xD

no se si te acordarás ha pasado mucho tiempo  0:-)
Web : Indómita
Blog : MiBlog
Evobas : Evobas
Kobox : Kobox

[EX3]

#1
Si es a nivel de pixel via superficie si. (http://forums.stratos-ad.com/index.php?topic=9933.msg110326#msg110326) Si es en tiempo real via Mapa/Textura no me es posible sin shaders (que oviamente no lo soporta dx_lib32).

Lo que se me ocurriria que podrias hacer, aplicandolo al problema del post que referencio antes, seria tener los sprites "plantilla" en BMP/PNG, cargarlo tranquilamente como Mapa/Textura (esto siempre que sean de tamaño potencia 2), programarte una funcion que genere una superficie temporal (SURF_Create), transfiera el mapa a la superficie (MAP_CopyRectsToSurf o MAP_AdvCopyRectsToSurf) que obtenga una copia de los valores de los pixeles de la superficie (SURF_GetPixelData + la nueva SURF_ReadPixelArray) que recorra el array cambiando los pixeles del A por B y aplique los cambios a la superficie (la nueva SURF_WritePixelArray + SURF_SetPixelData + SURF_DeletePixelData) y una vez llegado a este punto crear un nuevo Mapa/Textura (MAP_Create) y transfieras la superficie modificada al nuevo mapa (SURF_CopyRectsToMap o SURF_AdvCopyRectsToMap). No deberia ser un proceso demasiado lento, me atreveria a decir que aplicar esto a un mapa de 64x64 ni se inmutaria apenas (a la hora de aplicarlo a varios mapas en secuencia), ni con uno de 128x128 me arriesgo a decir 8) Echa un vistazo en la doc actualizada a las funciones SURF_ReadPixelArray y SURF_WritePixelArray :)

Con esto tendrias solo un grafico para todas las variantes aunque ese ahorro lo pierdes en tiempo de ejecucion ya que generas duplicados en memoria con las variantes de color.

Aun asi si me acuerdo, una de dos, o hago un ejemplo de esto que suba independientemente a la web una vez publicado la version oficial, o si me pica lo suficiente, intente programarla en la libreria, aunque no creo que haga lo segundo por evitar generar posible conflicto con la version CTP.

Salu2... :D

P.D.: La verdad es que como estas tecnicas ancestrales de manipular los pixeles en sprites no la tenia en cuenta en mis ideas y desvarios ni se me paso por la cabeza aplicar algo semejante en la propia libreria (salvo dejar la puerta abierta con el soporte de superficies, claro).
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

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

RobiHm

me tienes abandonado   :-\

por lo de la funcioncita "creo" que la tengo rondando por ahí, solamente era por saber si lo habías añadido
Web : Indómita
Blog : MiBlog
Evobas : Evobas
Kobox : Kobox

[EX3]

#3
Es lo que tiene estar a mil cosas y querer quitarse de encima este proyecto de una vez por todas xDDDDD (y mas cuando finalmente ni lo usare para el juego :'()

Cita de: RobiHm en 17 de Septiembre de 2008, 10:43:50 PM
me tienes abandonado   :-\
Las dos funciones que te mencione las implemente por ti, que lo sepas 8) (para un par de usuarios activos que tengo, que menos que cuidaros bien) que yo apenas (mas bien nada) preciso trabajar a nivel de pixel en sprites y conozco poca gente que lo haga :P

Cita de: RobiHm en 17 de Septiembre de 2008, 10:43:50 PM
por lo de la funcioncita "creo" que la tengo rondando por ahí, solamente era por saber si lo habías añadido
Ya me sonaba a mi que probe algo contigo de estas nuevas funciones, memoria pez tengo, joder ^_^'

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

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






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.