Cum se obține tga cu canalul alfa din două imagini

Cum obțin un TGA cu un canal alfa din două imagini?

Spuneți-mi cum puteți obține un TGA cu un canal alfa din două considerente? Aș dori să optimizez distribuția jocului prin comprimarea tuturor resurselor grafice în jpeg (tga necesită mult mai mult spațiu) și apoi în stadiul încărcării jocului # xA0 (sau chiar în timpul instalării jocului) generează texturi din ele cu un canal alfa. În plus, există multe imagini care au același contur și pentru ele ar fi posibil să se utilizeze o imagine cu alfa în general.







Căutam soluții similare pe Internet, dar nu sa găsit nimic. Exemple de bază sunt modul de citire și afișare a TGA. Și aș vrea să lucrez cu TGA. Poate există module undeva pregătite, o descriere sau articole pe această temă? Voi fi foarte recunoscător :)

Și ce nu-ți place BMP?

Și ce ar trebui să se potrivească cu mine? În bmp, imaginile capătă mai mult decât în ​​TGA și nu au un canal alfa. Pentru mine, toate aceste manipulări sunt necesare într-o mai mare măsură pentru a reduce uneori distribuția jocului prin comprimarea texturilor în jpg. Și, de exemplu, pentru a utiliza o imagine a unui canal alfa pentru diferite texturi cu un contur identic, puteți salva deja o mulțime de spațiu în acest sens.

Nu prea înțelegeam ce este problema.
Faceți clic pe toate imaginile din JPEG, apoi faceți-o!
Trebuie să rezolvăm separat alfa - da, pentru Dumnezeu,
face 2 JPEG-uri. Deși în majoritatea cazurilor
această abordare este potrivită: calculați alfa
de la florile ele însele. Niprimer, cu atât mai mult
Suma culorilor, cu atât mai mult alfa, adică negrul va fi transparent.

> Nu am inteles ce este problema.

> Deși în majoritatea cazurilor
abordează această abordare: calculați alfa
de la florile ele însele.

Această abordare nu mă convine, am nevoie de două imagini.

Cel mai bun mod (IMHO):
- Imaginea principală este stocată într-un jpeg colorat.
- Masca canal alpha este stocată în bmp cu o paletă de 256 de nuanțe de gri (sau b / w, adică două culori), respectiv indicele de culoare din paletă este gradul de transparență.

Cum obțin un TGA cu un canal alfa din două imagini?

Bănuiesc că întrebarea este corect formulată după cum urmează: cum se generează din 32 de imagini bitmap pe 32 de biți (în memorie) și din ea pentru a face textura OGL.

Glumesc despre incapacitatea gscenei de a calcula 2 + 2 fara ajutorul unei biblioteci mari si puternice

> Bănuiesc că întrebarea este formulată corect după cum urmează: cum se generează din 32 de imagini bitmap pe 32 de biți (în memorie)

Suntem aici cu formularea de întrebări sau căutarea de răspunsuri? Cred că întrebarea este destul de clară. sau mă înșel? Există două imagini: prima textură originală, al doilea canal alfa pentru textura - trebuie să obțineți formatul tga cu alfa din aceste două imagini.

> și de la ea face textura OGL.

Sunt interesat să lucrez cu TGA fără ogl, pentru că aș dori să reambalăm texturile în stadiul instalării jocului, adică o dată.

> Bâzâi despre incapacitatea gscenei "să calculez 2 + 2 fără ajutorul unei biblioteci mari și puternice

Fixat :) Dar GLScene nu are nimic de-a face cu. În plus, au existat încercări de modificare a TGA, de exemplu, pentru a repara textura în culoarea dorită, dar canalul alfa a fost pierdut. A fost în căutarea pentru exemple de lucru cu format tga, editare, etc, dar nimic nu într-adevăr nu a fost, putem presupune că rău în căutarea, dacă da, poke nasul unde puteți găsi. Voi fi recunoscător.

> # xA0;
2) S-au confruntat cu aceeași idee și au venit la png.
a) Nu aburi cu combinația de imagini.

Nu mă îngrijorează cu combinația de poze, cu toată ideea că încearcă să reducă distribuția jocului.

> b) Textura este mult mai buna prietena cu transparenta in png. Deoarece se realizează prin mijloace convenționale # xA0; fotojob. Un canal Aflfa necesită mai mult efort.

Cu aceasta nu au apărut probleme.

> C) Amestecul de lucrari curba TGA (cel puțin în textura mea png dă rezultate velikolepnyy și TGA -. În zonele transparente adaugă la culoarea textura și culoarea de fundal, chiar png La fel, nu există nici un lucru, cum ar fi culoarea de fundal la toate) ..

