私は、optix に基づくプロジェクトに取り組んでいます。プログレッシブ フォトン マッピングを使用する必要があるため、サンプルからプログレッシブ フォトン マッピングを使用しようとしていますが、透明マテリアルが実装されていません。私はよくグーグルで検索し、透明素材を含む他のサンプル (Glass、Tutorial、Whitted など) を理解しようとしました。最後に、次のように解決策を得ました。
- ヒットポイント(交点)を見つけます(下のh)
- その点から別の光線を生成する
- 新しく生成された点の色を使用する
従うと、その部分のコードを見つけることもできます。なぜなら、新しく生成されたレイ (上記のパート 3) に対して黒色 (.0f、.0f、0.f) を取得する理由がわかりません。
optix::Ray ray( h, t, rtpass_ray_type, scene_epsilon );
HitPRD refr_prd;
refr_prd.ray_depth = hit_prd.ray_depth+1;
refr_prd.importance = importance;
rtTrace( top_object, ray, refr_prd );
result += (1.0f - reflection) * refraction_color * refr_prd.attenuation;
どんなアイデアでも大歓迎です。関数 rtTrace() を使用した後、refr_prd.attenuationにはいくつかの色が含まれている必要があることに注意してください。手順をよりよく理解できるように、reflection と reflaction_color について説明しました。それらは単に無視できます。