Éclairage harmonique sphérique - à quoi sert-il?

8

D'après ma compréhension, les harmoniques sphériques sont parfois utilisées pour approximer certains aspects de l'éclairage (selon l'application).

Par exemple, il semble que vous pouvez approximer la cause de l'éclairage diffus par une source de lumière directionnelle sur un point de surface, ou des parties de celui-ci, en calculant les coefficients SH pour toutes les bandes que vous utilisez (pour la précision que vous désirez) dans la direction de la surface normale et la mettre à l'échelle avec tout ce dont vous avez besoin pour la mettre à l'échelle (par exemple, intensité de couleur claire, point (n, l), etc.).

Ce que je ne comprends pas encore, c'est ce que cela est censé accomplir. Quels sont les avantages réels de procéder de cette manière par rapport à l'évaluation normale du BRDF diffus. Sauvegardez-vous les calculs quelque part? Y a-t-il des informations supplémentaires contenues dans la représentation SH que vous ne pouvez pas extraire des résultats scalaires de l'évaluation normale?

TravisG
la source
si vous pensez qu'il y a quelque chose que vous n'aimez pas avec la réponse, je peux peut-être élaborer?
concept3d

Réponses:

10

La raison d'utiliser des harmoniques sphériques est d'approximer la distribution de la lumière entrante autour d'un point, généralement la lumière indirecte calculée par un algorithme d'éclairage global. Ensuite, le BRDF est également approximé avec des harmoniques sphériques, pour permettre de calculer efficacement la lumière sortante vue par le spectateur, en prenant le produit scalaire des coefficients SH de lumière entrante avec les coefficients BRDF SH. Cela se rapproche de la convolution de la lumière entrante avec le BRDF, comme le montre l'équation de rendu.

Si vous ne souhaitez recevoir de la lumière que de sources ponctuelles, vous n'avez pas besoin de SH. Les éclairages ponctuels sont traités avec plus de précision en évaluant directement le BRDF directement. De plus, si vous avez un environnement fixe (ciel, etc.) dont vous souhaitez recevoir la lumière, vous pouvez générer des cubemaps pré-convolus hors ligne (en utilisant CubeMapGen par exemple) qui font un très bon travail d'approximation de la convolution de la carte d'environnement avec le BRDF. Pas besoin de SH ici non plus.

Lorsque SH est vraiment utile, c'est lorsque vous avez une scène complexe et que vous voulez un éclairage indirect, c'est-à-dire un éclairage indirect. Dans ce cas, la distribution lumineuse varie d'un endroit à l'autre. En principe, chaque point individuel de la scène a un environnement d'éclairage différent en fonction de son environnement. En pratique, nous échantillonnons l'éclairage à des points discrets en utilisant un algorithme d'éclairage global. Il existe de nombreuses façons de le faire - vous pouvez échantillonner l'éclairage à chaque sommet des surfaces, par exemple, ou à chaque texel d'une carte lumineuse. Ou créez une représentation volumétrique à l'aide d'une grille ou d'un maillage tétraédrique .

Le fait est qu'il y a un grand nombre de points où l'éclairage est échantillonné, et nous avons donc besoin d'une représentation flexible mais très compacte de l'éclairage autour d'un point, pour éviter de consommer trop de mémoire. SH remplit bien ce rôle. Il a également la propriété pratique de fonctionner correctement avec l'interpolation, c'est-à-dire que les coefficients SH peuvent être interpolés d'un point d'échantillonnage à un autre et que l'éclairage entre les deux se comportera raisonnablement. Et comme il capture la distribution angulaire globale de la lumière entrante, et pas seulement la lumière d'une direction, vous pouvez l'utiliser avec une surface normale et obtenir de très bons résultats.

Il convient de noter, cependant, que SH n'est vraiment utile que pour un éclairage diffus. À moins d'utiliser un nombre vraiment insensé de coefficients SH, cela brouillera trop la distribution angulaire de la lumière entrante. Pour un éclairage indirect spéculaire de haute qualité, quelque chose d'autre est nécessaire, comme les cubemaps corrigées de la parallaxe et / ou le raytracing de l'espace écran.

Nathan Reed
la source
> Le fait est qu'il y a un grand nombre de points où l'éclairage est échantillonné, et nous avons donc besoin d'une représentation flexible mais très compacte de l'éclairage autour d'un point, pour éviter de consommer trop de mémoire. SH remplit bien ce rôle <C'est ce qui m'embrouille. Il me semble que vous pouvez aussi bien représenter la lumière autour d'un point (c'est l'irradiance, n'est-ce pas?) Avec une représentation d'intensité normale, et vous avez également besoin de moins de mémoire puisque même seulement 2 bandes SH en utilisent 4 coefficients par couleur alors que l'intensité n'est que de 3 au total.
TravisG
Eh bien, prenons un exemple spécifique: Connaissez-vous par hasard l'algorithme Light Propagation Volume utilisé dans Cryengine 3? Je me demande pourquoi il n'est pas pratique de représenter l'éclairage dans le LPV tout comme les intensités.
TravisG
@TravisG Ce n'est pas seulement une seule valeur d'intensité RVB car différentes quantités de lumière proviennent de différentes directions. L'idée est de représenter la distribution angulaire de la lumière entrante, pas seulement la lumière d'une direction spécifique, ou la moyenne sur toutes les directions. Considérez si vous avez un feu vert à gauche et un feu rouge à droite. Une surface normale doit refléter le vert là où les normales pointent vers la gauche et le rouge là où elles pointent vers la droite. Une seule intensité RVB ne peut pas représenter cette situation, mais une base SH à 2 ou 3 bandes peut le faire.
Nathan Reed
@TravisG De même avec LPV, vous devez garder une trace de la direction dans laquelle la lumière se propage. Il ne se propage pas seulement dans toutes les directions (sauf s'il est dispersé par des particules dans l'air ou quelque chose du genre); il continue dans la direction où il a été émis. Par exemple, un nœud de la LPV pourrait contenir simultanément une lumière rouge se déplaçant vers la droite et une lumière verte se déplaçant vers la gauche. Ainsi, chaque nœud doit garder une trace de la distribution angulaire de la lumière qui le traverse.
Nathan Reed
3

Ce que je ne comprends pas encore, c'est ce que cela est censé accomplir?

Réponse courte, calculs de lumière physique plus précis. (en ce qui concerne certaines caractéristiques d'interaction surface-lumière).

Pourquoi ne pas tout évaluer avec le BRDF diffus de façon normale?

Malheureusement, le problème réside dans la définition de la voie normale . Le modèle de réflexion phong "normal" a été adopté depuis longtemps par la communauté du rendu en temps réel depuis le début et a été la norme de facto en raison de sa simplicité qui le rend approprié pour l'utilisation du rendu en temps réel.

Le problème cependant , l'interaction lumière / matériau dans la vie réelle est si compliquée qu'elle ne peut pas être réellement modélisée par un seul BRDF.

Les BRDF sont une abstraction de la façon dont l'interaction lumineuse réelle est censée se produire. phong n'est qu'un parmi tant d'autres, qui a l'avantage de la simplicité.

Mais quels sont les avantages réels?

En infographie, il existe différents BRDF qui se répartissent en deux catégories principales:

  1. Basé sur la théorie physique.
  2. Conçu pour s'adapter à une classe spécifique de type de surface et est généralement utilisé dans le rendu en temps réel.

En parlant de la deuxième catégorie, chaque BRDF essaie de réaliser certaines caractéristiques avec une interaction surface-lumière. Le BRDF le plus simple possible est le Lambertien qui essaie de modéliser la diffusion souterraine et est souvent utilisé en infographie. La valeur de réflectance constante d'un BRDF Lambertien est communément appelée la couleur diffuse.

En temps réel, les graphiques par ordinateur sont généralement sélectionnés manuellement et leurs paramètres définis pour obtenir l'apparence souhaitée (par exemple, en utilisant Phong avec certaines valeurs pour modéliser une surface en plastique ou en chrome).

D'autre part, les BRDF sont parfois mesurés directement à partir de la surface souhaitée (et ne sont pas représentés par une équation mathématique). Cela nous donne des données beaucoup plus précises physiquement sur la surface qui sont autrement difficiles à réaliser analytiquement.

Une méthode pour ajuster ces données capturées consiste à sélectionner un BRDF analytique et à y intégrer ces données. Les harmoniques sphériques ne sont qu'une technique utilisée pour représenter ces quantités mesurées et les adapter à un modèle BRDF analytique.

La meilleure ressource pour la théorie BRDF se trouve dans le rendu en temps réel

  • 7.5 Théorie BRDF.
  • Sur les harmoniques sphériques, réviser 7.7.2 Représentations des BRDF mesurés.
concept3d
la source
Merci pour la réponse, mais il manque un peu ce que je recherche. Autant que je sache, vous pouvez approximer n'importe quelle fonction f (x) en utilisant des harmoniques sphériques, et pour une raison quelconque, les gens décident d'approximer des parties d'un modèle d'éclairage en utilisant des harmoniques sphériques (ce qui dépend exactement de l'application, mais par exemple le terme diffus lambertien est quelque chose que je rencontre souvent). Je me demande pourquoi, il me semble que les harmoniques sphériques ne sont qu'une représentation avec perte qui représente les mêmes données mais n'a même pas d'avantage de mémoire.
TravisG
Eh bien, cela dépend de ce que vous comparez. Si vous le comparez à un modèle analytique, il est plus complexe et plus coûteux. Mais le modèle analytique ne prend pas en compte l'environnement local. Ces jours-ci, je vois surtout des gens utiliser des cartes de cube. Ils obtiennent des résultats similaires et ont un meilleur support matériel.
drxzcl