# Farbtabelle



## Grizzly (4. Apr 2004)

Hi,

ich habe folgendes Problem: Aus Spass an der Freude  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 (2. Jun 2004)

Mach eine eigene Klasse, welche von Color erbt, und erstelle eine Singleton-Instanz.


----------



## Grizzly (2. Jun 2004)

meez hat gesagt.:
			
		

> Mach eine eigene Klasse, welche von Color erbt, und erstelle eine Singleton-Instanz.


Muss ich mal überlegen... ???:L


----------

