2009-12-11 14 views
0

J'essaie de rendre 6 spots pour créer un point lumineux pour un algorithme de projection d'ombres.Rendu d'une lumière ponctuelle en utilisant 6 spots?

Je ne sais pas si je fais ce droit, je suis plus ou moins suivi les instructions here lors de la configuration mon point de vue et des matrices de projection, mais le résultat final ressemble à ceci:

alt text

Les zones blanches sont des parties qui sont couvertes par l'une des 6 cartes d'ombre, les zones les plus sombres sont celles qui ne sont pas couvertes par les zones d'ombre. Évidemment, je n'ai aucun problème avec les théières et les boîtes ayant leurs ombres projetées sur la scène, mais comme vous pouvez le voir, les 6 cartes d'ombres ont des angles morts. Est-ce la façon dont une carte d'ombre en cubes est supposée regarder? Il ne ressemble pas à une carte-image d'une source de lumière ponctuelle ...

Répondre

2

En fait, vous pouvez ajuster vos six points pour avoir des cônes qui remplissent parfaitement chaque face de votre cubemap. Vous pouvez y parvenir en réglant l'ouverture de chaque cône pour créer un cercle circonscrit autour de chaque face cubemap. Dans ce cas, vous n'avez pas à vous soucier de chevauchement, puisque le se chevaucherait. les pièces sont en dehors de la zone des faces. En d'autres termes: ajuster le champ de vision de la matrice de projection des lumières, de sorte qu'il ne sera pas le point de vue qui comprend le cône de lumière, mais le cône inclura la vue tronc.

L'ensemble de l'implémentation see this paper.

2

Ce que vous voyez ici est un cercle et deux hyperboles - sections coniques - exactement le résultat que vous pourriez attendre si vous avez pris un double fin cône et l'a recoupé avec un avion.

Ce calcul peut sembler être supprimé de la situation, mais il explique votre problème. Un projecteur crée un cône de lumière, et vous ne pouvez pas entièrement remplir un espace solide avec un tas de cônes provenant du même point. (Je suggère de rouler un tas de morceaux de papier et de les coller ensemble aux points pour l'essayer.)

Cependant, comme vous êtes loin de l'origine de votre source ponctuelle simulée, les cônes convergent. à leurs assymptotes, et il y a un vide infiniment étroit dans la lumière. Une option pour résoudre ceci est de changer la mise au point des cônes afin qu'ils se chevauchent légèrement - cela créera des zones qui sont surexposées, mais la surexposition ne deviendra évidente que lorsque vous vous en éloignerez. Tant que tous vos objets sont proches de la source de lumière ponctuelle, cela peut ne pas poser de problème.

Une autre option consiste à rapprocher le foyer de toutes les lumières de leurs sources. De cette façon, ils convergeraient vers leurs assymptotes plus rapidement.