Three.js - Shaders: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „== Einführung == === Was ist ein Shader? === Ein Shader ist die Basis von '''WebGL'''. Es ist ein Programm der in der '''Programmiersprach GLSL''' GLSL Progr…“)
 
Zeile 2: Zeile 2:
 
=== Was ist ein Shader? ===
 
=== Was ist ein Shader? ===
  
Ein Shader ist die Basis von '''WebGL'''. Es ist ein Programm der in der '''Programmiersprach GLSL''' GLSL Programme werden direkt '''an die GPU''' gesendet werden. Sie werden benutzt um jeden '''Vertex einer Geometrie zu positionieren und jedes sichtbares Fragment dieser Geometrie einzufärben'''. Das Ergebnis können wir als fertiges Rendering darstellen. Im Browser geht das über das Canvas Element. Aber auch native Programme oder Apps können Shader nutzen, hier geht es aber um den Einsatz von Shadern mit Three.js im Browser.
+
Ein Shader ist ein Programm der in der '''Programmiersprach GLSL''' GLSL Programme werden direkt '''an die GPU''' gesendet werden und können rasend schnell verarbeitet werden. Dies ist die Basis von '''WebGL'''.  
  
Man sagt '''Fragment statt Pixel''', denn die Fragments beziehen sich auf die kleinste Einheit beim Rendering und können sich am Ende von den dargestellten Pixeln auf dem Monitor unterscheiden. Man kann sie sich aber wie Pixel vorstellen.
+
Die Aufgabe des Shaders ist '''jeden Vertex einer Geometrie zu positionieren''' und '''jedes sichtbares Fragment dieser Geometrie einzufärben'''. Das Ergebnis ist ein fertiges Rendering das wir im Browser über das Canvas Element darstellen können. Die Pixel auf dem Monitor können sich von den Pixeln in einem Rendering unterscheiden. Deshalt nutzt man den Terminus '''Fragment''' statt Pixel. Die Fragments beziehen sich auf die kleinste Einheit beim Rendering und bilden quasi das Pendant zu Pixeln in der Renderwelt.
 +
 
 +
Shader sind nicht auf den Browser beschränkt. Auch native Programme oder Apps können Shader nutzen, hier geht es aber um den Einsatz von Shadern mit Three.js im Browser.
  
 
=== Vertex und Fragment Shader ===
 
=== Vertex und Fragment Shader ===

Version vom 1. Januar 2022, 09:51 Uhr

Einführung

Was ist ein Shader?

Ein Shader ist ein Programm der in der Programmiersprach GLSL GLSL Programme werden direkt an die GPU gesendet werden und können rasend schnell verarbeitet werden. Dies ist die Basis von WebGL.

Die Aufgabe des Shaders ist jeden Vertex einer Geometrie zu positionieren und jedes sichtbares Fragment dieser Geometrie einzufärben. Das Ergebnis ist ein fertiges Rendering das wir im Browser über das Canvas Element darstellen können. Die Pixel auf dem Monitor können sich von den Pixeln in einem Rendering unterscheiden. Deshalt nutzt man den Terminus Fragment statt Pixel. Die Fragments beziehen sich auf die kleinste Einheit beim Rendering und bilden quasi das Pendant zu Pixeln in der Renderwelt.

Shader sind nicht auf den Browser beschränkt. Auch native Programme oder Apps können Shader nutzen, hier geht es aber um den Einsatz von Shadern mit Three.js im Browser.

Vertex und Fragment Shader

Der Renderprozess nutzt 2 Arten von Shadern.

Der Vertex Shader verarbeitet alle Geometriedaten (Objekte, Kamera,...) und projiziert sie auf die 2D-Ebene des fertigen Renderbilds.

Der Fragment Shader färbt anschließend jedes sichtbare Fragment des Shaders ein.