Comment construire un modèle objectif objectif / appareil photo décent pour le traçage de trajectoire?

13

J'ai écrit un petit traceur de chemin après avoir appris et expérimenté sur smallpt .

La seule chose que je n'ai pas écrit (et compris) moi-même, c'est comment les rayons initiaux sont calculés et tirés depuis la caméra. J'ai bien compris le principe, mais je recherche des ressources décrivant comment:

  • Calculez la direction initiale des rayons
  • Modéliser un objectif réel (par opposition à un sténopé), permettant soi-disant des effets comme la profondeur de champ?

Les mathématiques et la physique de pointe ne sont pas nécessaires, mais OK si elles sont expliquées en détail.

les internets sont en catz
la source

Réponses:

13

La prochaine étape par rapport à un modèle d'appareil photo sténopé est un modèle d' objectif mince , où nous modélisons l'objectif comme étant un disque infiniment mince. C'est toujours une idéalisation qui est loin de modéliser un véritable appareil photo, mais cela vous donnera des effets de profondeur de champ de base.

Modèle à lentille mince

L'image ci-dessus, de panohelp.com , montre l'idée de base. Pour chaque point de l'image, plusieurs rayons arrivent à ce point d'image, via chaque point de la surface de la lentille 2D. Par conséquent, la génération d'une image comme celle-ci en utilisant Monte Carlo nécessitera de choisir, pour chaque rayon, à la fois un point d'échantillonnage 2D sur le plan de l'image et un point d'échantillonnage 2D indépendant sur la surface de la lentille.

Les paramètres face à l'utilisateur à définir seront le rayon de l'objectif (en tant que rayon physique en unités de scène), qui contrôle le degré de profondeur de la plage de mise au point (objectif plus grand = plage de mise au point moins profonde) et la distance à laquelle vous souhaitez que les objets se trouvent concentrer.

Pour générer des rayons oculaires dans la scène, vous pouvez calculer la position et la direction des rayons quittant la surface de l'objectif; dans ce modèle, il n'est pas nécessaire de simuler explicitement le plan de l'image et la réfraction à travers la lentille. Fondamentalement, pensez à l'objectif centré à la position de la caméra et orienté pour faire face à la direction de la caméra.

En fonction de l'emplacement de l'image, créez un rayon à partir de la position de la caméra (centre de l'objectif) dans la scène, comme vous le feriez dans le modèle à sténopé; trouver ensuite son intersection avec le plan focal. C'est là que tous les rayons de cet emplacement d'image devraient converger. Vous pouvez maintenant décaler le point de départ du rayon vers un point choisi au hasard sur la lentille et définir sa direction pour être vers le point de convergence.

Vous pouvez généraliser un peu cela en permettant au plan focal d'être autre chose qu'un plan, ou à l'objectif d'être autre chose qu'un disque circulaire, et en suivant le même processus. Cela peut produire des effets intéressants, sinon tout à fait physiques. Il est également possible d'aller au-delà de ce modèle simple avec une simulation plus réaliste physiquement des éléments de l'objectif d'une caméra, mais cela dépasse mon expertise.

Nathan Reed
la source
4

Voir Kolb, et al., A Realistic Camera Model for Computer Graphics , SIGGRAPH 95.

Cependant, gardez à l'esprit que les modèles de caméras qui imitent les caméras du monde réel ne sont pas nécessairement ce que vous voulez pour la phase de rendu. Dans un scénario d'effets visuels / de post-production, plus le modèle de caméra introduit de flou / vignettage / distorsion, pire c'est pour le compositeur / chronomètre de couleur. Il est souvent préférable de le faire en post-pass.

Pseudonyme
la source