Wie ist der Stand der Technik in Bezug auf die Schattenwiedergabe? Mein Ziel ist OpenGL 3.2 unter Verwendung einer verzögerten Rendering-Pipeline, falls dies von Bedeutung ist.
Es ist Jahre her, seit ich mich mit dem Rendern von Schatten befasst habe, und zu dieser Zeit standen zahlreiche Techniken zur Verfügung, von Schablonen bis zu den verschiedenen Methoden der Schattenzuordnung. Zu diesem Zeitpunkt erforderten Rendering-Schatten separate Rendering-Durchläufe, die von der CPU gesteuert wurden. Aber kürzlich habe ich eine Demo gesehen, in der eine Szene komplett auf der GPU gerendert wurde, einschließlich der Schatten. Ich habe keine Ahnung, wie das zustande gekommen wäre oder ob es überhaupt sinnvoll ist (über eine Tech-Demo hinaus).
Angesichts der großen Menge alter Informationen im Internet würde ich gerne erfahren, welche Methoden die Leute heutzutage verwenden und wie viel davon auf die GPU übertragen werden kann (vorausgesetzt, meine OpenGL-Zielversion unterstützt dies).
Antworten:
http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/ gibt einen schönen Überblick über die Grundlagen. http://en.wikipedia.org/wiki/Shadow_mapping enthält Links zu einer Vielzahl von Forschungsarbeiten, in denen verschiedene Verbesserungen und Optimierungen beschrieben werden.
Vor ein paar Jahren waren Schattenbände „das Ding“. http://en.wikipedia.org/wiki/Shadow_volume beschreibt die Technik gut.
In letzter Zeit wurden Raytracing- und Pathtracing-basierte Ansätze für Lightning / Shadowing verwendet (die es bisher gab, nur nicht die Hardware, um sie zu nutzen). Die verwendeten Optimierungen (z. B. Monte Carlo-Rendering mit begrenzten Iterationen) führen jedoch tendenziell zu Rauschen / Artefakten bei der Kamerabewegung (ein Beispiel für den Effekt finden Sie z. B. unter http://www.youtube.com/watch?v=FJLy- ci-RyY ).
quelle