av Emi
Ibland när du import modellen till 3DCoat visas inte den normal map på viewport-renderaren korrekt. Men det börjar för hur du exporterar din modell på någon annan programvara.
Normal karta kan fixa lite skuggproblemen, för hur de normala kartorna läses av programvara, och det kan göra problemet lite mindre märkbart, men problemet är det fortfarande kvar. Du måste tillämpa några av reglerna som skulle hjälpa till att lösa det verkliga problemet för att göra jobbet och livet lättare genom att baka bättre normala kartor.
Utan att tillämpa dessa regler var vanligtvis de flesta normala medelmåttiga och få var svåra, vilket var konstigt att se. Men det är helt klart huvudorsaken till problemen, hur exporterar utjämningsgrupperna för din modell och hur de läses i annan programvara.
För det första kan lådorna inte vara mjuka kanter eller genomsnittliga, de är 90° vinklar, och oavsett vad du gör, kommer de alltid att ha detta ljusproblem om de inte är inställda på hårda kanter. Tidigare, innan mer avancerade bakprogram som Marmoset verkade göra det lättare, var man tvungen att alltid göra en bur, och buren skulle vara den som hade de genomsnittliga vertexnormalerna, så buren skulle användas för att göra genomsnittet. sökning’ av den höga polyen, utan att orsaka fel på bakningen eftersom lådan skulle påminna hårda kanter. Naturligtvis nu har Marmoset kryssrutan “slät bur” gör detsamma och nu behöver du inte en bur om du inte verkligen behöver en bur.
Så det finns två “regler” här och de är också länkade:
1. när du gör modeller med 90° vinklar ska de alltid vara hårda. Naturligtvis kan du också göra lite avfasning och undvika 90° vinkelkanterna. detta kommer inte bara att följa formen på högupplösta modellen, utan du kan också använda de mjuka kanterna på lådan och få den att se snyggare och med mindre problem, och rundad och snyggare och allt det där.
2. Hårda kanter (som i stort sett borde vara 90° vinklar) bör alltid delas på UV för att undvika problem också, du kanske inte riktigt märker det på din modell, men det finns där, och det har att göra med hur pixlar möts i 90°-vinkeln och hur pixlar kan blandas och de är bara olika så det finns inte tillräckligt med utrymme som en stoppning skulle göra för att fixa de små problem som kan hända. Ja, det beror på upplösningen och UVs och allt det där och det kan göra det mer märkbart än andra, men ja, i ett fall som detta där du gör lådor, skulle du behöva dela alla dessa 90° kanter, och ja, det betyder 6 lådsidor = 6 öar för att undvika problem.
På tal om 3DCoat och hur det fungerar med förinställningar och allt det där. Vad jag förstår om det är att genom att använda förinställningar som Blender eller Unity, använder du faktiskt en fördefinierad fil med inte bara hur den kommer att behandla den normala kartan, den kommer att vara grön eller inte. Men också Tangent Space, trianguleringen och hur den exporterar normalerna och några andra alternativ. Om du använder alternativet Okänt, kommer du att kunna använda de i inställningarna, de du ställer in.
Om du går till C:Program Files 3DCoat-VXXXToolsPresetsExtTools kommer du att se XML-filerna och hur Unity skiljer sig från Blender, eftersom Blender -förinställningen använder MikkTSpace medan unity är inställd på LengyelAreaAngleWeightedSpace. Det är den enda skillnaden. men tydligen tillräckligt för att du ska se det eftersom de tolkas olika. Tekniskt sett borde de inte påverka mycket någonting och bara hur den läser den normal map om den är ‘DirectX’ eller ‘OpenGL’, men roten till skuggningsproblemet handlar inte om den normal map, det handlar om modellen och det kommer att alltid vara modellen.
Om man bortser från UVs reglerna är problemen det orsakar minimala, om du är medveten om det är det ditt val att spara lite UV utrymme och ignorera kanterna och problemet som kan hända jämfört med att göra dem korrekt eftersom du skulle behöva komma för nära att lägga märke till problemen. ibland är det ett stort gap mellan kanterna, har hänt mig.
Om du inte kan ha lådor som genomsnittliga vertexnormaler eller mjuka, måste de se ut som hårdkantade lådor eftersom de är 90° vinkelkanter. Om du vill använda mjuka kanter måste du skapa en fas.
Boxers ska vara 100 % hårda kanter, cylindrarna ska vara hårda upptill och nertill och sidorna mjuka.
För lågpoly-modeller föreslår jag att man gör avfasningar, bara liten avfasning kommer att göra stor skillnad i många fall, speciellt idag där det inte finns någon ursäkt för att ha en låda utan fas alls för något sådant här.
3DCoat förinställningar är bara små variationer som du till och med kan välja manuellt genom att använda okända, du behöver inte förinställningarna, de är bara för att hjälpa 3DCoat att tolka den normal map och modellen, men jag litar aldrig på förinställningarna, för som du säger bör Unity förinställningen ställas in på MikkTSpace. Men min poäng är att det inte bara handlar om OpenGL vs DirectX normal map.
Så när jag använder 3DCoat som vanligtvis är att måla fungerar allt bra, men det är för att jag ser till att allt på min låga poly är bra också, jag menar, för att göra bra normala kartor och få dem att fungera överallt behöver du en bra låg poly som kan fånga de höga polydetaljerna du än har gjort. Det finns ingen magi, det fungerar bara för att jag ser till allt, som utjämningsgrupperna och UVs och allt det där.
Det jag menar är att en modell med 90° kanter ska ställas in automatiskt på hård kant, det finns ingen annan väg runt och så är det. det spelar ingen roll om kuben har 6 sidor som i det här fallet eller 1000 underavdelningar Width, Height och Depth. Om du inte ställer in 90°-vinkeln på en låda som hård kant, kommer den alltid att ha den konstiga skuggningen på de kanterna som är 90° men är inställda på mjuka eller vad som helst.
Om du applicerar en enda utjämningsgrupp på hela uppsättningen objekt… är det fel, eftersom du inte kan göra mjuka kanter på lådor, speciellt om objekten bara är kuber med 6 ytor.
Du kan inte “jämna” något liknande, speciellt om du har en enkel låda med 6 polygoner, om du vill använda en låda, ställ in alla sidor till Hard Edges. Eller den andra enda vägen runt är att lägga till en avfasning runt kanterna för att bryta 90° vinkeln hårt och sedan ställa in den till mjuk. Att Baking den normal map för att dölja problemet är inte lösningen, det kan se lite bättre ut men skuggningsfelet finns fortfarande på modellen. Även cylindrarna ska ha mjuka kanter på sidorna och på över- och undersidan ska de ställas in på hårda kanter om du inte lägger till en fas.
Så frågan är: vill du fortfarande behålla allt som en enda utjämningsgrupp? såvida du inte arbetar med det ordentligt och ställer in saker som ska vara hårda kanter hårda och mjuka kanter mjuka eller lägger till fasningar på varje 90° vinkel så kommer ingenting att lösa problemet, och du måste bara dölja problemet med den normal map och låtsas som inga problem existerar.
Jag hoppas att jag förklarade anständigt vad problemen är här så att det kan hjälpa dig med dina framtida normal map kartbakningar.
Lycka till och ha en bra dag!