Acest lucru este ușor de tratat prin setarea fundalului culorii dorite.

> 3) Întrebarea nu este corect formulată. Și tu însuți faci tulburările.

Ei bine, sunt de acord, întrebarea este stângace. Doar nu înțeleg ce este înfricoșătoare, pentru că toată lumea înțelege altceva decât ce vreau să spun. Sunt un idiot, omoară-mă pe cineva. )

> Atunci nu este clar la ceea ce aici în general TGA.

Cu asta, trebuie să obțin rezultatul în format tga. Și acum încă o dată pe punctele:
a) există o textură în texture.bmp
b) există o imagine canal alfa pentru textură în alpha.bmp
c) aveți nevoie de texture.bmp pentru a lipi cu alpha.bmp și pentru a obține rezultatul maskedTexture.tga.

Nimic nu împiedică, așa că voi înțelege, pentru că subiectul unui fel de flamenco sa dovedit.

> 5) dacă generați imaginea, ceea ce vă împiedică să-l generați în formatul dvs. intern, întemeiat pentru nevoile dvs.?

Sarcina este de a reduce distribuția jocului. Vreau să reambalăm textura de la jpg la tga în timpul instalării jocului, este convenabil deoarece aceasta va trebui executată o singură dată.

Hmm. Și dacă efectul mai multor culori este cum să alegeți culoarea fundalului. ))

P.S>
Dacă brusc nu în cursuri:
png - format cu compresie și transparență.

Voi spune din nou:
tga și bmp sunt aproape aceleași.

c) aveți nevoie de texture.bmp pentru a lipi cu alpha.bmp și pentru a obține rezultatul maskedTexture.tga.
Și unde este vorba despre jpeg. ))))
lipirea împreună bmp și bmp, veți obține un TGA egal cu suma dimensiunilor. Puțin mai puțin, datorită fuzionării de titluri.

> Hmm. Și dacă efectul mai multor culori este cum să alegeți culoarea fundalului. ))

Vrei să spui o situație în care diferite margini ale texturii au culori diferite? Dacă da, atunci în acest caz sub fiecare margine, fundalul este vopsit cu cea mai potrivită culoare.

> Dacă brusc nu în cursuri:
png - format cu compresie și transparență.

Știu. Doar cumva niciodată nu sa întâmplat să încerci să folosești png ca texturi. Mulțumesc pentru sfat, mă gândesc deja la asta ca pe o alternativă.

> Voi spune din nou:
tga și bmp sunt aproape aceleași.

Da, cuvântul cheie este practic. Bmp nu are nici o compresie și, în mod natural, canalul alfa, de asemenea, nu.







> Și unde este vorba despre jpeg. ))))

Acest lucru nu mai este cazul, în codul care jpeg că bmp va fi adus la același tip de TBitmap, dar cum puteți obține TGA de acolo? Cu toate acestea, am scris deja că voi fi mai atent să analizez formatul tga, am găsit deja câteva exemple destul de detaliate de lucru cu TGA. Și voi încerca să dau png.

> Vrei să spui o situație în care au diferite margini ale texturii
> Culori diferite? Dacă este așa, atunci, în fiecare caz,
> fundalul este vopsit cu culoarea cea mai potrivită.

Ai nevoie de hemoroizi?
Și texturalele tale. ))


> Da, cuvântul cheie este practic. Bmp nu are nici o compresie
> și, în mod natural, canalul alfa, de asemenea, nu.

tga folosește compresia rle. Practic nu se aplică texturilor.
bmp Apropo, de asemenea, pot folosi compresie, deci sunt, în general, idiotice.
există chiar și principiul de stocare a depozitului este același, de jos în sus și în formă de BGR.


> Acest lucru nu mai este esențial, în codul care jpeg că bmp va fi
> sunt reduse la un singur tip de TBitmap, și de aici rezultă de aici
> a lua tga? Cu toate acestea, am scris deja că voi fi mai atent
> analiza formatului tga, a găsit deja câteva detalii foarte detaliate
> Exemple de lucru cu tga. Și voi încerca să falsim formatul
> png.

Nu. Bitmap-ul trebuie de asemenea convertit.

IMHO, aș lua în considerare două opțiuni:
1) formatul său intern, care va stoca datele într-o formă convenabilă.
RGB cu transfer + A
2) thread-ul este pur și simplu un tip de png. De exemplu, prin DevIL. Dacă găsiți ce fir un alt rând mai convenabil - au dispărut. )

