.[ ČeskéHry.cz ].
MonoGame import textury s alfou
Jdi na stránku 1, 2  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
]semo[



Založen: 29. 07. 2007
Příspěvky: 1525
Bydliště: Telč

PříspěvekZaslal: 24. říjen 2018, 07:37:37    Předmět: MonoGame import textury s alfou Odpovědět s citátem

Používáte někdo MonoGame?
Potřebuju importovat texturu s alfakanálem, ale vypadá to, že content pipeline tool umí alfu jen u PNG. Ale PNG moc rád nemám, protože na tvorbu textur používám Adobe Photoshop a ten z nějakýho důvodu u PNG exportuje alfu jen jako průhlednost vrstvy. Tam, kde je alfa 0, tam ani neexportuje správnou barvu pixelu, takže to je pro textury nepoužitelné. Radši bych TGA, nebo přímo PSD, ale všechno se to v MonoGame importuje bez alfy.

Ptal sem se na to i na jejich community diskuzi, ale zatim nikdo neodpověděl (přestože to tam celkem žije).
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1552

PříspěvekZaslal: 24. říjen 2018, 08:53:22    Předmět: Odpovědět s citátem

Asi bych to v PS ukladal do TGA a nejakym Imagemagickem to konvertoval do PNG v tom formatu, ktery potrebuju. Ale to asi neni rada, kterou hledas...
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
]semo[



Založen: 29. 07. 2007
Příspěvky: 1525
Bydliště: Telč

PříspěvekZaslal: 24. říjen 2018, 08:55:38    Předmět: Odpovědět s citátem

Taky mě to napadlo, ale radši přímou cestu, bude-li existovat. Asi by šel napsat vlastní importer textur, ale nechce se mi :)
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Spytihněv



Založen: 05. 04. 2011
Příspěvky: 541
Bydliště: Praha

PříspěvekZaslal: 24. říjen 2018, 10:16:26    Předmět: Odpovědět s citátem

Zkusil jsem to (Photoshop CC) a skutečně se u PNG alfa kanál neexportuje, místo něj je průhlednost vrstev, takže přesný opak TGA.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 24. říjen 2018, 10:35:25    Předmět: Re: MonoGame import textury s alfou Odpovědět s citátem

Není to tak, že do nulové alfy dá Photoshop fixní barvu (černou/bílou?) (dělá to i GIMP myslím).

Takže buďto můžeš zkusit přejít na premultiplied alpha, nebo použít nějaký tool, který vyfilluje okraje s nulovou alfou podle nenulového okolí, jako třeba můj tool, který jsem tady nedávno někam postoval:
http://www.ceske-hry.cz/forum/viewtopic.php?t=4211
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 24. říjen 2018, 11:02:29    Předmět: Re: MonoGame import textury s alfou Odpovědět s citátem

