J'ai un petit chemin traceur, et j'essaie de comprendre comment implémenter quelques BRDF de base. Voici une brève description du pipeline que j'utilise (sans récursivité):Comment la BRDF est-elle habituellement implémentée?
1) For each pixel:
1.1) For each sample:
1.1.1) I construct a path.
1.1.2) I calculate the contribution of this path.
1.1.3) I calculate the "probability" of this path.
1.1.4) Finally, I calculate the overall color value(taking into account number of samples, "probability" and contribution of the path).
1.2) Take the sum of all samples' values and write it to the pixel.
Alors, je calcule la direction des rayons réfléchis dans l'étape 1.1.1) I construct a path
.
Pour l'instant, j'ai mis en œuvre une réflexion diffuse, réflexion spéculaire, reflet brillant, réfraction. Maintenant, je veux mettre en œuvre une BRDF complexe, disons Cook-Torrance BRDF. Je vois qu'il contient plusieurs composants (réflexion diffuse et réflexion spéculaire). Comment devrais-je tracer ces rayons pour obtenir la combinaison? Dois-je choisir entre diffuse_ray/specular_ray de manière aléatoire et ensuite accumuler les valeurs (multipliées par certains coefficients) comme d'habitude? (Comme si une valeur aléatoire est supérieure à 0.5 alors je trace un rayon diffus, sinon - spéculaire) Ou devrais-je tracer plusieurs rayons? de chaque intersection?
Comment est-il habituellement mis en œuvre dans les équarrisseurs à base physique?
P.S. Si quelqu'un connaît de bons articles sur ce sujet, je serais heureux de les voir. J'ai essayé de lire pbrt mais cela semble très complexe et énorme pour moi. Et certaines choses sont implémentées différemment, comme le modèle d'appareil photo et d'autres choses.
dans mon traceur stochastique je fraient des rayons séparés pour spéculaires et réflexion diffuse, mais la méthode que vous trouverez ci-dessus maintient l'arbre des rayons plus petits et devrait réduire la complexité de calcul. J'ai envisagé d'utiliser cette méthode mais je ne pouvais pas comprendre comment avoir des coefficients aléatoires de "couleur" pour que la répartition entre diffuse et spéculaire puisse varier en fonction de la couleur de surface (comme je crois que cela se produit avec les matériaux plastiques) – Alnitak