Ei bine, sunt de acord, întrebarea este stângace. Doar că nu înțeleg ce este gnarliness

Întrebarea este în mod normal formulată.
Un alt lucru este că problema poate fi rezolvată mult mai ușor, fără nici o pereupakovok în timpul instalării și mai ales atunci când descărcarea (ultimul -. Într-un coșmar general, deși eu însumi, mărturisesc, expediate ca jpeg“, iar în urmă cu 7 ani), că, în conformitate. "corect formulat" am vrut să spun că "de fapt aveți nevoie."

> @ !! !! ex_ # xA0; (20.06.07 20:32) [12]
> Ai nevoie de hemoroizi?
> Și texturalele voastre. ))

Acesta este deja un obicei. Ce se poate face la momentul tga această „facilitate“, nimeni nu sa plâns :) Acum, că este nevoie pentru a face textura png pentru a experimenta și pentru a exporta-l din PSD png în a avea un oarecare disconfort cu crearea Alpha, pur și simplu pentru că inițial a fost redactată sub tga. În general, gustul și culoarea. )

> tga folosește compresia rle. Practic nu se aplică texturilor.
> bmp Apropo, de asemenea, poate folosi compresia, asa ca in general
> sunt ideale.

Și despre canalul alfa? Și, în general, trenul de gândire a fost înțeles și într-un caz particular nu este fundamental diferit de bmp diferă de tga :)

> IMHO, aș lua în considerare două opțiuni:

Mulțumesc pentru sfaturi, o să încerc.

> Sapersky # xA0; (20.06.07 22:22) [13]
> Un alt lucru este că problema descrisă poate fi rezolvată mult mai ușor, fără
> orice reambalare în timpul fazei de instalare și chiar mai mult atunci când încărcați
>. Ie sub "formulat corect" am vrut să spun "de fapt
> aveți nevoie. "

Bine. Care sunt soluțiile cele mai optime, după părerea dvs., puteți folosi pentru o astfel de sarcină? Sau, sub o soluție mai optimă, a fost doar mențiunea: "pentru a forma o imagine bitmap pe 32 de biți (în memorie) din două imagini și a face o textura OGL din ea"?

Vă mulțumim pentru legătură, această descriere destul de detaliată a formatului pe care nu l-am întâlnit.

> Și despre canalul alfa? Și în ansamblu trenul de gândire a fost înțeles și în beton
> Cazul nu este fundamental diferit de bmp de la tga :)

În general, nu am avut în vedere prezența / absența alfa. Dimensiunea și metoda de stocare. )


> Bmp nu are nici o compresie și, de asemenea, canal alfa natural
> nu.

Mă grăbesc să vă mulțumesc, bmp are un canal alfa

Sau o soluție mai bună înseamnă doar „forma de 2 imagini pe 32 de biți bitmap (în memorie) și să-l facă o OGL textura.“?

Da, da.
Încărcare normală - încărcați imaginea în memorie, extindeți BGR (A) în RGB (A) (cum este cazul pentru a crea texturi OGL), creați o textură.
Cu alfa - descărcați 2 imagini, combinați-le într-una (și extinzând simultan), creați o textură.
Cu numele fișierelor, cea mai simplă soluție este numele fișierului textură alfa = numele fișierului este obișnuit + "_a" sau ceva de genul acesta.
Modulele pentru lucrul cu fișiere bit-uri pe 32 de biți și alte pe scala Scanline păreau în Sala de depozitare - antonn va spune exact unde le-a scris.

Vă mulțumim pentru legătură, această descriere destul de detaliată a formatului pe care nu l-am întâlnit.

Există un cod pentru salvare, dacă parcurgeți mai departe.

> Sapersky # xA0; (21.06.07 16:00) [20]

Mulțumesc, mesajul a înțeles :) În general, aici am învățat deja suficiente informații noi și utile cu privire la formatele grafice. Acum este nevoie de timp pentru a sorta lucrurile și a încerca. În orice caz, așa cum am vrut inițial, voi rezolva la fel cu TGA și apoi voi încerca să săpat în opțiuni alternative pentru stocarea resurselor grafice. Vă mulțumim din nou pentru sfat :)

Da, este. Numai texturile într-o dimensiune TGA de 512x512, aproape sub un megabyte, ocupă spațiu. Deși în jpg aceeași textura va ocupa cel puțin 5 ori mai puțin și dacă stocați textura și alfa separat în jpg, atunci dimensiunile de distribuție vor fi reduse de mai multe ori. Pentru a face acest lucru, de fapt, totul a început.

