Cesium左右立體視覺續篇——遺留問題(渲染錯誤)以及臨時替代方案


遺留問題詳細說明


 已解決部分

  1. 立體視覺中的視差;
  2. 橫向渲染壓縮。

遺留問題

  1.左右分屏中的部分地圖切片未渲染

  • 問題描述:如下圖(圖片為解決問題后的圖片),紅色區域會顯示黑色,無法正常顯示影像。

    2.相機的位置出現在地形下方
  • 問題描述:當左屏幕的相機緊貼地形表面時,由於視差的存在,右屏幕的相機會位於地形下方,導致右屏幕中的地形渲染出現問題

 

暫時的解決方案


 

  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();

完善版解決方案


  雖然暫時解決了問題,但是最終還是應該在源碼層面對功能進行完善,這部分就涉及到了源碼部分左眼和右眼之間渲染的邏輯關系,尚在研究。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM