CARL      VONOSSIETZKY            Toon Shading            Johannes Diemke            ¨            Ubung im Modul OpenGL mi...
Toon ShadingGrundlagen   Gelegentlich auch Cel Shading genannt   Verfahren zum nicht-fotorealistischen Rendern   Imitiert ...
Toon ShadingThe Legend of Zelda: The Wind Waker   Johannes Diemke     OpenGL mit Java   WiSe 2010 / 2011   3/12
Toon ShadingTeam Fortress 2 (Toon Shading Mod)   Johannes Diemke     OpenGL mit Java   WiSe 2010 / 2011   4/12
Toon ShadingUmsetzung   Mehrere alternative Vorgehensweisen         Von trivial bis anspruchsvoll         Trade-off zwische...
Toon ShadingSchritt 1: Zeichnen der Back-Faces      Zeichnen der Back-Faces      Verwendung von fetten schwarzen Linien// ...
Toon ShadingSchritt 2: Berechnung des Shading     Beleuchtungsberechnung wie bei diffuser Komponente     Danach Abbildung a...
Toon ShadingSchritt 2: Berechnung des Shading (Forts.)     Vertex-Shader           Transformiert Vertex in den Clipspace  ...
Toon ShadingSchritt 2: Berechnung des Shading (Forts.)     Fragment-Shader           Pro-Fragment-Berechnung des Shading  ...
Toon ShadingSchritt 2: Berechnung des Shading (Forts.)     Fragment-Shader (Forts.)           Abbildung auf wenige Schatti...
Literatur Dave Shreiner OpenGL Programming Guide http://www.opengl-redbook.com/ Richard S. Wright, Benjamin Lipchak und Ni...
Literatur Edward Angel Interactive Computer Graphics http://www.cs.unm.edu/˜angel/ Gerald Farin und Dianne Hansford Practi...
Nächste SlideShare
Wird geladen in …5
×

2010-JOGL-11-Toon-Shading

790 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie, Kunst & Fotos
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
790
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
4
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

2010-JOGL-11-Toon-Shading

  1. 1. CARL VONOSSIETZKY Toon Shading Johannes Diemke ¨ Ubung im Modul OpenGL mit Java Wintersemester 2010/2011
  2. 2. Toon ShadingGrundlagen Gelegentlich auch Cel Shading genannt Verfahren zum nicht-fotorealistischen Rendern Imitiert Zeichenstil von Comics Charakteristika Fette Außenlinien Wenige Schattierungsstufen Verwendung in Zeichentrickfilmen und Computerspielen Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 2/12
  3. 3. Toon ShadingThe Legend of Zelda: The Wind Waker Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 3/12
  4. 4. Toon ShadingTeam Fortress 2 (Toon Shading Mod) Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 4/12
  5. 5. Toon ShadingUmsetzung Mehrere alternative Vorgehensweisen Von trivial bis anspruchsvoll Trade-off zwischen Komplexit¨t und visueller Qualit¨t a a Ein m¨gliches Vorgehen o 1 Zeichnen der Back-Faces mit fetten Linien 2 Berechnung des Shading Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 5/12
  6. 6. Toon ShadingSchritt 1: Zeichnen der Back-Faces Zeichnen der Back-Faces Verwendung von fetten schwarzen Linien// setupgl.glEnable(GL2.GL_CULL_FACE);...// first renderpassgl.glLineWidth(3.0f);gl.glColor3f(0.0f, 0.0f, 0.0f);// render back faces using linesgl.glFrontFace(GL2.GL_CW);gl.glPolygonMode(GL2.GL_FRONT, GL2.GL_LINE);// render objectdeathstar.draw(gl); Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 6/12
  7. 7. Toon ShadingSchritt 2: Berechnung des Shading Beleuchtungsberechnung wie bei diffuser Komponente Danach Abbildung auf wenige Schattierungsstufen Umsetzung mittels eines Shader-Programms// second renderpass// render front faces using a shadergl.glFrontFace(GL2.GL_CCW);gl.glPolygonMode(GL2.GL_FRONT, GL2.GL_FILL);shader.activate(gl);// render objectdeathstar.draw(gl);shader.deactivate(gl); Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 7/12
  8. 8. Toon ShadingSchritt 2: Berechnung des Shading (Forts.) Vertex-Shader Transformiert Vertex in den Clipspace Berechnet Eyespace-Normale ¨ Ubergibt Eyespace-Normale an den Fragment-Shadervarying vec3 eyeSpaceNormal;void main() { eyeSpaceNormal = gl_NormalMatrix * gl_Normal; gl_Position = ftransform();} Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 8/12
  9. 9. Toon ShadingSchritt 2: Berechnung des Shading (Forts.) Fragment-Shader Pro-Fragment-Berechnung des Shading Beleuchtungsberechnung wie bei diffuser Komponente Berechnet Kosinus des Winkels zwischen Normale und Lichtvektor (Directional Light)varying vec3 eyeSpaceNormal;void main() { vec3 normal = normalize(eyeSpaceNormal); float intensity = dot(normalize(gl_LightSource[0].position.xyz), normal); gl_FragColor = toonify(intensity);} Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 9/12
  10. 10. Toon ShadingSchritt 2: Berechnung des Shading (Forts.) Fragment-Shader (Forts.) Abbildung auf wenige Schattierungsstufen uber toonify() ¨vec4 toonify(in float intensity) { if(intensity > 0.95) return vec4(0.5, 1.0, 0.5, 1.0); else if(intensity > 0.5) return vec4(0.3, 0.6, 0.3, 1.0); else if(intensity > 0.25) return vec4(0.2, 0.4, 0.2, 1.0); else return vec4(0.1, 0.2, 0.1, 1.0);} Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 10/12
  11. 11. Literatur Dave Shreiner OpenGL Programming Guide http://www.opengl-redbook.com/ Richard S. Wright, Benjamin Lipchak und Nicholas Haemel OpenGL SuperBibel http://www.starstonesoftware.com/OpenGL/ Randi J. Rost OpenGL Shading Language http://www.3dshaders.com/ Tomas Akenine-M¨ller, Eric Haines und Naty Hoffman o Real-Time Rendering http://www.realtimerendering.com/ Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 11/12
  12. 12. Literatur Edward Angel Interactive Computer Graphics http://www.cs.unm.edu/˜angel/ Gerald Farin und Dianne Hansford Practical Linear Algebra http://www.farinhansford.com/books/pla/ Fletcher Dunn und Ian Parberry 3D Math Primer for Graphics and Game Development www.gamemath.com/ Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 12/12

×