Vilka är de bästa tipsen för OpenGL®-färger?

På ytan, och i många grundläggande applikationer, verkar OpenGL®-färger vara mycket enkla att använda. Det finns situationer och subtiliteter i renderaren som ibland kan förbises, men som orsakar oväntade resultat i en scen. Dessa kan orsakas av färgdjupet eller hårdvaruinställningar. Andra gånger kan enkla saker som skuggningsläget förbises och resultatet av en rendering blir oväntat. Slutligen kan de mer komplexa mekanismerna som fungerar på OpenGL®-färger, såsom belysning och material, drastiskt påverka hur det slutliga resultatet ser ut.

En sak att vara säker på i ett program som använder OpenGL® är att alla korrekta variabler är inställda. Detta innebär att se till att skuggningsläget är inställt på platt eller jämnt efter behov innan rendering. Ordningen på färgerna bör också ställas in på det förväntade värdet. Även om nästan alla program använder en röd, grön och blå (RGB) ordning, finns det bildformat och andra faktorer där det kan vara lättare att vända ordningen och använda en blå, grön och röd (BGR) modell.

En ibland förbisedd, och ibland svår, del av OpenGL®-färger är färgdjupet. Även om ett program under utveckling kan skapas för att använda färgdjupet på utvecklingssystemmonitorn, kanske djupet på en annan användares monitor inte är detsamma. Detta innebär att om ett program utvecklas med ett 24-bitars färgdjup och körs på ett system med ett 16-bitars färgdjup eller en indexerad färgmodell, kommer scenen inte att återges korrekt och det kan verka som att programmet inte arbete. Att etablera och justera för det tillgängliga färgdjupet kan undvika denna typ av frustration.

Två områden med OpenGL®-färger som har ett brett spektrum av nyanser som kan ge oönskade resultat är ljus- och materialsystemen. När du använder belysning är det viktigt att ta hänsyn till hur ljuset kommer att interagera med ett objekt och den potentiella färgen på ett ljus, om det är definierat. Med felaktig placering och inställningar kan en ljuskälla tvätta bort färger eller ändra deras utseende. Experiment kan vara det enda sättet att hitta den korrekta balansen mellan att bevara atmosfären i en scen och att återge färgerna korrekt.

Materialsystemet kan helt ändra OpenGL®-färger på ytan av ett föremål. Att ställa in de omgivande, diffusa eller spegelvärdena för högt kan resultera i att objekt blir helt vita, medan andra inställningar kan göra objekt svarta eller osynliga. Inställningarna på ljuskällan för en scen kan också komplicera materialsystemet. När du använder material kan många problem undvikas genom att veta i detalj vad varje attribut gör.

Slutligen kan det vara viktigt att förstå alfakanalen som används i OpenGL®-färger. Detta är ett fjärde värde utöver RGB-värdena för en färg som bestämmer genomskinligheten för ett objekt. Många programmerare blir frustrerade när de försöker ställa in alfavärdet för att göra ett genomskinligt objekt, bara för att mycket senare upptäcka att den diffusa attributfärgen uteslutande används för att bestämma alfavärdet för ett helt objekt. Ritordningen för objekten, oavsett senare transformationer, avgör också hur alfavärdet fungerar. Detta innebär att objekt som är genomskinliga och sedan transformeras till en position framför ett objekt som ritas senare inte kommer att visa objektet bakom det på grund av renderingsordningen.