raytracing

    -1熱度

    1回答

    我開發光線追蹤系統,它是工作,現在我想支持更多的原語(現在它支持:球,盒,飛機和三角形),和我有缸問題。我知道與圓柱相交的光線我需要做兩個檢查,第一個是與身體(與我得到一個無限圓柱體),爲此,我假設圓二維,在平面XZ(X2 + Z 2 = r,其中r是半徑),那麼我需要檢查Y座標是0,並且高度和最後我需要檢查的交集是在帽(X 2 + Z 2 < = r,其中r是半徑)之間。 我的代碼是後續(見更多

    3熱度

    1回答

    我正在研究使用C++的raytracer,到目前爲止,我已經能夠基於漫反射,鏡面反射和環境組件計算光照模型。我的問題出現時,我試圖陰影添加到我的場景:場景得到真正搞砸: 我的代碼被劃分如下: 我有一個基類「場景對象」 ,它有一個虛擬方法intersect(),它接受一個射線(由原點和方向定義)並輸出一個布爾值,以及爲計算的t值,一個擊中點和該對象的法線返回參數。 「材質」類包含鏡面和漫反射顏色(矢

    2熱度

    2回答

    我已經開始編碼光線跟蹤器,但今天我在處理反射時遇到了問題。 首先,這裏是問題的一個圖像: 我只計算出的對象的反射光顏色(所以沒有光效果的反射物體上施加) 的問題是,失真,我真的不明白。 我看着我的rayVector和normalVector之間的角度,它看起來不錯,反射的矢量也看起來很好。 Vector Math::calcReflectedVector(const Vector &ray,

    3熱度

    1回答

    我一直在尋找,並試圖瞭解下面的代碼位 float sdBox(vec3 p, vec3 b) { vec3 d = abs(p) - b; return min(max(d.x,max(d.y,d.z)),0.0) + length(max(d,0.0)); } 我明白length(d)處理SDF情況下點是關閉的「角落」(即中d所有部件正面),並且max(d

    1熱度

    1回答

    我有一個關於四面體的一個問題 - 射線路口: 我試圖執行一個四面體射線相交測試應返回出口正面的指標。對於路口,我跟着這個博客帖子,其中標量三重積被用於相交測試: http://realtimecollisiondetection.net/blog/?p=13 然而,我的代碼總是返回臉,出射面相同。在嘗試自己找到解決方案而沒有成功之後,我將不勝感激任何有關我的路口測試中的錯誤可能存在的提示。 輸入參

    0熱度

    1回答

    所以我正在使用Jetbrains Clion IDE在C++中編寫光線跟蹤器。當我嘗試創建啓用多重取樣抗鋸齒的600 * 600圖像時,內存不足。我得到這個錯誤: terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc This application has requested

    1熱度

    1回答

    我在光線追蹤剛剛實施的思考,這裏是處理反射的代碼,但是我有我的所有代碼上傳到github repository爲更好的閱讀: Color finalColor = closestObjectMaterial.GetColor() * AMBIENTLIGHT; // Add ambient light to the calculation // Reflections if(closestO

    11熱度

    4回答

    我有一個複雜的3D場景,需要基於3D座標在頂部顯示HTML元素。 (我只是簡單地在頂部疊加一個div標籤,並用CSS定位它。)但是,當3D座標被模型遮蔽時(或者以另一種方式表達的話,我也需要部分隱藏它(例如,使它透明)當它在相機中不可見時)。這些模型可能有成千上萬的人臉,我需要一種方法來查明它是否被遮擋,足夠快,可以每秒多次運行。 目前,我使用three.js所內置的光線跟蹤,用下面的代碼: //

    0熱度

    1回答

    我編碼一個雙向路徑在C++跟蹤學校和我有一些問題(我沒有在網上找到有用的解釋) 1)爲什麼EyePath多了一個頂點? 2)當我在EyePath創建期間計算直接照明時,是否需要考慮先前頂點的值?我問這是因爲我在代碼中看到它,但它看起來很奇怪。 3)我不太明白如何連接兩個路徑。隨機?每個人與每個人?目前,我隨機將一個頂點與另一個頂點連接起來。 4)PBRT書根據Eyepath和LightPath長度

    1熱度

    1回答

    我正在做一個雙向路徑示蹤和我有一些麻煩。 要明確: 1)一個點光源 2)中的所有對象都漫 3)的所有對象是球體,甚至壁(它們是非常大的) 4)NO MIS WEIGHTING 發光是一個3D矢量。球體的BRDF是3D矢量。硬編碼。 在主要功能如下我產生EyePath和光路,然後我將它們連接起來。至少我嘗試。 在這篇文章中,我將談論的主要功能則EyePath然後光路。關於連接功能的討論一旦出現Eye