WebGL的全稱為Web Graphic Library(網頁圖形庫),主要用于交互式渲染2D圖形和3D圖形。目前HarmonyOS中使用的WebGL是基于OpenGL裁剪的OpenGL ES,可以在HTML5的canvas元素對象中使用,無需使用插件,支持跨平臺。WebGL程序是由JavaScript代碼組成的,其中使用的API可以利用用戶設備提供的GPU硬件完成圖形渲染和加速。基本概念如下。
一、著色器
可以理解為運行在顯卡中的指令和數據。在WebGL中,著色器是用OpenGL ES著色語言(GLSL)編寫的。
完整的著色器包括頂點著色器和片元著色器。頂點著色器和片元著色器的交互則涉及到圖片光柵化。
頂點著色器:最基本的任務是接收三維空間中點的坐標,將其處理為二維空間中的坐標并輸出。
片元著色器:最基本的任務是對需要處理的屏幕上的每個像素輸出一個顏色值。
圖片光柵化:將頂點著色器輸出的二維空間中的點坐標,轉化為需要處理的像素并傳遞給片元著色器的過程。
二、緩沖區
駐存于內存中的JavaScript對象,存儲著即將推送到著色器中的attribute對象。
三、著色器程序
將緩沖區中的數據推送到著色器中還需涉及“著色器程序”,一個負責關聯著色器和緩沖區的JavaScript對象。一個WebGLProgram 對象由兩個編譯過后的 WebGLShader 組成,即頂點著色器和片段著色器(均由 GLSL 語言所寫)。
四、鴻蒙開發技術已更新[qr23.cn/AKFP8k
]參考前往。
五、運作機制
或者添加mau123789是v直接拿去鴻蒙NEXT技術文檔
圖1 WebGL運作機制
應用前端HTML5繪制界面組件。
Native API完成前端JavaScript與C++代碼交互。
JavaScript engine為圖形框架,為WebGL模塊提供繪制對象Surface。
WebGL模塊對外暴露OpenGL ES的GPU繪制接口。
中間接口層EGL(Embedded Graphics Library)完成不同平臺的適配。
審核編輯 黃宇
-
gpu
+關注
關注
28文章
4729瀏覽量
128903 -
HarmonyOS
+關注
關注
79文章
1974瀏覽量
30151 -
鴻蒙OS
+關注
關注
0文章
188瀏覽量
4383
發布評論請先 登錄
相關推薦
評論