Salut,
Effectivement la plupart des techniques ont un FPS très bas, impraticable en dehors de petites scènes. Toutefois les recherches font beaucoup de progrès sur ce domaine, ne serait-ce qu'en 2008 j'ai du recenser au moins une quinzaine de nouvelles techniques ou d'améliorations d'anciennes techniques, donc ça avance, doucement .
Après c'est un compromis à faire. Il existe pas mal de techniques TRES efficaces et qui pour le coup sont exploitables en temps réel, mais soit avec la géométrie fixe, ou les lampes fixes, ou les deux...
Par contre, on emploie (moi aussi...) souvent le mot global illumination, mais en fait là on parle surtout de l'éclairage indirect. Le mot global illumination englobe d'autres effets (comme les caustics).
Ça ressemble aux Reflective Shadow Maps ce que tu me décris là non ?Il y a une technique qui m'est venu en tête après toutes ces lectures: Une façon d'approximer qui est optimisé et qui donne un résultat convaincant, est de faire un rendu de profondeur à partir de la light, il peut être le même que celui utilisé pour faire l'ombrage en gardant les couleurs et les normales. Ensuite on choisi quelques pixels( au moins 5 je dirais) prédéfinis et on enregistre le vecteur des ray qui part de la light et qui reflète sur la normale des pixels et on fait la moyenne de tout les vecteurs, en même temps on prend la moyenne de couleur tout les pixels et on forme une light ambiante avec ce vecteur. Sinon, on peut faire plusieurs light avec ces vecteurs, mais c'est sûr que c'est plus optimisé de créer une light avec la moyenne.
Fait attention aussi... J'avais lu sur un forum (après c'est peut-être de la jalousie de la part de certaines personnes ) qui ont analysés en détail les vidéos d'Enlighten et visiblement il y aurait pas mal de trucs précalculés ce qui entraîneraient quelques concessions sur certains niveaux...En fait, j'avais lu une ligne où il était marqué de créer une vecteur qui fait la moyenne dans Real Time Rendering third edition, c'est de là que me vient l'idée en partie, et une technique similaire est utilisé pour ce sdk commercial : (http://www.youtube.com/watch?v=ewQuQ...eature=related) En fait, ce serait la technique utilisée dans la première scène, selon le livre.
En tout cas, je ne sais pas si tu as lu cette publication, mais personnellement parmi toutes ces publications qui reposent plus ou moins sur la même technique de base, je trouve celle-ci particulièrement élégante et puissante.
Environ 75 fps pour 12 000 vertices et 12 fps pour 125 000 vertices. Même si ça reste relativement peu, la technique en elle-même est vachement élégante puisqu'elle repose sur un système "hybride" raytracing-rasterization, où tout l'éclairage indirect (ainsi que les ombres indirectes, automatiquement gérées par l'algorithme et qui te permet donc de te passer d'un truc pour imiter comme l'ambiant occlusion) est calculé par le raytracing et l'éclairage direct, primary rays, shadow maps et tous les autres effets par la rasterization !
Contrairement aux autres techniques comme tu dis où tu dessines la scène à partir du point de vue de la lampe (qui, d'une, empêche d'avoir un moyen simple pour les point light, et de deux t'empêche très vite d'ajouter d'autres lampes !), là tu peux facilement avoir plusieurs lampes. Idem pour le nombre de "bounce" de la lumière, dans cette technique un bounce équivaut, en gros, à traverser une liste de lien générée par ton raytracing...
D'autre part je pense que cette technique est sûrement une technique de choix, tu n'as qu'à voir Lightsmark, un autre moteur comme ça (encore plus impressionnant que Enlighten, surtout que là tu peux tester ) repose lui aussi sur un schéma hybride rasterization-raytracing. Je pense aussi qu'elle peut être améliorée. Ils utilisent un kd-tree qu'ils recréent à chaque fois "from scratch" (pour pouvoir avoir des scènes dynamiques). J'avais codé un BVH et, sans trop d'optimisation, j'obtenais des temps de création pour les mêmes scènes de presque moitié moins de temps. D'autant plus qu'il existe des techniques plus évoluées pour les BVH qui te permettent de mettre un jour un BVH de manière très rapide.
Si tu veux voir une vidéo de la technique, clique .
Si tu souhaites parler de cette technique n'hésite pas, je l'ai pas mal étudié et, à part quelques petits points qui me résistent encore je l'ai lu tellement de fois que je commence à le connaître presque par cœur (par contre je pars dans 1 heure en vacance donc t'étonne pas is je réponds pas ^^)
Partager