我試圖渲染圖像類同左邊一個,並具有與陰影+思考的問題。
現在,只有影子代碼是開放的顯示問題。
正如你所看到的,紅球應接近綠色的被隱藏,但像素都得到搞砸了一些奇怪的原因。當我關閉代碼的陰影部分時,它通常會呈現沒有陰影的紅色球。
我認爲這個問題的根源也在影響反射。希望你們能給我一些提示;我失去了它。
我試圖渲染圖像類同左邊一個,並具有與陰影+思考的問題。
現在,只有影子代碼是開放的顯示問題。
正如你所看到的,紅球應接近綠色的被隱藏,但像素都得到搞砸了一些奇怪的原因。當我關閉代碼的陰影部分時,它通常會呈現沒有陰影的紅色球。
我認爲這個問題的根源也在影響反射。希望你們能給我一些提示;我失去了它。
鑑於您的左側圖像顯示癌症,這是陰影射線擊中反射對象的經典案例。當碰撞測試陰影射線時,您需要排除產生射線的表面。只需將源對象傳遞給你的影子函數,並忽略它。
此方法僅適用於凸形。如果你有形狀可以做自我陰影(例如圓環),你需要更一般。通常的做法是定義一個epsilon(浮點容錯)並忽略比這更近的任何交點。
另一種方法是檢測你打且表面側。您不應該在球體上產生自身陰影,因爲射線的投射方向與表面法線相同(即出射射線的點積和表面法線是正的) - 這不應被視爲陰影。
解決: 有一個算法問題,這是不容易解釋,
另一種方法是:Basicly我做一個檢查,如果餘弦角度大於0.0001,如果是更大然後這個我不不會影響它
您通常應該直接在您的文章中包含您的代碼(如果可能的話將其縮小到更小),而不是鏈接到外部網站。 – Ryan
確保你不是自己的陰影。我之前寫過類似的東西,光線與它正在離開的表面相交,我通過將交點略微移向出射光線的方向(遠離表面)來固定它。 – Borgleader
無法管理髮布代碼,所以我把它鏈接出來:/ – Esqarrouth