Siempre debe multiplicar por el término coseno (eso es parte de la ecuación de representación). Sin embargo, cuando hace una difusión indirecta mediante el trazado de rayos y, por lo tanto, la integración de monte-carol (que es la técnica más común en este caso), debe dividir la contribución de cada muestra por su PDF . Esto está bien ejemplificado aquí .
Tenga en cuenta también que en la referencia mencionada, si el PDF tiene términos que también se encuentran en las ecuaciones de representación, puede optimizar el código si lo desea cancelando estos términos.
No olvide que el BRDF de una superficie difusa es ρ / π donde ρ representa el albedo de la superficie. Entonces necesitamos dividir el resultado entre π. Aunque en el caso del componente difuso indirecto, no olvide que deberíamos haber dividido el resultado de castRay por el PDF de la variable aleatoria, que como mostramos anteriormente en este capítulo es 1 / (2π). Dividir indirectamente Difusa por 1 / (2π) es lo mismo que multiplicar este valor por 2π. Y dado que el albedo también está dividido por π podemos simplificar el código ...
Tienes una situación similar. Si mira el PDF para el muestreo de coseno, se dará cuenta de que los términos pueden cancelarse. Lo que no significa que 'no' sean estrictamente necesarios. Lo son, simplemente se cancelan entre sí, lo que permite optimizar ligeramente el código (y evitar algunas divisiones, multiplicaciones, etc.). Aquí está más en la microoptimización ... lo que puede ser confuso si intenta aprender la teoría simplemente mirando el código optimizado (que a menudo no se comenta correctamente).
( C o s ( θ ) . . . )PAGSD F= ( C o s ( θ ) . . . )c o s ( θ )π= . . .