Anda selalu perlu mengalikannya dengan istilah cosinus memang (itu bagian dari persamaan rendering). Meskipun ketika Anda melakukan difusi tidak langsung menggunakan ray-tracing dan dengan demikian integrasi monte-carol (yang merupakan teknik paling umum dalam kasus ini), Anda harus membagi kontribusi masing-masing sampel dengan PDF Anda . Ini dicontohkan dengan baik di sini .
Perhatikan juga bahwa dalam referensi yang disebutkan, jika PDF memiliki istilah yang juga Anda temukan dalam persamaan rendering maka Anda dapat mengoptimalkan kode jika Anda ingin membatalkan syarat-syarat ini.
Jangan lupa bahwa BRDF dari permukaan difus adalah ρ / π di mana ρ berarti albedo permukaan. Jadi kita perlu membagi hasilnya dengan π. Meskipun dalam kasus komponen difus tidak langsung, jangan lupa bahwa kita seharusnya membagi hasil castRay dengan PDF dari variabel acak, yang seperti yang kita tunjukkan sebelumnya dalam bab ini adalah 1 / (2π). Membagi indirectDiffuseby 1 / (2π) mis sama dengan mengalikan nilai ini dengan 2π. Dan karena albedo juga dibagi dengan π kita dapat menyederhanakan kode ...
Anda memiliki situasi yang serupa. Jika Anda melihat PDF untuk pengambilan sampel cosinus, maka Anda akan menyadari bahwa persyaratan dapat dibatalkan. Yang tidak berarti mereka 'tidak' sepenuhnya diperlukan. Mereka, mereka hanya membatalkan satu sama lain yang memungkinkan untuk mengoptimalkan kode sedikit (dan menghindari beberapa divisi, perkalian, dll.). Anda lebih menyukai optimasi mikro di sini ... yang dapat membingungkan jika Anda mencoba mempelajari teorinya dengan hanya melihat kode yang dioptimalkan (yang sering tidak dikomentari dengan benar).
( C o s ( θ ) . . . )PD F= ( C o s ( θ ) . . . )c o s ( θ )π= . . .