通過谷歌的angle庫可以在專案中,呼叫opengl介面渲染時,選擇呼叫directx或者webgl來渲染,避免機器沒有安裝opengl驅動啟動異常的問題。
這個庫的使用可以不修改原有使用opengl的功能上,使用directx繪製。
以下是我在接入該庫時遇到的一系類問題和心得:
針對windows 平台,微軟也從谷歌原生angle上作出小修改:
如果使用windows開發,建議使用微軟的angle專案。
遇到的一些坑:
1.在繪製線條的時候,呼叫gldrawarray(gl_line, 0, 2)介面繪製線條時,directx渲染底層呼叫drawprimitive介面繪製,但該介面不知道控制線條的粗細、實虛線,需要自己在修改renderer9.cpp(本人使用d3d9來渲染)的drawimpletment函式,
使用id3dxline介面繪製線條。
2.效能問題,由於angle庫呼叫opengl或者directx時,需要轉換各自渲染介面所需的頂點格式或者著色器等等,轉換過程需要消耗一定的cpu運算能力,如果在一幀需要同時大量繪製操作,建議不適用該庫。如果在記憶體允許的情況下,(本人在一幀中測試,繪製九千條線,fps會從30幀下降到10多幀,出現明顯卡頓)。
可以打包繪製的頂點資料,一次性繪製完成,消耗更多的記憶體,換取效能。
3.關於xp系統下的使用問題,官方指出只能通過vs 2015及最新版本編譯,並且使用windows sdk10以上編譯,很顯然該庫不支援xp系統下執行,而且xp系統也不支援directx 11的繪製。我後面改用vs 2015編譯, 平台工具集選擇 「visual studio 2013 - windows xp (v120_xp)」,刪除directx11 的api,不使用系統自帶的direct庫和標頭檔案, 改用directx sdk的庫和標頭檔案,
刪除不相容xp的api,最後編譯成庫在xp系統下執行,實現過程相當繁瑣,工作量也多,並且後續bug維護難以修復,畢竟不是官方開發人員。
最後總結一下angle的優缺點:
優點:跨平台切換渲染方式,不擔心裝置使用環境或缺失驅動問題。
缺點:效能一般,不適用大量繪製,不相容老系統xp,directx 不相容控制線條粗細。
關於谷歌Colab使用心得的總結
檔案管理 檔案執行 其他google colab 阻止自動掉線 corgi和kitty模式 colab環境已經整合了流行的深度學習框架tensorflow,並附贈了乙個虛擬機器 40gb硬碟 2 2.30ghz cpu 12.72gb記憶體 colab的操作類似於jupyter notebook c...
libghttp庫的使用心得
需要用到native程式上網接收檔案到本地,需要的協議為http。一開始參考網上的 寫了乙個,但總是發現檔案有錯亂。在仔細debug後,發現問題出在使用同步和非同步獲取檔案的問題上。在開發前,並沒有好好的去區分非同步和同步,導致挖了個不小的坑。一般在dowhile 1 中,一般選擇使用同步的方式 如...
Firebird 資料庫使用心得
公司乙個任務,需要乙個免安裝的嵌入式關聯式資料庫,在試用了對比了 access 和 firebird 之後,選擇了更簡便 效能更好的後者。firebird是乙個真正的關聯式資料庫,支援儲存過程 檢視 觸發器 事務等大型關聯式資料庫的所有特性,它是乙個開源的,可以自由使用的資料庫 即使是商業上的使用 ...