AR/VR多線程處理的八年經(jīng)驗(yàn)與技巧
1. 什么是線程?
我知道這是一個(gè)基礎(chǔ)性的問(wèn)題,但我從它開(kāi)始寫(xiě)起是有一個(gè)重要原因。這個(gè)理由會(huì)在本章后面變得清晰起來(lái)。
維基百科將線程描述為:可以與其它指令并發(fā)執(zhí)行的一系列指令。
我強(qiáng)調(diào)并發(fā)執(zhí)行是因?yàn)樗鼘?duì)這次討論至關(guān)重要。并發(fā)運(yùn)行多個(gè)任務(wù)的能力使得線程對(duì)于模擬至關(guān)重要。
2. 關(guān)于內(nèi)核與線程的簡(jiǎn)要說(shuō)明
一個(gè)CPU可以有多個(gè)內(nèi)核,而有些內(nèi)核可以運(yùn)行多個(gè)線程。例如,Ryzen Threadripper最多有64個(gè)內(nèi)核,每個(gè)內(nèi)核可以運(yùn)行2個(gè)線程。這意味著,如果你編寫(xiě)的模擬屬于高度多線程,你可能會(huì)有多達(dá)128個(gè)不同的任務(wù)同時(shí)發(fā)生。你可以用這些線程來(lái)運(yùn)行NPC的人工智能大腦,或者在物理模擬中制造碰撞。
但請(qǐng)記住,大多數(shù)實(shí)際場(chǎng)景不會(huì)接近128個(gè)線程。即使是英特爾的旗艦i9 10900k都只是提供20個(gè)并發(fā)線程。不過(guò),編寫(xiě)多線程代碼意味著提供多個(gè)內(nèi)核的設(shè)備可以同時(shí)發(fā)生多個(gè)任務(wù)。
3. 線程如何影響應(yīng)用程序
即使你不依賴(lài)先進(jìn)的人工智能,但幾乎所有的MR應(yīng)用都在某種程度上使用物理。例如,Hand Menu菜單中的按鈕會(huì)使用物理來(lái)檢測(cè)指尖何時(shí)接觸按鈕的表面。


評(píng)論(0)