J'ai actuellement une configuration de système de rendu différé et peut rendre des lumières de point et des lumières directionnelles. Ma question est quelles sont mes options pour différentes formes d'ombrage qui peuvent faire des ombres basées sur des lumières ponctuelles et des lumières directionnelles qui peuvent peut-être utiliser une configuration d'ombrage différée?Ombres dynamiques en temps réel pour compléter l'ombrage différé?
Répondre
Il n'y a rien de spécial à propos du rendu différé qui nécessite des techniques d'ombrage uniques. La plupart des approches standard pour produire des ombres fonctionnent parfaitement avec les schémas de rendu différés.
Le mappage d'ombre est l'algorithme d'ombrage le plus couramment utilisé aujourd'hui dans les applications en temps réel telles que les jeux. Les ombres au pochoir étaient populaires il y a quelques années mais sont tombées en disgrâce en raison de diverses limitations. Le mappage d'ombre fonctionne correctement avec l'ombrage différé. L'algorithme de base pour la cartographie de l'ombre est assez simple:
- profondeur Render à une texture cible de rendu du point de vue de la lumière (vous avez besoin de rendre 6 faces d'une carte de cube pour une lumière ponctuelle).
- Lorsque vous effectuez la passe d'éclairage de la lumière, pour chaque pixel, transformez la position de l'espace du monde en espace de vue de la lumière et comparez la profondeur à la profondeur stockée dans la carte ombrée. Si elle est supérieure à la profondeur de la carte d'ombre alors le point est dans l'ombre, sinon l'allumer normalement.
Comme d'habitude avec le rendu, le diable est dans les détails. Pour obtenir des ombres de bonne qualité, vous devez configurer avec soin la projection de votre ombre pour optimiser l'utilisation des pixels disponibles dans la carte d'ombre (recherche de cartes d'ombre en perspective, de cartes d'ombre en cascade). En raison de problèmes de précision, vous obtiendrez divers artefacts avec des surfaces d'ombrage (l'acné cachée est la plus fréquente) et il existe différentes stratégies pour réduire l'incidence de ces artefacts (biais de profondeur, modifications de la matrice de projection). Afin de réduire l'aspect pixélisé et pixellisé des cartes ombrées avec une résolution insuffisante, vous souhaiterez probablement effectuer un filtrage de type carte miroir. Pourcentage Closer Filtering est l'approche standard et il existe plusieurs façons de procéder à l'exécution de PCF. Vous avez également à faire face au compromis qualité/performance standard avec les ombres et l'ombrage dynamique qui tend à être l'un des aspects les plus coûteux du rendu de scène. Il existe de nombreuses astuces et techniques pour tenter de maximiser les performances de la cartographie de l'ombre. Récemment, il y a eu un certain nombre de variations sur l'algorithme de base de mappage des ombres qui tentent de donner de meilleurs résultats pour une résolution de mappage d'ombre donnée en abordant différemment le problème de filtrage. Variance Les cartes des ombres et les cartes des ombres exponentielles sont deux techniques récentes qui ont quelques avantages intéressants mais quelques problèmes uniques.
Le developer site de Nvidia est une bonne ressource pour la programmation graphique en général et contient de nombreux articles sur l'observation. Jetez un oeil aux versions HTML des livres GPU Gems disponibles sur le site, ils ont également plusieurs articles sur l'observation, y compris l'article définitif sur Variance Shadow Maps dans GPU Gems 3.
- 1. Architecture pour système en temps réel?
- 2. Cloner MovieClip en temps réel
- 3. Graphiques en temps réel en Java
- 4. Mise en œuvre du chat en temps réel pour SharePoint
- 5. Validation de formulaire en temps réel jQuery
- 6. Analyse audio en temps réel sous Linux
- 7. Entrée en temps réel dans timesprite/fogbugz
- 8. JTree mises à jour en temps réel?
- 9. Registres d'interruption en temps réel Motorola 68HC12
- 10. . Composants .NET pour les devis d'expédition en temps réel
- 11. Recommandé .Net soft temps-réel
- 12. C# Temps réel Try Catch
- 13. Vote en ligne en temps réel sans quitter la page?
- 14. API stock temps réel/haute résolution?
- 15. Java en temps réel cadre de suivi des services
- 16. Affichage des données dans un tampon circulaire en temps réel
- 17. Les extensions linux en temps réel sont-elles obsolètes?
- 18. Aperçu de la fenêtre WPF en temps réel
- 19. Ajustement du volume sonore java en temps réel
- 20. Analyse syntaxique du binaire MySQL en temps réel
- 21. Surveillance du niveau sonore du microphone en temps réel
- 22. Lecture audio en temps réel de Flash Player
- 23. Utilisation de la base de données système en temps réel
- 24. Jeu basé sur un navigateur en temps réel
- 25. Saut différé
- 26. Meilleure (s) pratique (s) pour la visionneuse de journaux en temps réel sur l'écran pour log4net
- 27. jQuery ombres pour les coins arrondis
- 28. Idées pour une application Web avec entrée externe et notification en temps réel
- 29. Comment construire un serveur pour diffuser de la vidéo en temps réel?
- 30. Puis-je utiliser LAMP + AJAX pour un système (presque) en temps réel?