Låt oss först titta på den förbättrade polygonreduktionen. För jämförelsetestet av den nya Polygonreduktion-generatorn från version 19 med den gamla Polygonreduktion-deformatorn från version 18 använde jag en högupplöst 3D-skanning av en chokladgjutmodell från Hans Brunner GmbH med exakt 844302 polygoner eller 422153 punkter.
För att i visningsläget konstant shading (linjer) faktiskt kunna se punkterna, måste man zooma in ganska nära 3D-modellen.
Polygonreduktion med den nya polygonreduktion-generatorn
Den som letar efter polygonreduktionen i menyn för Deformer kommer att vara strandsatt i Cinema 4D-version 19. Den gamla Polygonreduktion-deformatorn existerar inte längre, men stöds fortfarande när äldre filer öppnas.
Den nya polygonreduktionen är implementerad som en generator och kan hittas i menyn Skapa>Modellering.
För att jämföra kvaliteten på reduktionen av de två polygonreducerarna, har jag minskat antalet polygoner med 95 % för det orangea björnmodellen med den gamla Polygonreduktion-deformatorn, medan jag har minskat det gula björnmodellen med den nya Polygonreduktion-generatorn med 95 % var.
Båda polygonreducerarna inkluderar en skjutreglage som används för att justera reduceringsstyrkan. Den nya generatorn visar också omedelbart det resulterande antalet trianglar, punkter och kanter.
För speciellt formade 3D-objekt med kant kan 3D-konturen och även en redan existerande UV-uppackning bevaras genom att anpassa de intilliggande polygonerna.
När vi betraktar resultatet av de två polygonreducerarna i Gouraud shading-läge, kan vi redan se första skillnaderna. Näten på den gula björnmodellen verkar mjukare och av högre kvalitet, medan den orangea björnmodellen redan visar tydliga problem på kritiska områden.
Speciellt tydliga blir skillnaderna när vi tittar på polygon-nätet för de två björnmodellerna.
Medan näten för den orangea björnen verkar mycket ojämna och kaotiska, …
… visar näten för den gula björnen mycket jämnare polygonstorlekar och en väldigt homogen fördelning av polygoner.
Variabel nivå av detaljer (LOD) med polygonreduktion
En tillämpning av den nya polygonreduktionen skulle exempelvis vara att generera olika upplösta versioner av björnmodellen och beroende på avståndet till kameran, visa eller gömma dem. På detta sätt kan prestandan, exempelvis i 3D-spel, förbättras betydligt.
För att denna automatiska visning eller gömning av objektversionerna ska ske, har Cinema 4D-version 19 i varianterna Visualize och Studio det så kallade LOD-objektet (Level-of-Detail-objekt).
I vårt exempel har jag skapat de fyra björnmodellerna med Polygonreduktion-generatorn med olika reduktioner och slutligen löst upp dem till det resulterande polygonobjektet genom kommandot Nät>Omvandla>Omvandla aktuell till objekt.
Reduktionerna sträcker sig från 80 % för närbilder till 99,9 % när kameran är väldigt långt bort från björnmodellen. För att alla björnmodellversioner ska ha samma position, sätts X-koordinaten för alla fyra björnar till 0.
För att använda de fyra björnmodellversionerna för variabel nivå av detaljer, måste de placeras under LOD-objektet. Genom att välja de fyra objekten och öppna LOD-objektet via paletten för Modellerings-objekt medan Alt- och Kommando-tangenterna hålls nedtryckta, görs detta i ett enda steg.
I inställningsdialogen för LOD-objektet i Attribut-hanteraren hittar vi på Objekt-sidan de fyra björnmodellerna som LOD-steg. För varje steg kan separata visningsalternativ ställas in. LOD-läge Subobjekt är redan korrekt, eftersom de innehållande underobjekten ska användas för den variabla nivån av detaljer.
Så det enda som återstår är kriteriet, enligt vilket LOD-objektet ska avgöra vilket LOD-steg som ska användas för visningen av objektet. Eftersom björnmodellen ska anpassa sig efter avståndet till kameran, ska kameradistans väljas som kriterium.
Efter att ha valt kriteriet visar inställningsdialogen för LOD-objektet i LOD-panelen fyra färgade områden, var och en för varje björnmodell. För tillfället är dessa fyra avståndsintervall lika stora och fördelar sig över den minsta och största kameraavståndet som registrerats i raden ovanför.
LOD-objektets funktion kan också testas i 3D-vyn. När kameraavståndet ligger i intervallet för den översta nivån, visas björnen i sin bästa kvalitet, …
… så snart kameraavståndet ökar, byter LOD-objektet till nästa nivå när det når nästa avståndsintervall. Vilket värdeintervall kameran för närvarande befinner sig i kan avläsas på det lilla kamera-symbolen under LOD-panelen.
Genom att testa växelpunkterna i 3D-vyn kan man snabbt se om bytet till nästa nivå kanske sker för tidigt eller för sent. I det aktuella fallet bör björnen fortsätta synas i den högre upplösta LOD-nivån.
För att justera en växelpunkt drar man enkelt i linjen mellan avståndsintervallen och drar området bakom önskad kameraposition.
Vanligtvis kommer man att använda den kvalitetsmässigt lägsta LOD-versionen först när objektet tydligt befinner sig i bakgrunden av scenen.
Variabel nivå av detaljer (LOD) med automatisk förenkling
LOD-objektet erbjuder också en egen möjlighet till reducering eller förenkling av objekt. I detta fall krävs inga olika objekt som LOD-nivåer. Ett enda underordnat objekt räcker och inställningen Förenkling som LOD-läge i inställningsdialogen.
I de olika visningsalternativen för LOD-nivåer erbjuder LOD-objektet, förutom den ursprungliga, högupplösta versionen (Fulla objekt), en nedräkning som liknar polygonreduktion, en konvex hölje, visning av Bounding Box-kuben eller till och med ett Null-objekt.
För nedräkningen passar inte alla typer av objekt, ofta tas hela delar av objektet bort.
Den konvexa höljen fungerar bra men används oftare vid stort kameraavstånd.
Inte annorlunda är Bounding Box, som refererar till hela 3D-objektets dimensioner.
Förutom funktionerna för att bestämma LOD-områden och -nivåer på objektsidan av inställningsdialogen, erbjuder alternativ-sidan ytterligare möjligheter till anpassning.
Med alternativet Progressiv kan man till exempel se till att bytet mellan LOD-nivåer från underobjekt sker mjukare genom att de andra LOD-nivåerna förblir synliga. Alternativet Polygonisera objekt gör så att underobjekt som innehåller Deformerare också fungerar som LOD-nivå-objekt.