WebGL的全稱為Web Graphic Library(網頁圖形庫),主要用于交互式渲染2D圖形和3D圖形。目前HarmonyOS中使用的WebGL是基于OpenGL裁剪的OpenGL ES,可以在HTML5的canvas元素對象中使用,無需使用插件,支持跨平臺。WebGL程序是由JavaScript代碼組成的,其中使用的API可以利用用戶設備提供的GPU硬件完成圖形渲染和加速。基本概念如下。
一、著色器
可以理解為運行在顯卡中的指令和數(shù)據(jù)。在WebGL中,著色器是用OpenGL ES著色語言(GLSL)編寫的。
完整的著色器包括頂點著色器和片元著色器。頂點著色器和片元著色器的交互則涉及到圖片光柵化。
頂點著色器:最基本的任務是接收三維空間中點的坐標,將其處理為二維空間中的坐標并輸出。
片元著色器:最基本的任務是對需要處理的屏幕上的每個像素輸出一個顏色值。
圖片光柵化:將頂點著色器輸出的二維空間中的點坐標,轉化為需要處理的像素并傳遞給片元著色器的過程。
二、緩沖區(qū)
駐存于內存中的JavaScript對象,存儲著即將推送到著色器中的attribute對象。
三、著色器程序
將緩沖區(qū)中的數(shù)據(jù)推送到著色器中還需涉及“著色器程序”,一個負責關聯(lián)著色器和緩沖區(qū)的JavaScript對象。一個WebGLProgram 對象由兩個編譯過后的 WebGLShader 組成,即頂點著色器和片段著色器(均由 GLSL 語言所寫)。
四、鴻蒙開發(fā)技術已更新[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文章
5194瀏覽量
135450 -
HarmonyOS
+關注
關注
80文章
2153瀏覽量
36049 -
鴻蒙OS
+關注
關注
0文章
193瀏覽量
5485
發(fā)布評論請先 登錄
鴻蒙OS元服務開發(fā)案例:【WebGL網頁圖形庫開發(fā)著色器繪制彩色三角形】
鴻蒙原生應用/元服務實戰(zhàn)-Web隱私聲明
鴻蒙原生應用元服務開發(fā)-WebGL網頁圖形庫開發(fā)概述
鴻蒙原生應用元服務開發(fā)-WebGL網頁圖形庫開發(fā)接口說明
鴻蒙原生應用元服務開發(fā)-WebGL網頁圖形庫開發(fā)無著色器繪制2D圖形
HarmonyOS NEXT應用元服務開發(fā)Intents Kit(意圖框架服務)本地搜索方案概述
鴻蒙原生開發(fā)手記:01-元服務開發(fā)
鴻蒙原生開發(fā)手記:03-元服務開發(fā)全流程(開發(fā)元服務,只需要看這一篇文章)
鴻蒙應用元服務開發(fā)-Account Kit概述
鴻蒙應用元服務開發(fā)-Account Kit獲取華為賬號用戶信息概述
華為開發(fā)者大會2021鴻蒙os在哪場
鴻蒙OS元服務開發(fā)說明:【WebGL網頁圖形庫開發(fā)接口】
鴻蒙OS元服務開發(fā):【WebGL網頁圖形庫開發(fā)概述】
評論