我想知道我們是否能夠制定光線跟蹤的性能。在我的原始射線追蹤器中,性能主要取決於這個公式:寬度x高度x採樣器數量x(對象數量+燈光數量)光線跟蹤的性能
因此,例如,在Pixar或任何其他大公司中,它們是否遵循這樣的績效評估公式。性能取決於對象的三角形數量嗎?例如,如果我想大致計算1000x1000幀的最大渲染時間以及包含5.000.000個三角形的平均500個對象,是否有可能?
我想知道我們是否能夠制定光線跟蹤的性能。在我的原始射線追蹤器中,性能主要取決於這個公式:寬度x高度x採樣器數量x(對象數量+燈光數量)光線跟蹤的性能
因此,例如,在Pixar或任何其他大公司中,它們是否遵循這樣的績效評估公式。性能取決於對象的三角形數量嗎?例如,如果我想大致計算1000x1000幀的最大渲染時間以及包含5.000.000個三角形的平均500個對象,是否有可能?
用於認真工作的射線追蹤器使用各種加速方法,使其與日誌(三角形)成正比,而不是三角形的數量。並且有時也與燈的數量呈次線性關係(不包括不能影響場景部分的燈,同時對所有燈一起採樣等等)。另一方面,物質變化(即使具有固定的分辨率和場景幾何形狀)也會發生很大的變化。例如,使事物或多或少反射/折射可以在場景的平均「射線深度」上發生很大變化。一般而言,對於給定的一組幾何圖形,光線和材質,時間應該與光線總數(即分辨率和採樣率)成線性比例關係,但是對於真正大的場景通過讀取場景輸入(可能是GB和GB解析)以及從磁盤或網絡讀取紋理(我們通常具有參考>> 1 TB紋理的場景)來部分序列化。
所以,總體來說,你所期望的時間是一定的相關性:
scene_I/O + XRES * Y殘餘物*樣品*(shading_factor + texture_factor +登錄(三角形))+ texture_I/O
的與您的材料相關的I/O編號以及任意的陰影和紋理因素可能會導致難以準確預測。
您只能擁有表演的上限。例如,如果所有多邊形(三角形或其他)不在視圖中,則計算將非常快速。
但是,如果你想計算上限,你需要定義算法的具體細節:你使用的是行進立方體?你是否刪除背面多邊形等...
但是對於特定的算法,計算應該非常簡單。
p.s.對象的數量只與其所有多邊形的總和無關。
對象的數量不是無關的。許多光線追蹤器在對象存在一個邊界層次結構時使用2級加速度結構,然後爲每個包含其細分的三角形的對象分別設置一個單獨的層次結構。 –
但是每個像素的計算都不是O(1),所以你不能簡單地這樣說!另外,當光線追蹤(使用三角形模型時)時,三角形的數量會發揮作用,但作爲每個像素需要的時間的複雜部分... – Jasper
所以,你說我們不能說最大時間三角形和像素? –
你可以說一些關於上限的東西(儘管我猜你會需要一些關於特定射線追蹤器的更多細節),但我不認爲你實際上可以推斷任何有用的信息。 – Jasper