od Emi
Někdy se při import modelu do 3DCoat normal map na rendereru výřezu nezobrazí správně. Ale začíná to způsobem, jakým exportujete svůj model do jiného softwaru.
Normální mapa může trochu opravit problémy se stínováním, jak jsou normální mapy čteny softwarem, a to by mohlo způsobit, že problém bude trochu méně nápadný, ale problém tam stále je. Musíte použít některá pravidla, která by pomohla vyřešit skutečný problém, abyste si usnadnili práci a život tím, že pečou lepší normální mapy.
Bez použití těchto pravidel byla většina normálů průměrná a jen málo z nich bylo tvrdých, což bylo divné vidět. Ale to je jasně hlavní důvod problémů, jak jsou exportovány vyhlazovací skupiny pro váš model a jak jsou čteny v jiném softwaru.
Za prvé, krabice nemohou být měkké nebo průměrné, jsou to 90° úhly a ať děláte, co děláte, vždy budou mít tento problém s osvětlením, pokud nebudou nastaveny na ostré hrany. V minulosti, než se objevily pokročilejší pečící programy, jako je Marmoset, aby to usnadnily, bylo nutné vždy vyrobit klec a klec byla ta, která měla průměrné vrcholové normály, takže klec se používala k provádění průměrného ‘ vyhledávání“ vysokého poly, aniž by došlo k chybám při pečení, protože krabice by připomínala tvrdé okraje. Samozřejmě, že nyní Marmoset má zaškrtávací políčko “hladká klec” dělá totéž a nyní nepotřebujete klec, pokud opravdu nepotřebujete klec.
Jsou zde tedy dvě „pravidla“ a také spolu souvisí:
1. když děláte modely s úhly 90°, měly by být vždy tvrdé. Samozřejmě můžete také trochu zkosit a vyhnout se 90° úhlovým hranám. to bude nejen přesně kopírovat tvar modelu s vysokým rozlišením, ale také můžete použít měkké okraje na krabici a udělat to hezčí a bez problémů, a zaoblené a hezčí a tak.
2. Tvrdé okraje (které by v podstatě měly mít úhly 90°) by měly být vždy rozděleny na UV , aby se také předešlo problémům. Možná si toho na svém modelu nevšimnete, ale je to tam a souvisí to s tím, jak pixely se setkávají pod úhlem 90° a jak by se pixely mohly prolnout, a jsou prostě odlišné, takže není dostatek místa, jako by to udělala vycpávka, aby se vyřešily malé problémy, které by se mohly stát. Ano, záleží na rozlišení a UVs a na tom všem a díky tomu by to mohlo být znatelnější než ostatní, ale ano, v takovém případě, kdy děláte krabice, byste museli rozdělit všechny ty 90° okraje, a ano, to znamená, že 6 stran krabice = 6 ostrůvků, aby se předešlo problémům.
Povídání o 3DCoat a o tom, jak funguje s předvolbami a tak dále. Co na tom chápu je, že při použití předvoleb jako Blender nebo Unity ve skutečnosti používáte předdefinovaný soubor nejen s tím, jak se bude chovat k normální mapě, ale bude nebo nebude převrácená na zelenou. Ale také Tangent Space, triangulace a jak exportuje normály a některé další možnosti. Pokud použijete možnost Neznámé, budete moci použít ty v předvolbách, ty, které jste nastavili.
Pokud přejdete do C:Program Files 3DCoat-VXXXToolsPresetsExtTools, uvidíte soubory XML a jak se Unity liší od Blender, protože přednastavení Blender používá MikkTSpace, zatímco unity je nastaveno na LengyelAreaAngleWeightedSpace. To je jediný rozdíl. ale zjevně dost na to, abyste to viděli, protože jsou interpretovány odlišně. Technicky by neměly moc ovlivnit nic a pouze způsob, jakým čte normal map , pokud je to ‘DirectX’ nebo’ OpenGL’, ale kořen problému se stínováním není v normal map, je to o modelu a bude být vždy vzorem.
Pomineme-li pravidla UVs , problémy, které to způsobuje, jsou minimální, pokud jste si toho vědomi, pak je to vaše volba ušetřit nějaký prostor pro UV a ignorovat okraje a problém, který by se mohl stát, v porovnání s jejich provedením správně, protože byste se museli dostat příliš blízko. všímat si problémů. někdy je mezi okraji velká mezera, stalo se mi to.
Pokud nemůžete mít rámečky jako průměrné vertexové normály nebo měkké, musí vypadat jako rámečky s tvrdými hranami, protože jsou to hrany pod úhlem 90°. Pokud chcete použít měkké hrany, musíte vytvořit zkosení.
Boxerky by měly mít 100% tvrdé hrany, válce by měly být nahoře a dole tvrdé a strany měkké.
Pro low poly modely navrhuji dělat úkosy, jen malé zkosení udělá velký rozdíl v mnoha případech, zvláště dnes, kdy neexistuje žádná omluva mít krabici bez úkosu pro něco takového.
Předvolby 3DCoat jsou jen malé variace, které můžete dokonce ručně vybrat pomocí neznámého, nepotřebujete předvolby, slouží pouze k tomu, aby pomohly 3DCoat interpretovat normal map a model, ale předvolbám nikdy nevěřím, protože jak říkáte předvolba Unity by měla být nastaven na MikkTSpace. Ale jde mi o to, že to není jen o normal map OpenGL vs DirectX.
Takže když používám 3DCoat , který je obvykle na malování, všechno funguje dobře, ale je to proto, že se ujišťuji, že vše na mém nízkém poly je také dobré, myslím tím, abych vytvořil dobré normální mapy a aby fungovaly všude, kde potřebujete dobré nízké hodnoty. poly, které dokáže zachytit jakékoli detaily s vysokou poly, které jste vytvořili. Neexistuje žádná magie, funguje to jen proto, že se o všechno ujišťuji, jako jsou vyhlazovací skupiny a UVs a tak dále.
Chci říct, že model s 90° hranami by se měl automaticky nastavit na tvrdou hranu, jinak to nejde a hotovo. Nezáleží na tom, zda má kostka 6 stran jako v tomto případě nebo 1000 poddílů Width, Height a Depth. Pokud nenastavíte 90° úhel krabice jako tvrdou hranu, bude mít vždy podivné stínování na těch hranách, které jsou 90°, ale jsou nastaveny na měkké nebo cokoli jiného.
Pokud aplikujete jednu vyhlazovací skupinu na celou sadu objektů… je to špatně, protože k rámečkům nemůžete vytvořit měkké okraje, zvláště pokud jsou tyto objekty pouze kostky se 6 plochami.
Něco takového nemůžete “vyhladit”, zvláště pokud máte jednoduchý box se 6 polygony, pokud chcete použít box, nastavte všechny strany na Hard Edges. Nebo druhý jediný způsob, jak to obejít, je přidat zkosení kolem hran, aby se zlomil úhel 90°, a pak jej nastavit na měkký. Baking normal map za účelem skrytí problému není řešením, může to vypadat o něco lépe, ale chyba stínování na modelu stále existuje. Dokonce i válce by měly mít měkké okraje po stranách a na horní a spodní straně by měly být nastaveny na tvrdé okraje, pokud nepřidáte zkosení.
Otázka tedy zní: stále chcete vše ponechat jako jednu vyhlazovací skupinu? pokud na tom nepracujete správně a nenastavíte věci, které by měly být tvrdé hrany tvrdé a měkké hrany měkké nebo nepřidáte úkosy na každého 90° anděla, pak váš problém nic nevyřeší a budete muset problém skrýt pomocí normal map a předstírat, že to není problém existuje.
Doufám, že jsem slušně vysvětlil, o jaké problémy zde jde, takže by vám to mohlo pomoci při vašich budoucích normal map .
Hodně štěstí a hezký den!