Ich habe erfolgreich eine cel Shader mit GLSL implementiert. Aber mein Problem ist es, alles zu umreißen und jedes Beispiel von opengl im Internet ist ziemlich alt, stimmt nicht mit der aktuellen Technologie überein, also mit langsamen Techniken usw. ... So konnte ich sowieso nicht finden, es in glsl zu machen. Ich habe über einige Ideen nachgedacht, wie zum Beispiel das Färben der am wenigsten intensiven Bereiche schwarz, aber es gibt nicht einmal genug Erklärungen über gl_Vertex, gl_Position und Augenpositionen. Da jede Technik zu alt ist, habe ich mich schließlich entschieden, jemanden nach diesem Umrissproblem zu fragen.OpenGL GLSL Cel Shading und Gliederungs Algorithmus
Antwort
I eine Art von Kantenerkennungsfilter auf dem ZBuffer verwenden würde (potentiell mit Kantendetektion auf dem Farbpuffer kombiniert werden könnte) und dann den mit dem Rahmenpuffer (invertiert) Ergebnis modulieren. Eines der am häufigsten verwendeten Kantenerkennungsfilter ist die Sobel-Operator:
http://en.wikipedia.org/wiki/Sobel_operator
EDIT: Eine weitere günstige Möglichkeit, dies zu tun ist, bevor Sie das gewöhnliche Masche ziehen eine schwarze Kopie des Netzes mit Keulung machen zugewandt invertiert und die Scheitelpunkte leicht in Richtung Normale bewegt. Das ist wahrscheinlich das, was sie in XIII gemacht haben, ich bin mir auch ziemlich sicher, dass es so in Jet Set Radio gemacht wurde.
EDIT2: Wenn die Dicke des Umrisses unabhängig von der Entfernung zum Betrachter konstant sein soll, sollten Sie den Betrag, um den Sie die Scheitelpunkte verschieben, skalieren.
Haben Sie bei glPolygonOffset geschaut?
ich verwendet habe, skizziert auf gefüllten Polygone zu zeichnen.
http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPolygonOffset.xml
Sie sagen jedoch nichts über Ihre Herangehensweise, die nicht offensichtlich ist, und die die Antwort nicht sehr nützlich macht. Ich gebe deinen Standpunkt zurück, wenn du es tust :) –
- 1. OpenGL GLSL nicht suported 3.30
- 2. OpenGL Shading Language TRANSFORM_TEX
- 3. glTexParameter und Filterung in OpenGL und GLSL?
- 4. GLSL ES entspricht OpenGL GLSL 'out' Schlüsselwort?
- 5. Downsample und Upsample Textur Offsets, OpenGL GLSL
- 6. OpenGL Deferred Shading-Beleuchtung funktioniert nicht richtig
- 7. OpenGL ATI vs NVIDIA GLSL Probleme
- 8. Zeichnen von verteilten LineLoops in OpenGL/GLSL
- 9. OpenGL/GLSL: Preprocessor Problem mit bestimmten Direktive
- 10. Warum gibt OpenGL + GLSL Shader nichts aus?
- 11. von RGB nach HSV in OpenGL GLSL
- 12. Was ist der Unterschied zwischen OpenGL und GLSL?
- 13. Gibt es ein kleines Werkzeug für OpenGL Shading Language?
- 14. alpha Schwimmer von einem vec4 in OpenGL ES Shading Language
- 15. HDR Bloom-Effekt-Rendering-Pipeline mit OpenGL/GLSL
- 16. Fehler beim Kompilieren Shadern GLSL 3.30
- 17. Rendern von Text in modernen OpenGL mit GLSL
- 18. Übergabe einer Variablen an einen OpenGL-GLSL-Shader
- 19. Wie erhalten Sie die Modelview und Projektionsmatrizen in OpenGL?
- 20. Kompilieren von GLSL geschrieben für OpenGL ES-Versionen zu Vulkan
- 21. Was bedeutet der Begriff "genType" in OpenGL/GLSL?
- 22. Shading mit opencv
- 23. Deferred Shading DirectX-Demos?
- 24. PowerPoint VBA Cell Shading
- 25. Aktuelles GLSL-Tutorial?
- 26. Algorithmus zum Zoomen in Maus (OpenGL)
- 27. GLSL pow-Funktion?
- 28. GLSL 4.1 mit gl_ModelViewProjectionMatrix
- 29. GLSL, Schnittstellenblock
- 30. GLSL ES Präzision Fehler und überläuft
Ich denke, es für einen einfachen Überblick zu teuer ist. – deniz
Auf welche Art von Hardware zielen Sie? –
wie x1650pro gleichwertig. XIII Spiel tut es irgendwie mit der Anforderung an wirklich alte Hardware. – deniz