Nebo možná nechápu, v čem je problém?
Četl jsem na nějakém Adobe fóru, že PNG nepodporuje alfa kanál, ale to je naprostý nesmysl.
PNG podporuje až 4 kanály (tedy i alfa kanál), 16 bitů na kanál a dokonce i paletu s alfou, plus prehistorický chroma key. Takže problém určitě není v PNG formátu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
]semo[



Založen: 29. 07. 2007
Příspěvky: 1525
Bydliště: Telč

PříspěvekZaslal: 24. říjen 2018, 11:13:49    Předmět: Odpovědět s citátem

Tak ono to neni TGAčkem...ono je potřeba v content pipeline tool zapnout právě premultiply alpha. Což já ale nechci, proč bych měl chtít přenásobit rgb alfou? Na co je to dobrý?

mar: neříkal sem, že je problém v PNG formátu, ale ve Photoshopu. U PNG se tam nedá pracovat s alfou jako s kanálem, pouze jako s průhledností vrstvy, což je naprd.
Ale jak sem psal o pár řádků vejš, nový poznatek je, že import do mono game je stejný pro PNG i TGA, což sem myslel, že neni.
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 24. říjen 2018, 11:28:38    Předmět: Odpovědět s citátem

]semo[ napsal:
Tak ono to neni TGAčkem...ono je potřeba v content pipeline tool zapnout právě premultiply alpha. Což já ale nechci, proč bych měl chtít přenásobit rgb alfou? Na co je to dobrý?

Tak je to na to, že pokud pak máš nulovou alfu, tak ti je jedno, jaká pod tím byla barva, protože po premult z toho bude stejně černá Smile
Pak jenom upravíš blending a vyhneš se tím problémům, jako černé/bílé haló okolo hran, co přechází do nulové alfy, tj. v podstatě jenom přičtěš premult.
rgb a destination se scaluje stejně, jako u klasického alfa blendingu (tj. GL_ONE, GL_ONE_MINUS_SRC_ALPHA). Navíc tímhle způsobem můžeš kombinovat i aditivní blending do jednoho, stačí jenom upravit vstupní texturu.
(já sám ale stejně používám všude klasický alpha blending Smile
EDIT: když o tom tak přemýším, tak mi není úplně jasné, jak moc jde pak dohromady premult. alpha s sRGB, asi by se musela ještě udělat gamma korekce v premult kroku
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
]semo[



Založen: 29. 07. 2007
Příspěvky: 1525
Bydliště: Telč

PříspěvekZaslal: 24. říjen 2018, 11:42:01    Předmět: Odpovědět s citátem

Nikdy sem s klasickým blendingem problémy neměl, protože nejsem prase a kontury si hlídám :-).
Jak teda ale v MonoGame importujou specilální textury, řekněme třeba RGB normála + Alfa specular? Nebo cokoliv podobnýho, kde v žádným případě nelze barvu alfou násobit. Zatim sem nenašel způsob, jak importovat RGBA bez premultiply alfa :-/.
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 24. říjen 2018, 11:48:51    Předmět: Odpovědět s citátem

]semo[ napsal:
Nikdy sem s klasickým blendingem problémy neměl, protože nejsem prase a kontury si hlídám Smile.
Jak teda ale v MonoGame importujou specilální textury, řekněme třeba RGB normála + Alfa specular? Nebo cokoliv podobnýho, kde v žádným případě nelze barvu alfou násobit. Zatim sem nenašel způsob, jak importovat RGBA bez premultiply alfa :-/.

Jasně, premult. alfa má smysl jenom v případě, že rgb reprezentuje barvu a alfa průhlednost.
S MonoGame jsem nikdy nedělal, ani v C# (mimochodem jak se takový hardcore C++ programátor jako ty dostal k MonoGame? Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
]semo[



Založen: 29. 07. 2007
Příspěvky: 1525
Bydliště: Telč

PříspěvekZaslal: 24. říjen 2018, 12:06:00    Předmět: Odpovědět s citátem

No, jak sem se k tomu dostal....

Občas jsem C# používal na prototypy. A pak tu taky byla ta moje životní epizoda s Unity3D. I když jsem v tom pár komerčních projektů udělal, znovu bych to asi zažít nechtěl :-). Ale c sharp jako takový mi špatný nepřipadá. Je dobrý, že nahodíš IDE, dáš nový projekt a hned píšeš. To u C++ většinou tak snadno nejde. Než nalinkuješ knihovny, než se zbavíš precompiled headerů a podobných ptákovin...tak to trvá. Proto jsem si na malou hru vybral C# - chtěl sem to mít zkrátka rychle rozjetý :-). Na větší projekty a práci samozřejmě C++. Takže C# je celkem ok. Na druhou stranu, občas kroutím hlavou, jak je chudej. I ty kontejnery, algoritmy...všechno je to takový dětský. (Případné proti-argumenty beru jen od těch, kteří znají C++11 a vejš a STL).
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
]semo[



Založen: 29. 07. 2007
Příspěvky: 1525
Bydliště: Telč

PříspěvekZaslal: 25. říjen 2018, 09:23:17    Předmět: Odpovědět s citátem

Tak problém s alfou je vyřešen. Myslel sem, že se používá na premultiplied alfa stejný nastavení blendingu. Ale neni to tak. V MonoGame na to mají BlendState.NotPremultiplied :-).
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
satik



Založen: 06. 05. 2010
Příspěvky: 161
Bydliště: Krkonose

PříspěvekZaslal: 25. říjen 2018, 15:30:23    Předmět: Odpovědět s citátem

C# chudy, detsky? Co ti treba v C# chybi? LINQ znas a pouzivas? Smile
_________________
https://www.facebook.com/peasantsandcastles/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
]semo[



Založen: 29. 07. 2007
Příspěvky: 1525
Bydliště: Telč

PříspěvekZaslal: 25. říjen 2018, 15:43:08    Předmět: Odpovědět s citátem

....a jedém! C# vs C++ :-)

Linq..moc neznám (tak to následující ber spíš jako srandu). Připadá mi to, že Linq funguje nějak takhle: potřebuješ nějakou hodnotu, tak to napíšeš na svitek, ten zastrčíš do flašky, tu vystřelíš raketou do vesmíru, pak až spadne zase dolů, do moře, tak ji tam najde námořník, vyndá svitek, doručí ho na poštu na Novým Zélandu a odtud mi pak tu hodnotu pošlou (aniž bych věděl, co všechno ten svitek zažil :) ). Ale jen mi to tak připadá :-).

Mě by pro začátek stačilo, kdyby místo linq byl resize na vectoru (v C# List), Tuple, u kterýho jdou měnit hodnoty, ...a podobně.
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
satik



Založen: 06. 05. 2010
Příspěvky: 161
Bydliště: Krkonose

PříspěvekZaslal: 26. říjen 2018, 09:57:27    Předmět: Odpovědět s citátem

Takhle jsem se taky na LINQ zezacatku dival, ted uz ho pouzivam rad, veci co bys jinak psal na nekolik radku tady muzes napsat na podstatne min Smile

Tuple je immutable, pokud ho chces menit, tak si napsat tridu nebo pouzit anonymni typy jako tuple Smile

Nebo podle pouziti i treba Dictionary, pokud bys chtel jen dve hodnoty a chtel menit jen druhou Smile

Pokud ti staci Reserve, tak to c# umi jako capacity nebo v konstruktoru, jestli opravdu myslis Resize (ze ti to doplni poctem defaultnich hodnot) tak to nejak jednoduse jednim prikazem nejde, ale da se to treba pres linq, treba pres AddRange a Enumerable.Repeat

Smile
_________________
https://www.facebook.com/peasantsandcastles/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna