raytracing

    6熱度

    2回答

    我正在嘗試在3D中創建一個不可能的立方體的圖形項目。不可能的立方體看起來像這樣: 這背後的訣竅是其中兩個被「腰斬」,並從一個特定的角度拍攝的照片給是不可能的錯覺邊緣。 嗯,我想讓這個,而不是一個靜態圖像,我想能夠動畫它(旋轉)保持不可能的屬性。 我已經設法在攪拌機的立方體,你可以在下面的截圖中看到: 我想聽聽你的建議,我怎麼能達到預期的效果。一個想法是使背後邊緣(或更多)的邊緣部分透明,以便每當攝

    10熱度

    1回答

    我正在用Python/numpy/scipy寫一個小光線跟蹤器。曲面被建模爲二維函數,給出高於正常平面的高度。我減少了找到射線和曲面之間交點的問題,以找到一個變量的函數根。這些功能是連續不斷的微分。 有沒有比使用scipy root finders(也許使用多個進程)循環遍歷所有函數更有效的方法? 編輯:這些函數是表示光線的線性函數和表面函數之間的差異,限於交叉平面。

    2熱度

    2回答

    我想知道我們是否能夠制定光線跟蹤的性能。在我的原始射線追蹤器中,性能主要取決於這個公式:寬度x高度x採樣器數量x(對象數量+燈光數量) 因此,例如,在Pixar或任何其他大公司中,它們是否遵循這樣的績效評估公式。性能取決於對象的三角形數量嗎?例如,如果我想大致計算1000x1000幀的最大渲染時間以及包含5.000.000個三角形的平均500個對象,是否有可能?

    1熱度

    1回答

    我試圖讀取http://www.kevinbeason.com/smallpt/的來源,尤其是有一件事我無法理解。在#55線上它說f=f*(1/p)。 這是什麼?它有什麼作用?更重要的是,爲什麼它完全像這樣?是否有某種啓發使圖像更快地收斂? 換句話說,在文獻中我看到: function radiance ... return Le(x) + R(p) * radiance(rn

    0熱度

    1回答

    我需要在不使用OpenGL的情況下在c/C++中製作球體射線跟蹤器。我很困惑,但是如何在沒有任何gl功能的場景中放置一個球體或光源。有人可以解釋如何做到這一點?

    1熱度

    1回答

    我正在嘗試爲簡單的射線施加器添加一些景深。我使用的方法是,對於每個像素,光線從小孔徑區域內的多個隨機「眼睛」位置通過該像素的焦點投射,並且將來自每個這些光線的顏色樣本一起平均。 我的問題是:這些樣本應該如何加權平均?它只是一個直接的未加權平均值,還是根據射線從哪裏開始加權?例如,我可以對其進行加重,使光圈中心的光線具有最大的重量,並在光圈的極限處具有最小的重量。 我試圖從光學的角度來理解它:我明白

    2熱度

    1回答

    我正在閱讀別人的代碼,他代表一個平面作爲正常和偏移,但是我不確定那個偏移是什麼。我想這是從世界起源到飛機中心的距離? 感謝

    0熱度

    2回答

    我知道如何獲得光線和平面之間的交點,如果我知道光線和平面上的一個點,並且平面正常。 在代碼中我使用的平面是從原點表示爲帶符號的偏移量,並且正常,並且我需要在飛機上得到一些點。這個怎麼做?因此,平面方程:Ax + By + Cz + D = 0,並且我知道A,B和C,即基本上是 平面的法線並且我知道D,它是從起源。而我的問題是 ,因爲如何在飛機上獲得一些3D點? 感謝

    2熱度

    2回答

    我正在寫一個簡單的射線追蹤器,並且現在保持簡單我已經決定在我的場景中只有球體。我現在正處於一個舞臺,我只想確認我的光線正確地與場景中的球體相交,沒有別的。我創建了一個Ray和Sphere類,然後在我的主文件中創建了一個函數,通過每個像素檢查是否有交點(相關代碼將在下面發佈)。問題是與球體的整個交點表現得相當奇怪。如果我用中心(0,0,-20)和半徑1創建一個球體,那麼我只能得到一個總是在我的圖像(

    1熱度

    1回答

    你好我正在使用Nvidia OptiX創建一個RayTracer。 我使用示例程序「sample0」和「tutorial」來設置一個簡單的示蹤器。 在我的C++代碼,我設置了一切: this->buffer_height = 512u; this->buffer_width = 512u; char path_to_ptx[512]; _context = _context->create(