Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
TeaTime
Založen: 17. 06. 2011 Příspěvky: 264
|
Zaslal: 10. leden 2014, 23:04:03 Předmět: Barva průhledných texelů |
|
|
Vykresluji textury ve 2D. Textura má spoustu průhledných a poloprůhledných texelů. Takže uprostřed je nakreslený objekt nepravidelného tvaru a okolo jsou průhledné texely. A právě na okraji toho objektu (kde jsou ty poloprůhledné texely) se mi objevuje takový šedivý okraj.
Je to způsobené tím, že při jiném zvětšní než 1:1 se při lineárním filtrování textury míchá poloprůhledný texel se zcela průhledným texelem. Průhlednost výsledného pixelu je dobrá, ale podělá se barva (protože ten průhledný texel je zakódovaný v obrázku jako bílý).
Chtělo by to asi vyřešit nějak, aby byl každý průhledný texel měl stejnou barvu jako nejbližší alespoň částečně viditelný pixel. Obrázky načítám pomocí knihovny DevIL.
Potřeboval bych poradit, jak to mám konkrétně řešit. Tedy jestli mám nějak automaticky konvertovat ten obrázek na jiný se správnými barvami. Jestli jo, tak by mě zajímalo jak to udělat a do jakého formátu můžu obrázek uložit (abych měl jistotu, že se informace zachová). Radši bych to stejně ale řešil nějak za běhu - nejde to třeba v shaderu (když je jeden z texelů průhledných tak nepoužívej jeho barvu ale jen alphu)? Uvědomuji si, že tohle je trochu naivní představa, ale doufám, že mě navedete do správného směru.
Díky. |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
|
Návrat nahoru |
|
 |
TeaTime
Založen: 17. 06. 2011 Příspěvky: 264
|
Zaslal: 11. leden 2014, 13:08:59 Předmět: |
|
|
Díky moc, sice nehodlám každý obrázek ručně předělávat ve photoshopu, ale navedlo mě to na správnou stopu: http://forum.unity3d.com/threads/181647-Removing-white-black-borders-around-transparent-textures-with-ImageMagick.
Akorát jsem to upravil pro bash a pro nejnovější ImageMagic.
Script na opravu průhledných pixelů:
kód: |
#!/bin/bash
convert \( "$1" \
\( +clone -channel RGBA -adaptive-blur 0x1 \) -compose DstOver -composite \
\( +clone -channel RGBA -adaptive-blur 0x1 \) -compose DstOver -composite \
\( +clone -channel RGBA -adaptive-blur 0x1 \) -compose DstOver -composite \
\( +clone -channel RGBA -adaptive-blur 0x1 \) -compose DstOver -composite \
\( +clone -channel RGBA -adaptive-blur 0x1 \) -compose DstOver -composite \
\( +clone -channel RGBA -adaptive-blur 0x1 \) -compose DstOver -composite \
\( +clone -channel RGBA -adaptive-blur 0x2 \) -compose DstOver -composite \
\( +clone -channel RGBA -adaptive-blur 0x2 \) -compose DstOver -composite \
\( +clone -channel RGBA -adaptive-blur 0x2 \) -compose DstOver -composite \
\( +clone -channel RGBA -adaptive-blur 0x3 \) -compose DstOver -composite \
\( +clone -channel RGBA -adaptive-blur 0x3 \) -compose DstOver -composite \
\( +clone -channel RGBA -adaptive-blur 0x3 \) -compose DstOver -composite \
\( +clone -channel RGBA -adaptive-blur 0x4 \) -compose DstOver -composite \
\( +clone -channel RGBA -adaptive-blur 0x4 \) -compose DstOver -composite \
\( +clone -channel RGBA -adaptive-blur 0x4 \) -compose DstOver -composite \
\( +clone -channel RGBA -adaptive-blur 0x5 \) -compose DstOver -composite \
\( +clone -channel RGBA -adaptive-blur 0x5 \) -compose DstOver -composite \
\( +clone -channel RGBA -adaptive-blur 0x5 \) -compose DstOver -composite \
\) "$1" -compose CopyOpacity -composite "$1" |
Script který zkonverguje všechny png obrázky ve složce a podsložkách:
kód: |
#!/bin/bash
IFS=$'\n'
for i in `find . | grep "\.png$"`
do
echo $i
./solidify.sh "$i"
done |
|
|
Návrat nahoru |
|
 |
|
|
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