[U3D] - cambiare tonalità (hue) ad una texture

Argomenti riguardanti il D3D di GameMaker e librerie esterne.
Rispondi
Avatar utente
fra3point
Membro attivo
Messaggi: 388
Iscritto il: 24/08/2010, 15:16
Specialità: Prog. e 3D Modelling
Località: L'Aquila
Contatta:

[U3D] - cambiare tonalità (hue) ad una texture

Messaggio da fra3point »

Salve gente! Sono stato abbastanza assente dal forum ultimamente e sono stato molto preso da un mio progetto.. Sto ricreando da capo un sistema di Color-Picking in U3D. Ho utilizzato gli script di homu (getpixel più veloce). In pratica ho un'immagine .bmp da "get_pixelare" e una .png che viene effettivamente mostrata al giocatore. Poi, con una barra laterale lascio scegliere al giocatore la tonalità (hue).

Ecco le immagini che ho utilizzato:

Questa è la .bmp dalla quale il get_pixel preleva solamente saturazione e luminosità (saturation e value).
Che sia verde in questo caso non è importante, tanto poi va cambiata la tonalità!

Immagine

Questa è invece la barra laterale dalla quale prendo la tonalità.

Immagine

La .png che viene mostrata è uguale alla .bmp solo che vorrei che cambiasse di tonalità quando scorro la barra laterale.. Ho provato con la funzione DrawTexEx che permette di inserire come parametri i valori RGB da sovrapporre alla texture originale.. Ma io vorrei che cambiasse solo la tonalità!

IL SISTEMA DI COLOR-PICKING FUNZIONA PERFETTAMENTE SOLTANTO CHE NON RIESCO A MODIFICARE LA TONALITA' DELLA TEXTURE.. Qualcuno saprebbe aiutarmi? Grazie!
draw_text(100,100,"fra3point");

Progetti in corso:
Spoiler
Tuning Paradise --> 10%

Saw: The Game --> 60%

Tropic Races --> 40%

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: [U3D] - cambiare tonalità (hue) ad una texture

Messaggio da Jak »

Uhm, avrei due metodi in testa ma non sono sicuro che il risultato sia perfetto.
Dici che così va bene?(usi 3 texture ed una la colori appositamente)
http://www.megaupload.com/?d=BBN0UISF
Chiaro che poi porti tutto questo esempio su U3D ma la logica è quella.
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
fra3point
Membro attivo
Messaggi: 388
Iscritto il: 24/08/2010, 15:16
Specialità: Prog. e 3D Modelling
Località: L'Aquila
Contatta:

Re: [U3D] - cambiare tonalità (hue) ad una texture

Messaggio da fra3point »

HO CAPITO IL TUO RAGIONAMENTO.. LA COMBINAZIONE DI QUELLE 3 IMMAGINI DA COME RISULTATO QUELLA CHE ATTUALMENTE USO.. BENE! PROVO SUBITO! :) Grazie!!!
draw_text(100,100,"fra3point");

Progetti in corso:
Spoiler
Tuning Paradise --> 10%

Saw: The Game --> 60%

Tropic Races --> 40%

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: [U3D] - cambiare tonalità (hue) ad una texture

Messaggio da Jak »

Non cè di che :cappa:
L'altra soluzione purtroppo non è possibile con U3D. Praticamente avevo intenzione di usare due triangoli con i vertici appositamente colorati usando la matrice della telecamera ma dimenticavo che U3D non permette di usare colori per i vertici ma solo materiali per i triangoli. :(
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
fra3point
Membro attivo
Messaggi: 388
Iscritto il: 24/08/2010, 15:16
Specialità: Prog. e 3D Modelling
Località: L'Aquila
Contatta:

Re: [U3D] - cambiare tonalità (hue) ad una texture

Messaggio da fra3point »

Ok tranquillo va benissimo così! ora devo solo adattare il tutto in U3D.. mi manca pochissimo! :)
draw_text(100,100,"fra3point");

Progetti in corso:
Spoiler
Tuning Paradise --> 10%

Saw: The Game --> 60%

Tropic Races --> 40%

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: [U3D] - cambiare tonalità (hue) ad una texture

Messaggio da Jak »

fra3point ha scritto:mi manca pochissimo! :)
A cosa? Ricordati che sono appassionato dei giochi di corse quindi se uscirà a breve... :metalgo:
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
fra3point
Membro attivo
Messaggi: 388
Iscritto il: 24/08/2010, 15:16
Specialità: Prog. e 3D Modelling
Località: L'Aquila
Contatta:

Re: [U3D] - cambiare tonalità (hue) ad una texture

Messaggio da fra3point »

mi dispiace di dover annullare il tuo entusiasmo.. mi manca poco (ora è finito, pur se con qualche imperfezione) era riferito al sistema del colore.. Ora mi sto concentrando sui modelli dei pezzi che sono tantissimi da fare..

EDIT: No, nessuna imperfezione ora! ;)
draw_text(100,100,"fra3point");

Progetti in corso:
Spoiler
Tuning Paradise --> 10%

Saw: The Game --> 60%

Tropic Races --> 40%

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: [U3D] - cambiare tonalità (hue) ad una texture

Messaggio da Jak »

Cosa a cui non avevo pensato. Fondere direttamente le due immagini:
Spoiler
Immagine
Così disegni una sola texture anzichè due 8)
(anzi, 2 al posto di 3)
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
fra3point
Membro attivo
Messaggi: 388
Iscritto il: 24/08/2010, 15:16
Specialità: Prog. e 3D Modelling
Località: L'Aquila
Contatta:

Re: [U3D] - cambiare tonalità (hue) ad una texture

Messaggio da fra3point »

