遺留問題詳細說明
已解決部分
- 立體視覺中的視差;
- 橫向渲染壓縮。
遺留問題
1.左右分屏中的部分地圖切片未渲染
- 問題描述:如下圖(圖片為解決問題后的圖片),紅色區域會顯示黑色,無法正常顯示影像。
2.相機的位置出現在地形下方 - 問題描述:當左屏幕的相機緊貼地形表面時,由於視差的存在,右屏幕的相機會位於地形下方,導致右屏幕中的地形渲染出現問題
暫時的解決方案
- 拋棄之前的解決方案(在源碼層面對地球切片的渲染機制進行修改,涉及到三維的消隱算法),原因是修改后的渲染效率太低下。
- 所以暫時不在源碼層面進行修改,重新寫一個JS函數,實現立體功能。關鍵代碼:
關鍵思想:用兩個canvas分別渲染左眼和右眼 右屏幕渲染 將相機位置更改為右眼的位置 scene.camera.position = VRCam.position; view.render(); 以image的形式繪制到右屏幕上 var ER = scene.canvas; var EL=document.getElementById('EL'); EL.getContext('2d').drawImage(ER,0,0); 左屏幕渲染 將相機位置改成原來左眼的位置,並進行渲染 scene.camera.position =OCam.position; view.render();
完善版解決方案
雖然暫時解決了問題,但是最終還是應該在源碼層面對功能進行完善,這部分就涉及到了源碼部分左眼和右眼之間渲染的邏輯關系,尚在研究。