Je suis curieux de savoir comment gérer de nombreuses lumières dans une scène. Étant donné une très grande carte dans un jeu de rôle, avec des donjons (avec des lumières là-dedans), etc. Je connais l'éclairage différé, mais cela ne répond qu'à la façon de rendre de nombreuses lumières. Mais ma question est plus: comment ne pas rendre beaucoup de lumières. Il est évidemment souhaitable de ne rendre que les lumières affectant la scène, mais je ne connais pas de technique / d'algorithme pour l'archiver. Personne ne veut ou n'est même capable de rendre 500 lumières ponctuelles, simplement parce qu'il y a quelque part sur la carte. Mais on ne peut pas simplement prendre une ligne droite entre la lumière et le joueur et tester s'il y a quelque chose entre les deux. La distance ne semble pas non plus être un bon indicateur. (Lumière du soleil?)
tl; dr: Comment savoir quelles lumières affectent la scène pour les rendre uniquement?
Réponses:
Encore plus simple que de délimiter des volumes;
Attribuez un rayon à chaque lumière. Lorsqu'il s'agit de rendre votre scène, vérifiez simplement si la distance entre les objets de votre scène et chaque lumière est inférieure au rayon de la lumière. Si c'est le cas, utilisez la lumière, sinon, sautez-la.
Juste une fraction plus compliquée, selon l'importance des performances:
Vous pouvez également effectuer une sorte de vérification de phase large. Définissez simplement une grille spatiale qui stocke les poignées de vos lumières sur une base de cellules de grille, puis effectuez uniquement la vérification de la distance sur les lumières qui se trouvent dans les cellules dans le rayon maximum de vos objets de scène.
la source
La façon la plus simple à laquelle je peux penser (soyons honnêtes, la seule façon à laquelle j'ai pensé) est de donner à chaque lumière un volume englobant . Si le volume englobant croise le tronc de vue (ou un volume englobant du tronc de vue), appliquez la lumière.
Il peut encore y avoir des lumières qui sont appliquées même si elles n'affectent aucun objet visible, mais c'est simple et rapide. Une disposition intelligente de votre graphique de scène pourrait signifier que quelques vérifications d'intersection éliminent la plupart de vos lumières (tout comme ce qui est fait pour l'élimination des objets).
Quelque chose comme le soleil pourrait ne pas avoir de volume englobant (pour indiquer qu'il devrait toujours être appliqué).
la source