Beh sì!! in effetti risparmio una texture! Fondo la texture della saturazione con quella della luminosità.. E poi ci aggiungo ingame quella della tonalità! Ho quasi finito, mi manca solo da aggiustare l'immagine per lo scorrimento della barra della tonalità..
draw_text(100,100,"fra3point");

Progetti in corso:
Spoiler
Tuning Paradise --> 10%

Saw: The Game --> 60%

Tropic Races --> 40%

Avatar utente
fra3point
Membro attivo
Messaggi: 388
Iscritto il: 24/08/2010, 15:16
Specialità: Prog. e 3D Modelling
Località: L'Aquila
Contatta:

Re: [U3D] - cambiare tonalità (hue) ad una texture

Messaggio da fra3point »

AHAH!! lo sapevo che sarebbe stato troppo semplice! Era tutto troppo perfetto.. in effetti il problema c'è.. Io sto gestendo 3 risoluzioni diverse ( :work: ) e ho la seguente variabile:

Codice: Seleziona tutto

global.rapporto=<larghezza_attuale>/<larghezza_max>
La uso per scalare le varie texture e per le posizioni. Ma l'immagine di appoggio .bmp che carico nel gioco non può essere scalata perché non è una texture di U3D.. Allora ho pensato di crearne 3: una che è di dimensioni 256x256, una di 205x205 e una di 160x160.

Per caricare poi l'immagine corretta in base alla risoluzione scelta dal giocatore ho usato questo codice:

Codice: Seleziona tutto

if (global.risoluzione_larghezza=800) gp_open_scr(working_directory+"\gfx\colors_1280.bmp",160,160);
else if (global.risoluzione_larghezza=1024) gp_open_scr(working_directory+"\gfx\colors_1024.bmp",205,205);
else if (global.risoluzione_larghezza=1280) gp_open_scr(working_directory+"\gfx\colors_1280.bmp",256,256);

//gp_open_scr è lo script per l'apertura dell'immagine del get-pixel
Però pare che a qualsiasi risoluzione riesca a prelevare colore solo da quella da 160x160!

Immagino che non ci avete capito niente vero?? Ditemelo in caso mi spiego meglio!
draw_text(100,100,"fra3point");

Progetti in corso:
Spoiler
Tuning Paradise --> 10%

Saw: The Game --> 60%

Tropic Races --> 40%

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: [U3D] - cambiare tonalità (hue) ad una texture

Messaggio da Jak »

Ho capito cosa vuoi dire ma come fai ad essere sicuro prelevi il colore solo da quella 160x160? Dopotutto è sempre la stessa immagine ma scalata manualmente no? :hum:
Penso che il problema stia nel codice del picking e non qui.

PS: quasi quasi faccio pure io il get pixel da file che però supporterà molto più formati :mrgreen:
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
fra3point
Membro attivo
Messaggi: 388
Iscritto il: 24/08/2010, 15:16
Specialità: Prog. e 3D Modelling
Località: L'Aquila
Contatta:

Re: [U3D] - cambiare tonalità (hue) ad una texture

Messaggio da fra3point »

magari! così evito di sprecare 500 kb per una sola immagine! Comunque pare che ho sbagliato qualcosa quando faccio quegli if per vedere quale risoluzione è attualmente attiva.. entra sempre nel primo (ovvero quello dell'immagine 160x160)..

EDIT: Infatti la variabile global.risoluzione_lunghezza che dovrebbe avere la lunghezza effettiva della risoluzione ha sempre valore 800.. il minimo.. che corrisponde all'immagine 160x160.. mmm.. strano..
Ultima modifica di fra3point il 01/11/2011, 16:35, modificato 1 volta in totale.
draw_text(100,100,"fra3point");

Progetti in corso:
Spoiler
Tuning Paradise --> 10%

Saw: The Game --> 60%

Tropic Races --> 40%

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: [U3D] - cambiare tonalità (hue) ad una texture

Messaggio da Jak »

Trovato un'errore(ma non credo risolva il tuo problema)
[quote="fra3point"]AHAH!! lo sapevo che sarebbe stato troppo semplice! Era tutto troppo perfetto.. in effetti il problema c'è.. Io sto gestendo 3 risoluzioni diverse ( :work: ) e ho la seguente variabile:

Codice: Seleziona tutto

[code]if (global.risoluzione_larghezza=800) gp_open_scr(working_directory+"\gfx\[b]colors_1280.bmp[/b]",160,160);
else if (global.risoluzione_larghezza=1024) gp_open_scr(working_directory+"\gfx\colors_1024.bmp",205,205);
else if (global.risoluzione_larghezza=1280) gp_open_scr(working_directory+"\gfx\colors_1280.bmp",256,256);

//gp_open_scr è lo script per l'apertura dell'immagine del get-pixel
Usi la immagine da 1280 con risoluzione 800 :mrgreen:
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
fra3point
Membro attivo
Messaggi: 388
Iscritto il: 24/08/2010, 15:16
Specialità: Prog. e 3D Modelling
Località: L'Aquila
Contatta:

Re: [U3D] - cambiare tonalità (hue) ad una texture

Messaggio da fra3point »

sì questo è un errore di battitura non ho fatto il copia incolla.. non è questo l'errore.. è una variabile che non ha il valore corretto..

EDIT: Vabbè userò display_get_width() così sto sicuro!

EDIT2: Ok ora per le risoluzioni 1280x960 e 1024x768 va tutto bene! Invece per quella bassa (800x600) ho ancora dei problemini..
draw_text(100,100,"fra3point");

Progetti in corso:
Spoiler
Tuning Paradise --> 10%

Saw: The Game --> 60%

Tropic Races --> 40%

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 25 ospiti