Mittwoch, 14. Mai 2014

LuxRender - kostenloser 3D-Renderer auch für kommerziellen Einsatz

Interessant für Kreative, die mit 3d-Programmen arbeiten. DAZ-Studio, Blender, Poser, C4D, Carrara, 3DS Max oder Sketchup: ein isoliertes Render-Programm, offen, frei und läuft auf allen Plattformen:




Aus der Homepage:

LuxRender is a physically based and unbiased rendering engine. Based on state of the art algorithms, LuxRender simulates the flow of light according to physical equations, thus producing realistic images of photographic quality.

LuxRender is free software - both for personal and commercial use - and is licensed under the GPL.

Und das sagt Wikipedia über Luxrender



LuxRender

aus Wikipedia, der freien Enzyklopädie
LuxRender
LuxRender Logo
Entwickler Terrence Vergauwen, Jean-Francois Romang, David Bucciarelli, Jean-Philippe Grimaldi, Ricardo Lipas Augusto, Asbjorn Heid und andere [1]
Aktuelle Version 1.3.1[2]
(6. November 2013)
Betriebssystem Windows, Linux, Mac OS X
Programmier­sprache C++
Kategorie Computergrafik
Lizenz GPL (Freie Software)
www.luxrender.net
LuxRender ist eine freie Renderengine, die physikalisch korrekte Bilder erstellen kann. Es existieren Exporter für Blender, Cinema 4D, Softimage bzw. XSI und Maya. Es wird als freie Software unter Version 3 der GNU General Public License (GPL) verbreitet.

Überblick

LuxRender ist ein alleinstehender 3D-Renderer und bringt daher nicht die Möglichkeit mit, Szenen im Programm selbst zu erstellen. Zu rendernde Inhalte werden mit anderen 3D-Grafikprogrammen erstellt und dann mit einem der verfügbaren Exporter[3] in das LuxRender-Format umgewandelt.

Entstehung

LuxRender gründet sich auf PBRT, einem physikbasiertem Raytracing-Programm. Trotz seiner großen Fähigkeiten und guten Struktur ist PBRT auf akademischen Einsatz ausgerichtet und daher nicht leicht für die Erstellung digitaler Kunst zugänglich. Da PBRT unter der GPL lizenziert ist, war es möglich, ein eigenes Projekt mit dem Code von PBRT als Ausgangsbasis zu starten. Mit dem Segen der ursprünglichen Autoren unternahm eine kleine Gruppe von Programmierern im September 2007 diesen Schritt. Das neue Programm wurde LuxRender genannt und sollte für den künstlerischen Gebrauch geschrieben sein. Seit seiner Anfangsphase hat es das Interesse verschiedener Programmierer weltweit auf sich gezogen.
Neuere Entwicklungen tendieren dazu OpenCL zu integrieren um die Hardware neuer Rechensysteme besser ausreizen zu können. Aufbauend auf der Idee hinter smallptGPU, einem Raytracer der vollständig in OpenCL implementiert ist, nutzen erste experimentelle Versionen von LuxRender ebenfalls OpenCL um die Berechnung der Kollisionen der „Strahlen“ mit der Geometrie zu beschleunigen. Von einer vollständigen Implementierung in OpenCL wurde bisher abgesehen, da der Code des Renderers zu komplex sei, um ihn auf der beschränkten Architektur hinter OpenCL lauffähig machen zu können. Dies hat aber durchaus auch den Vorteil, dass sowohl GPU als auch CPU zum Ergebnis beitragen können.[4]

Funktionalität


Einsatz von Lichtgruppen zur Komposition des gewünschten Ergebnisses
Einige der Merkmale von LuxRender sind:[5]
  • biased und unbiased rendering: Benutzer können zwischen physikalischer Genauigkeit (unbiased) und Rendergeschwindigkeit (biased) wählen.
  • Unterstützung des vollen Lichtspektrums: Anstatt des RGB-Farbraums wird intern mit Wellenlängen gerechnet.
  • hierarchisches prozedurales und bildbasiertes Texturensystem, in dem beide Texturtypen auf vielfältige Weise kombiniert werden können um komplexe Materialien zu erstellen.
  • Subdivision Surfaces und Displacement Mapping: Ausgehend von prozeduralen oder Bildtexturen können Oberflächen verändert bzw. verfeinert werden.
  • Netzwerk-Rendering: Die Renderzeit kann durch Parallelnutzung verschiedener Computer verringert werden.
  • drei verschiedene Kameratypen
  • HDR-Ausgabe: Renderergebnisse können in verschiedenen Dateiformaten gespeichert werden, darunter .png, .tga und .exr.
  • Lichtgruppen (Light Groups) können genutzt werden um die Beleuchtung durch einzelne oder zusammengefasste Lichtquellen zu ändern. Damit ist es möglich bereits gerenderte Bilder nachträglich so zu modifizieren, als wenn sie unter anderen Lichtbedingungen entstanden wären. Lichtquellen können dabei sowohl im Farbton als auch in der Intensität, mit der sie zum Gesamtergebnis beitragen, geändert werden.

Und wer sich über das Rendern oder Raytracing allgemein interessiert: hier der entsprechende Artikel in Wikipedia: "Bildsynthese" (Rendering, Rendern)

Bildsynthese

aus Wikipedia, der freien Enzyklopädie
Mit verschiedenen Methoden gerenderte 3D-Szene

Bildsynthese oder rendern (dt.: berechnen) bezeichnet in der Computergrafik die Erzeugung eines Bildes aus Rohdaten (auch Szene genannt). Eine Szene ist ein virtuelles räumliches Modell, das Objekte und deren Materialeigenschaften, Lichtquellen, sowie die Position und Blickrichtung eines Betrachters definiert. Computerprogramme zum Rendern von Bildern werden Renderer genannt.
Beim Rendern müssen üblicherweise folgende Aufgaben gelöst werden:
  • die Ermittlung der vom virtuellen Betrachter aus sichtbaren Objekte (Verdeckungsberechnung)
  • die Simulation des Aussehens von Oberflächen, beeinflusst durch deren Materialeigenschaften (Shading)
  • die Berechnung der Lichtverteilung innerhalb der Szene, die sich unter anderem durch die indirekte Beleuchtung zwischen Körpern äußert.
Daneben erfordert die Erzeugung von Computeranimationen einige zusätzliche Techniken. Ein wichtiger Einsatzbereich ist die interaktive Synthese von Bildern in Echtzeit, bei der meist Hardwarebeschleunigung zum Einsatz kommt. Bei der realistischen Bildsynthese hingegen wird auf hohe Bildqualität oder physikalische Korrektheit Wert gelegt, während die benötigte Rechenzeit eine untergeordnete Rolle spielt.
Ein gerendertes Bild mit Reflexions- und Schärfentiefeneffekten

Echtzeitrendern

Beim Echtzeitrendern wird eine Reihe von Bildern schnell berechnet und die zugrundeliegende Szene vom Anwender interaktiv verändert. Die Berechnung erfolgt ausreichend schnell, dass die Bildfolge als dynamischer Prozess empfunden wird. Ab einer Bildfrequenz von etwa 6 fps ist eine interaktive Benutzung möglich, bei 15 fps lässt sich mit Sicherheit von Echtzeit sprechen.[1] Auf modernen Computern wird das Echtzeitrendern durch Hardwarebeschleunigung mittels Grafikkarten unterstützt. Mit wenigen Ausnahmen unterstützt Grafikhardware nur Punkte, Linien und Dreiecke als grafische Grundobjekte.[2]

Grafikpipeline

Hauptartikel: Grafikpipeline
Beim Echtzeitrendern beschreibt die Grafikpipeline den Weg von der Szene bis zum fertigen Bild. Es handelt sich um eine Modellvorstellung, die je nach System variieren kann. Die Grafikpipeline ist oftmals in Teilen ähnlich wie Prozessorpipelines implementiert, bei denen Berechnungen parallel ausgeführt werden. Eine Grafikpipeline kann in drei große Schritte aufgeteilt werden: Anwendung, Geometrie und Rasterung.[3]
Der Anwendungsschritt nimmt alle Änderungen an der Szene vor, die vom Anwender im Rahmen der Interaktion festgelegt werden, und gibt sie an den nächsten Schritt der Pipeline weiter. Daneben kommen hier Techniken wie Kollisionserkennung, Animation, Morphing und Beschleunigungsverfahren mittels räumlicher Unterteilungsschemata zum Einsatz.
Darstellung einer Szene mit virtuellem Betrachter und Sichtvolumen (hellgrau), das von den beiden Clippingebenen begrenzt wird. Das Sichtvolumen wird im Zuge der Projektion in einen Würfel transformiert, sodass nähere Objekte größer als weiter entfernte erscheinen.
Der Geometrieschritt übernimmt einen Großteil der Operationen mit den Vertices, den Eckpunkten der Grundobjekte. Er lässt sich in verschiedene Unterschritte aufteilen, die nacheinander Transformationen in verschiedene Koordinatensysteme vornehmen. Um die perspektivische Abbildung zu vereinfachen, arbeiten fast alle geometrischen Operationen des Geometrieschrittes mit homogenen Koordinaten. Dabei werden Punkte durch vier Koordinaten und Transformationen durch 4×4-Matrizen definiert.
Zunächst werden alle Grundobjekte der Szene so transformiert, dass der virtuelle Beobachter entlang der z- (Tiefen-)achse blickt. Falls die Szene Lichtquellen enthält, wird für jeden Vertex anhand der Materialeigenschaften des entsprechenden Dreiecks eine Farbe berechnet. Das vom Betrachter aus sichtbare Volumen der Szene ist ein Pyramidenstumpf (Frustum). Im nächsten Schritt wird dieses Frustum in einen Würfel transformiert, was einer Zentralprojektion entspricht. Teilweise oder vollständig außerhalb des Sichtvolumens liegende Grundobjekte werden mittels Clipping- und Culling-Techniken beschnitten oder entfernt. Schließlich wird eine Transformation angewandt, die die Vertex-Koordinaten an den gewünschten Zeichenbereich des Bildschirms verschiebt. Die z-Koordinaten bleiben dabei weiter erhalten, da sie für die spätere Verdeckungsberechnung benötigt werden.
Im Rasterungsschritt werden alle verbleibenden, projizierten Grundobjekte gerastert, indem die zu ihnen gehörenden Pixel eingefärbt werden. Da bei überlappenden Dreiecken nur die sichtbaren Teile angezeigt werden sollen, wird ein Z-Buffer verwendet, der die Verdeckungsberechnung übernimmt.

Grafik-APIs

Zur Ansteuerung von Grafikpipelines werden üblicherweise Grafik-APIs verwendet, die die Grafikhardware abstrahieren und dem Programmierer viele Aufgaben abnehmen. Wesentlich zur Entwicklung des Echtzeitrenderns hat der ursprünglich von Silicon Graphics eingeführte Standard OpenGL beigetragen. Die aktuellen Neuerungen von OpenGL und Microsofts DirectX finden hauptsächlich in modernen Computerspielen ihre Anwendung. Außer DirectX und OpenGL gab es noch andere Ansätze, wie zum Beispiel Glide, die sich allerdings nicht durchsetzen konnten. Im professionellen Bereich hat OpenGL große Bedeutung. DirectX ist hingegen stark auf die Entwicklung von Spielen optimiert. DirectX ist eine proprietäre Software, die nur unter Microsoft Windows verfügbar ist; sie ist kein offener Standard.

Historische Techniken

Siehe auch Geschichte der Computergrafik
Die erste interaktive Technik zur Verdeckungsberechnung wurde 1969 von Schumacker und anderen veröffentlicht.[4] Schumackers Algorithmus[5] diente der Flugsimulation für die US-Streitkräfte, eine Anwendung, bei der stets massiv in Grafikhardware investiert wurde.
In der Frühzeit der Computerspiele mit interaktiver 3D-Grafik wurden alle rechenaufwändigen Grafikoperationen noch vom Hauptprozessor des Rechners übernommen. Daher konnten nur sehr einfache und eingeschränkte Renderverfahren genutzt werden. Der Ego-Shooter Wolfenstein 3D (1992) etwa verwendete zur Verdeckungsberechnung Raycasting, womit sich nur eine festgelegte Höhendimension und rechtwinklig aneinander grenzende Räume darstellen ließen. Doom kombinierte Raycasting mit zweidimensionalem Binary Space Partitioning, um die Effizienz zusätzlich zu steigern und komplexere Szenen rendern zu können.

Shading und direkte Beleuchtung

Als Shading (dt.: Schattierung) wird allgemein die Berechnung der Farben an Oberflächen anhand der zugehörigen Materialeigenschaften und dem direkt von den Lichtquellen eintreffenden Licht bezeichnet. Das Shading kommt sowohl beim Echtzeitrendern als auch beim realistischen Rendern zum Einsatz. Die indirekte Beleuchtung von anderen Oberflächen bleibt dabei zunächst unberücksichtigt. Einen Spezialfall stellen nichtfotorealistische Shading-Techniken (Non-photorealistic Rendering) dar, bei denen zum Beispiel aus ästhetischen Gründen Verfremdungen erzeugt werden, etwa Cel Shading für comicähnliche Bilder.

Lichtquellen und Schatten

Bei der Modellierung sind verschiedene, oft physikalisch nicht korrekte Arten von Lichtquellen üblich. Directional Lights senden parallele Lichtstrahlen ohne Abschwächung in eine bestimmte Richtung, Punktlichtquellen emittieren Licht in alle Richtungen, und Spot Lights emittieren Licht nur in einem kegelförmigen Bereich. In Wirklichkeit besitzen Lichter eine bestimmte Fläche; die Lichtintensität nimmt quadratisch mit der Entfernung ab. Dies wird bei der realistischen Bildsynthese berücksichtigt, während beim Echtzeitrendern meistens nur einfache Lichtquellen verwendet werden.
Schatten sind ein wichtiges Element von Computergrafiken, da sie dem Anwender Rückschlüsse über die Platzierung von Objekten im Raum geben. Weil Lichtquellen eine bestimmte Größe haben, wirken Schatten in Wirklichkeit mehr oder weniger verschwommen. Dies wird bei realistischen Renderverfahren berücksichtigt.

Lokale Beleuchtungsmodelle

Lichtreflexion auf einer lambertschen (ideal diffusen), einer weniger rauen (glänzenden) und einer glatten (spiegelnden) Oberfläche
Lokale Beleuchtungsmodelle beschreiben das Verhalten von Licht auf Oberflächen. Wenn ein Lichtteilchen auf einen Körper trifft, wird es entweder reflektiert, absorbiert oder – außer bei Metallen – ins Innere des Körpers gebrochen. Nur auf ganz glatten Oberflächen wird eintreffendes Licht gespiegelt; bei nichtmetallischen Körpern wird der relative Anteil des reflektierten und gebrochenen Lichtes durch die fresnelschen Formeln beschrieben.
Mikroskopische Unebenheiten führen dazu, dass das Licht nicht gespiegelt wird, sondern mit einer bestimmten Wahrscheinlichkeit in eine davon abweichende Richtung reflektiert wird. Die Wahrscheinlichkeitsverteilung, die dieses Verhalten für ein Material beschreibt, wird bidirektionale Reflektanzverteilungsfunktion (BRDF) genannt. Lokale Beleuchtungsmodelle sind meist parametrierbare BRDFs. Ideal diffuse Oberflächen lassen beispielsweise mit dem lambertschen Gesetz und glänzende Oberflächen mit den Phong-Beleuchtungsmodell simulieren. Beim Echtzeitrendern wird oft eine Kombination aus einem diffusen, einem glänzenden und einem konstanten Faktor verwendet. Für die realistische Bildsynthese wurden weitere, physikalisch plausiblere Modelle entwickelt.
Die BRDF geht davon aus, dass das an einem Punkt der Oberfläche eintreffende Licht auch genau dort wieder austritt. In Wirklichkeit streuen nichtmetallische Körper Licht in ihrem Inneren, wodurch sich ein weicheres Erscheinungsbild ergibt. Die Simulation dieser Volumenstreuung ist vor allem für die realistische Bildsynthese von Bedeutung.

Interpoliertes Shading

Eine Kugel, links mit Flat Shading, rechts mit Gouraud Shading gerendert
Beim Echtzeitrendern gibt es drei übliche Methoden, um die Beleuchtung eines Dreiecks zu berechnen. Beim Flat Shading wird die Farbe für ein Dreieck berechnet und das gesamte Dreieck mit dieser Farbe gefüllt. Dadurch werden die Facetten, aus denen sich das Modell zusammensetzt, deutlich sichtbar. Das von den meisten Grafikkarten unterstützte Gouraud Shading hingegen bestimmt die Farbe an jedem Eckpunkt eines Dreiecks, sodass bei der Rasterung zwischen diesen Farbwerten interpoliert wird und sich ein weicheres Erscheinungsbild als beim Flat Shading ergibt. Beim Phong Shading ist zusammen mit jedem Vertex die Normale an diesem Vertex verfügbar. Bei der Rasterung wird zwischen den Normalen interpoliert und das lokale Beleuchtungsmodell entsprechend dieser Normalen berechnet. Dieses Verfahren vermeidet einige Darstellungsprobleme des Gouraud Shading.

Mapping-Techniken

Kugeln mit verschiedenen prozeduralen Texturen
Bump Mapping zur Simulation von Oberflächenunebenheiten, in der Mitte die verwendete Bump Map
Im Normalfall werden lokale Beleuchtungsmodelle einheitlich auf ein gesamtes Objekt angewandt. Mapping-Techniken dienen der Simulation von Oberflächendetails aufgrund von Farb- oder Strukturvariationen. Dabei werden die Material- oder Geometrieeigenschaften an jedem Punkt der Oberfläche anhand einer Funktion oder Rastergrafik variiert. Viele Mapping-Techniken werden auch von Grafikhardware unterstützt. Neben den im Folgenden aufgeführten Verfahren wurden viele weitere Mapping-Techniken entwickelt.
  • Texture Mapping ist die älteste Mapping-Technik und dient dazu, ein zweidimensionales Bild (Textur) auf einer Oberfläche abzubilden oder sie damit zu „bekleben“. Neben Rastergrafiken werden auch prozedurale Texturen verwendet, bei denen die Farbe an einem Punkt durch eine mathematische Funktion bestimmt wird. Bei der Bestimmung eines Farbwertes sind verschiedene Filtermethoden möglich. Auf Grafikhardware ist Mip Mapping gebräuchlich, bei dem aus Effizienzgründen die Textur in verschiedenen Bildauflösungen vorliegt.
  • Bump Mapping dient der Simulation von Oberflächenunebenheiten. Dabei werden die tatsächlichen Normalenvektoren an der Oberfläche durch eine Bump Map gestört. Die Geometrie eines Objekts wird dadurch allerdings nicht beeinflusst.
  • Displacement Mapping dient ebenfalls der Simulation von Oberflächenunebenheiten, im Gegensatz zu Bump Mapping wird jedoch die Oberflächengeometrie tatsächlich verändert. Da dafür meist nicht ausreichend Vertices zur Verfügung stehen, werden zusätzliche Oberflächenpunkte eingefügt, die entsprechend eines Höhenfeldes verschoben werden.
  • Environment Mapping oder Reflection Mapping dient der Simulation von Spiegelungseffekten beim Echtzeitrendern. Dazu wird vom Betrachter ein Strahl zum reflektierenden Objekt ausgesendet und reflektiert. Im Gegensatz zum Raytracing (siehe unten) wird nicht der Schnittpunkt des reflektierten Strahls mit der am nächsten liegenden Oberfläche berechnet. Stattdessen wird anhand der Richtung des Strahls der Farbwert aus einem vorausberechneten Bild der Szene ermittelt.

Realistisches Rendern und globale Beleuchtung

Wie realistisch ein gerendertes Bild wirkt, hängt maßgeblich davon ab, inwieweit die Verteilung des Lichts innerhalb der Szene berechnet wurde. Während beim Shading nur die direkte Beleuchtung berechnet wird, spielt bei der indirekten Beleuchtung die Reflexion von Licht zwischen Objekten eine Rolle. Dadurch werden Effekte wie Räume, die nur durch einen schmalen Lichtspalt insgesamt erhellt werden, möglich. Die Lichtpfadnotation wird dazu verwendet, um die Fähigkeiten eines Renderalgorithmus bezüglich der Simulation der Beleuchtung anzugeben. Werden alle Arten der Lichtreflexion berücksichtigt, so spricht man von globaler Beleuchtung. Sie muss für ein realistisches Ergebnis berücksichtigt werden und ist bei Echtzeitverfahren nicht oder nur sehr eingeschränkt möglich.
Mathematisch wird die globale Beleuchtung durch die Rendergleichung beschrieben, die anhand von radiometrischen Größen angibt, wie viel Licht einen Oberflächenpunkt von einem anderen Oberflächenpunkt aus nach einer Reflexion erreicht. Die Rendergleichung lässt sich mit Raytracing, für Spezialfälle auch mit Radiosity berechnen. Neben diesen beiden großen Techniken zur realistischen Bildsynthese werden, vor allem in der Filmtechnik, Varianten des REYES-Systems verwendet.

Raytracing

Mit Raytracing berechnetes Bild. Lichtspiegelungen und -brechungen sind mit Raytracing vergleichsweise einfach möglich.
Raytracing ist in erster Linie ein Algorithmus zur Verdeckungsberechnung, der auf der perspektivischen Aussendung von Strahlen vom Beobachter aus basiert. Jeder Strahl wird gegen alle Grundobjekte auf einen Schnittpunkt getestet und gegebenenfalls die Entfernung zu diesen Objekten berechnet. Das sichtbare Objekt ist dasjenige mit der geringsten Entfernung. In erweiterten Formen kann Raytracing auch Lichtreflexionen und -brechungen simulieren.
Um die globale Beleuchtung mittels Raytracing zu berechnen, muss die an diesem Pixel eintreffende „Lichtstärke“ mit Hilfe der Rendergleichung ermittelt werden. Dies geschieht mittels einer Monte-Carlo-Simulation, bei der viele Lichtstrahlen zufällig an den Oberflächen ausgesandt werden. Derartige Raytracing-Techniken nennt man Monte-Carlo-Raytracing; das einfachste dieser Verfahren ist Path Tracing. Diese Algorithmen sind vergleichsweise zeitaufwändig, bei Szenen mit komplizierten Lichtverhältnissen und unterschiedlichen Materialien jedoch die einzige Möglichkeit. Bei geeigneter Implementierung liefern sie außerdem erwartungstreue Bilder. Das bedeutet, dass das Bildrauschen die einzige Abweichung zur korrekten, vollständig konvergierten Lösung darstellt. Photon Mapping wird dazu eingesetzt, die Berechnung der Lichtverteilung mittels Raytracing zu beschleunigen, kann aber zu sichtbaren Bildfehlern (Artefakten) führen.

Radiosity

Eine mit Radiosity gerenderte Szene mit direkt und indirekt beleuchteten, ideal diffusen Flächen
Der Radiosity-Algorithmus ist in seiner Grundform nur auf ideal diffuse Flächen anwendbar und basiert auf der Unterteilung der Oberflächen in kleine Teilflächen (Patches). Unter diesen Voraussetzungen lässt sich mit den Rendergleichungen für jeden Patch ein lineares Gleichungssystem aufstellen, das numerisch gelöst wird; Radiosity gehört damit zu den Finite-Elemente-Methoden. Radiosity lässt sich zwar auf beliebige Materialien erweitern, die Präzision ist jedoch durch die Zahl der Patches und die resultierenden Speicheranforderungen begrenzt. Ein Vorteil gegenüber Raytracing ist, dass die Lichtverteilung blickpunktunabhängig berechnet wird und die Verdeckungsberechnung nicht Teil des eigentlichen Radiosity-Algorithmus ist. Dadurch eignet sich Radiosity besonders zum Rendern statischer oder wenig animierter Szenen in Echtzeit, sofern eine zeitaufwändige Vorausberechnung vertretbar ist.

Volumengrafik

Mit den Mitteln der Volumengrafik gerendertes Bild eines Schädels
Bei der Volumengrafik werden die zu rendernden Objekte nicht als Oberflächen beschrieben, sondern als räumliche Datensätze in Form von Voxelgittern. Voxelgitter enthalten gitterförmig angeordnete Werte, die die „Dichte“ eines Objektes beschreiben. Diese Form der Datenrepräsentation ist besonders geeignet für Objekte, die keine klaren Umrisse haben, etwa Wolken. Zum Rendern von Voxelgittern sind besondere Techniken erforderlich. Da zahlreiche bildgebende Verfahren Voxeldaten erzeugen, ist die Volumengrafik auch für die Medizin von Bedeutung.

Literatur

  • Tomas Akenine-Möller, Eric Haines: Real-Time Rendering. AK Peters, Natick, Mass. 2002, ISBN 15-6881-182-9 (Webseite)
  • Philip Dutré u. a.: Advanced Global Illumination. AK Peters, Natick, Mass. 2003, ISBN 15-6881-177-2 (Webseite
     
    )
  • Andrew Glassner: Principles of Digital Image Synthesis. Morgan Kaufmann, London 1995, ISBN 15-5860-276-3
  • Matt Pharr, Greg Humphreys: Physically Based Rendering. From Theory to Implementation. Morgan Kaufmann, London 2004, ISBN 01-2553-180-X (Webseite)
  • Ian Stephenson: Production Rendering: Design and Implementation. Springer, London 2005, ISBN 1-85233-821-0
  • Alan Watt: 3D Computer Graphics. Addison-Wesley, Harlow 2000, ISBN 0-201-39855-9

Weblinks

 Commons: 3D-Computergrafiken – Album mit Bildern, Videos und Audiodateien

Einzelnachweise

  1. Tomas Akenine-Möller, Eric Haines: Real-Time Rendering, S. 1
  2. Tomas Akenine-Möller, Eric Haines: Real-Time Rendering, S. 7
  3. Tomas Akenine-Möller, Eric Haines: Real-Time Rendering, S. 11
  4. Ivan Sutherland u. a.: A Characterization of Ten Hidden-Surface Algorithms. ACM Computing Surveys (CSUR) 6, 1 (March 1974): 1–55, hier S. 23, ISSN 0360-0300
  5. R. A. Schumaker u. a.: Study for Applying Computer-Generated Images to Visual Simulation. AFHRL-TR-69-14. US Air Force Human Resources Laboratory, 1969

  © Blogger template 'Fly Away' by Ourblogtemplates.com 2008

Back to TOP