> Acest lucru nu mai este esențial, în codul care jpeg că bmp va fi
> sunt reduse la un singur tip de TBitmap, și de aici rezultă de aici
> a lua tga?

Și de ce duce din nou la formatul de stocare a imaginii pe disc? Pentru a încărca totul din fișier înapoi la același tip de TBitmap (sau ce structuri corespund texturilor)?

așa că citiți cu atenție # xA0; [6] Sapersky # xA0; (20.06.07 15:38). În orice format, imaginea este stocată în fișier, toate se termină cu reducerea la una.


> Exemplele principale sunt modul de citire și afișare a TGA. Am vrut
> ar fi treaba cu tga

tga poate fi citită, poate fi scrisă. Lucrul cu el este lipsit de sens. Pentru aceasta este format de stocare a datelor. IMHO.


> În orice caz, așa cum am vrut inițial, voi înțelege
> Taki cu TGA, și în continuare voi încerca să scot variante alternative
> stocarea resurselor grafice


> Deși în jpg aceeași textura va ocupa cel puțin
> De 5 ori mai puțin și dacă stocați textura și alfa separat
> în jpg, atunci mărimea distribuției va fi redusă uneori. Pentru a face acest lucru,
> de fapt toate astea și au început

Nu simțiți o contradicție? tga ca format de stocare nu vă convine din cauza dimensiunii. Dar încercați în mod constant să obțineți TGA, chiar dacă îl stocați în jpg. DE CE? uitați de tga vooobsche și nu vă amintiți. Și citiți # xA0; [20] Sapersky # xA0; (21.06.07 16:00). nu există nici un singur cuvânt despre TGA, deși există texturi cu un canal alfa

Este proastă să spun asta. Deci puteți scrie despre orice format grafic sau chiar despre orice format.

> Nu simțiți o contradicție? TGA ca format de stocare nu sunteți
> mulțumit de dimensiune. Dar încercați în mod constant să obțineți TGA, chiar
> dacă să stocați în jpg.

Iată citatul din ultima postare, vă rugăm să citiți cu atenție: "În orice caz, voi face așa cum am vrut inițial să rezolv cu TGA, și apoi voi încerca să iau alte opțiuni pentru stocarea resurselor grafice." Vă mulțumim din nou pentru îndrumare ". Iată un astfel de încăpățânat, am un scop, vreau să-l realizez. Si in timp ce sunt de acord ca acest lucru nu este probabil cel mai bun mod, dar si cele mai optime optiuni despre care am scris Sapersky si @ !! ex_ voi incerca cu siguranta.

ce alternative există - luați un bitmap, îl împingeți în resurse comprimate (cel puțin zlib), se micșorează și (pentru mine acest lucru important) nu pierde paleta și este mai ușor să lucrați cu ea decât cu png. Nu înțeleg de ce se urmăresc după formatele care au fost inventate pentru fișiere individuale în uz general.

zlib este o strânsă textură stoarce. sau mai degrabă nu compresează deloc.


> zlib este o strângere de textură stricată. sau mai degrabă, aproape complet
> nu se comprima.

Da, bine. )
1 456 018 octeți de fișiere în bmp au fost încurcați în 128 501 octeți

> Sapersky # xA0; (25.06.07 18:39) [30]
> Nu, zlib, png și chiar jpeg - nu e serios. Băieții adevărați generează
> texturi la rularea unui demo la 64 kb :)
> Râziți de râs, dar aici am găsit "motorul texturilor" că știe cum:
Trebuie să generați imediat jocul, să setați parametrii și să genereze jocul pentru dvs. :)

Și cum rămâne cu cazul, capturile de ecran sunt frumoase, desigur, dar mi se pare că nu fiecare generator poate genera ceea ce poate face un artist. Lăsați texturile generate să fie calitative și realiste, dar, mai des, realismul nu este uimitor, ci stilul grafic în care jocul este executat, iar acest stil este în primul rând stabilit de artist. Jocul în 64kb - este probabil incredibil de abrupt, dar acest joc este fără suflet, nu are naștere atât grafică, cât și altfel. IMHO desigur. )

Apropo, dacă există probleme cu salvarea tga pe 32 de biți în Photoshop CS, CS2, adică canalul alfa este ucis, înlocuiți fișierul de la versiunea 7 cu "Fișierele \ \" \ "\" \ "Targa.8BI" (40k octeți).
Și nici o eșantionare a canalului alfa.

Un png-necesită o bibliotecă, pe lângă compresia zip-ului, și este mai plictisitor decât rle.
Cu volume mai mari, png va fi la fel de lent ca jpg.







Trimiteți-le prietenilor: