Farbtabelle

Status
Nicht offen für weitere Antworten.

Grizzly

Top Contributor
Hi,

ich habe folgendes Problem: Aus Spass an der Freude :D habe ich mir eine 3D Engine (ohne Java3D, ähnliche wie D**m) programmiert. Funktioniert alles wunderbar. Bloss hab ich ein Problem: Für das Shading werden beim jedem Renderzyklus die Farben der Oberflächen der Körper berechnet und dann zum Zeichnen gesetzt und verwendet.

In den meisten Programmiersprachen wie bspw. C, C++ oder Pascal ist das ja auch kein Problem: Einfach Farbe setzen und fertig. In Java bedeutet dies aber, das ich jedesmal ein Color-Objekt erstellen und danach wieder wegwerfen muss. Dieses Neuanlegen und wieder zerstören kostet aber jede Menge Performance :cry: .

Momentan löse ich das Problem indem ich mir eine kleine Farbtabelle in einem 3 dimensionale Array (eine Dimension jeweils für Rot, Grün und Blau) ablegen. Dort speichere ich bspw. jeden 16ten Farbton. Dann hätte ich am Ende 4096 (+ 1 für Schwarz) Farben in der Tabelle. Würde ich das jedoch für jeden Farbton machen, müsste ich 16,7 Mio. Color-Objekte in einem ebenso großen Array unterbringen. Dies kostet natürlich viel zu viel Speicher :cry: .



Habt Ihr irgendwelche Ideen? Hatte jemand von Euch schon mal ein ähnliches Problem?
 

meez

Top Contributor
Mach eine eigene Klasse, welche von Color erbt, und erstelle eine Singleton-Instanz.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben