Informatikunterricht

am Gymnasium Kirchenfeld

Benutzer-Werkzeuge

Webseiten-Werkzeuge


raytracing:texture

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
raytracing:texture [2014/11/23 18:17] rosraytracing:texture [2019/02/24 14:32] (aktuell) – gelöscht ros
Zeile 1: Zeile 1:
-====== Texturen ====== 
- 
-===== Grundlagen ===== 
- 
-Als **Textur** wird in der Computergrafik das Erscheinungsbild einer Oberfläche bezeichnet. Dabei wird versucht, der physikalische Vorgang der Ineraktion von Photonen mit Materialien nachzubilden. In der Physik werden die folgenden drei Phänomene unterschieden: 
- 
-  * **[[http://de.wikipedia.org/wiki/Absorption_%28Physik%29|Absorption]]**: Ein Teil des Lichts wird vom Material aufgenommen und in Wärme umgewandelt. 
-  * **[[http://de.wikipedia.org/wiki/Beugung_%28Physik%29|Beugung]]**: Das Ablenken des Lichts durch ein durchsichtiges Medium. Bei der Beugung oder Diffraktion werden Strahlen unterschiedlicher Wellenlänge unterschiedlich stark abgelenkt. 
-  * **[[http://de.wikipedia.org/wiki/Reflexion_%28Physik%29|Reflexion]]**: Die Lichtstrahlen werden zurückgeworfen. Es wird zwischen der **gerichteten Reflexion** von vielen benachbarten Lichtstrahlen in die gleiche Richtung und der ungerichteten **diffusen Reflexion** (auch [[http://de.wikipedia.org/wiki/Streuung_%28Physik%29|Streuung]]) unterschieden. 
- 
-===== Umsetzung in POV-ray ===== 
- 
-Diese vier Phänomene werden in der Computergrafik allgemein und auch in POV-ray durch entsprechende Konstrukte modelliert. 
- 
-==== Absorbtion ==== 
- 
-Die Absorbtion wird durch einen RGB-Wert bestimmt. Ein Wert von 0 bedeutet, dass das gesamte Licht dieses Spektrums absorbiert wird, 1 bedeutet, dass kein Licht in diesem Spektrum absorbiert wird. 
- 
-Beispielsweise bedeutet der folgende Code, dass das grüne und blaue Licht absorbiert wird. Somit erscheint der Körper rot: 
- 
-<code povray> 
-texture { 
-    pigment { color rgb <1, 0, 0> } 
-} 
-</code> 
- 
-Zusätzlich kann die Lichtdurchlässigkeit des Körpers mit ''transmit'' angegeben werden: 
- 
-<code povray> 
-texture { 
-    pigment { color rgb <1, 0, 0> transmit 0.5 } 
-} 
-</code> 
- 
-Ein Wert von 0 bedeutet, dass kein Licht durchgelassen wird, der Körper also solid erscheint. Ein Wert von 1 bedeutet vollständige Durchlässigkeit, der Körper ist unsichtbar. 
- 
-==== Beugung ==== 
- 
-Die Beugung wird simuliert, indem [[http://www.povray.org/documentation/3.7.0/r3_4.html#r3_4_4_4|virtuelle Photonen]] auf ein bestimmtes Objekt geschossen werden. 
- 
-Beugung und Lichtdurchlässige Objekte (Glas) werden später angeschaut. 
- 
-==== Reflexion ==== 
- 
-Im **''finish''**-Teil einer Textur wird die diffuse und gerichtete Reflexion festgelegt.  
- 
-Mit **''diffuse''** wird der Anteil des Lichts definiert, welches diffus reflektiert wird. Der Standardwert ist 0.6 (also 60%). Um eine spiegelnde Oberfläche zu erhalten, muss diffus auf einen Wert nahe bei 0 gesetzt werden. 
- 
-Die diffuse Reflexion hängt vom Winkel, mit welchem das Licht auf die Oberfläche trifft, ab. Bei einem flachen Winkel wird normalerweise weniger Licht diffus reflektiert. Dieses Verhalten kann mit dem **''brilliance''**-Wert beeinflusst werden. Ein höherer Wert bedeutet, dass bei flachem Einfallswinkel mehr Licht diffus reflektiert wird. Der Standardwert ist 1. Ein hoher Wert führt zu einem metallischen Aussehen der Oberfläche. 
- 
-<code povray> 
-texture { 
-    finish { 
-        diffuse 0.7 
-        brilliance 2 
-    } 
-} 
-</code> 
- 
-==== Glanzlichter ==== 
- 
-Als **Glanzlichter** werden die tupfenartigen Lichteffekte auf glatten Oberflächen bezeichnet. Physikalisch setzen sie sich aus einer Mischung aus diffuser und gerichteter Reflexion zusammen. Um einen solchen Effekt korrekt mit Raytracing zu berechnen, müsste die gerichtete Reflexion an tausenden mikroskopischer Flächen genau modelliert werden, was zu einem nicht realisierbaren Rechenaufwand führen würde. 
- 
-Ein einfaches Modell zur Erzeugung von Glanzlichtern entstammt dem [[http://de.wikipedia.org/wiki/Phong-Beleuchtungsmodell|Phong-Beleuchtungsmodell]]. Der **''phong''**-Wert zwischen 0 und 1 legt der Anteil der mikroskopischen Flächen fest, welche so ausgerichtet sind, dass sie das Licht in Richtung Kamera reflektieren. Ein höherer Phong-Wert erzeugt also ein helleres Glanzlicht. Die Grösse des Glanzlichts wird durch den Wert **''phong_size''** festgelegt, welcher standardmässig 40 beträgt. Eine grössere ''phong_size'' bedeutet eine rauhere Oberfläche. 
- 
-<code povray> 
-texture { 
-    finish { 
-        phong 0.6 
-        phong_size 20 
-    } 
-} 
-</code> 
- 
-===== Vordefinierte Texturen ===== 
- 
-POV-ray stellt auch einige vordefinierte Texturen zu Verfügung. Dazu muss die Datei ''textures.inc'' eingebunden werden: 
- 
-<code povray> 
-#include "textures.inc" 
- 
-sphere { 
-    <0, 0, 0>, 1 
-    texture { White_Marble } 
-} 
-</code> 
- 
-==== Steine ==== 
- 
-  * Jade 
-  * Red_Marble 
-  * White_Marble 
-  * Blood_Marble 
-  * Blue_Agate 
-  * Sapphire_Agate 
-  * Brown_Agate 
-  * Pink_Granite 
-  * PinkAlabaster 
- 
-==== Glas ==== 
- 
-  * Glass 
-  * Glass2 (Plexiglas) 
-  * Glass3 (Bleiglas) 
-  * Green_Glass 
-  * NBglass 
-  * NBoldglass 
-  * NBwinebottle 
-  * NBbeerbottle 
-  * Ruby_Glass 
-  * Dark_Green_Glass 
-  * Vicks_Bottle_Glass 
-  * Yellow_Glass 
-  * Orange_Glass 
-  
-==== Speziell ==== 
- 
-  * Candy_Cane 
-  * Y_Gradient 
-  * X_Gradient 
-  * Peel 
-  * Water 
-  * Cork 
-  * Lightening1 
-  * Lightening2 
-  * Starfield 
- 
-==== Holz ==== 
- 
-  * Cork 
-  * Cherry_Wood 
-  * Pine_Wood 
-  * Dark_Wood 
-  * Tan_Wood 
-  * White_Wood 
-  * Tom_Wood 
-  * DMFWood1 
-  * DMFWood2 
-  * DMFWood3 
-  * DMFWood4 
-  * DMFWood5 
-  * DMFLightOak 
-  * DMFDarkOak 
-  * DMFWood6 
-  * EMBWood1 
-  * Yellow_Pine 
-  * Rosewood 
-  * Sandalwood 
- 
-==== Metall ====  
- 
-  * Chrome_Metal 
-  * Brass_Metal 
-  * Bronze_Metal 
-  * Gold_Metal 
-  * Silver_Metal 
-  * Copper_Metal 
-  * Polished_Chrome 
-  * Polished_Brass 
-  * New_Brass 
-  * Spun_Brass 
-  * Brushed_Aluminum 
-  * Silver1 
-  * Silver2 
-  * Silver3 
-  * Brass_Valley 
-  * Rust 
-  * Rusty_Iron 
-  * Soft_Silver 
-  * New_Penny 
-  * Tinny_Brass 
-  * Gold_Nugget 
-  * Aluminum 
-  * Bright_Bronze 
-  
-==== Himmel und Wolken ==== 
- 
-  * Blue_Sky 
-  * Bright_Blue_Sky 
-  * Blue_Sky2 
-  * Blue_Sky3 
-  * Blood_Sky 
-  * Apocalypse 
-  * Clouds 
-  * FBM_Clouds 
-  * Shadow_Clouds 
  
raytracing/texture.1416763056.txt.gz · Zuletzt geändert: 2020/10/13 14:25 (Externe Bearbeitung)