Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Webkit: API WebGPU che semplifica il rendering 3D

WebGPU è un'API per WebKit concepita per offrire funzionalità di rendering di elementi 3D e di calcolo parallelo sulle pagine Internet.
Webkit: API WebGPU che semplifica il rendering 3D
WebGPU è un'API per WebKit concepita per offrire funzionalità di rendering di elementi 3D e di calcolo parallelo sulle pagine Internet.
Link copiato negli appunti

Il team di Webkit ha recentemente presentato il suo nuovo progetto open source chiamato WebGPU, si tratta di un'API pensata per offrire funzionalità di rendering di elementi 3D e di calcolo parallelo sulle pagine web.

Il calcolo parallelo dei dati è quella tecnica che consente l'esecuzione simultanea del codice sorgente di uno o più programmi (diviso e specificamente adattato) su più microprocessori o più core dello stesso processore, allo scopo di aumentare le prestazioni del sistema di elaborazione in fase computazionale. WebGPU è stata sviluppata per essere più veloce e facile da usare rispetto alle API WebGL. Gli sviluppatori del progetto hanno sfruttando alcuni concetti derivati da un nuovo linguaggio, ancora in fase di sviluppo, definito Web High-Level Shading Language.

Gran parte delle applicazioni 3D esegue il render di più di un singolo oggetto alla volta. In WebGL ciascuno di quegli oggetti richiede una serie di state-changing call prima di poter essere renderizzato. Ad esempio il rendering di un singolo oggetto in WebGL potrebbe essere generato in questo modo:

gl.UseProgram(program1);
gl.frontFace(gl.CW);
gl.cullFace(gl.FRONT);
gl.blendEquationSeparate(gl.FUNC_ADD, gl.FUNC_MIN);
gl.blendFuncSeparate(gl.SRC_COLOR, gl.ZERO, gl.SRC_ALPHA, gl.ZERO);
gl.colorMask(true, false, true, true);
gl.depthMask(true);
gl.stencilMask(1);
gl.depthFunc(gl.GREATER);
gl.drawArrays(gl.TRIANGLES, 0, count);

al contrario il rendering di un singolo oggetto con WebGPU viene prodotto in questo modo:

encoder.setPipeline(renderPipeline);
encoder.draw(count, 1, 0, 0);

In WebGPU tutti gli stati sono dunque racchiusi in un unico oggetto, chiamato pipeline state object. In buona sostanza il team di Webkit ha reso più semplice per i Web developer eseguire rendering 3D complessi.

È stata realizzata anche una tech demo di WebGPU, visualizzabile solo tramite la versione preview di Safari 91, in collaborazione con gli sviluppatori di Babylon.js, un motore 3D in tempo reale che utilizza una libreria JavaScript per la visualizzazione di grafica 3D in un browser Web, in modo da poter dimostrare al pubblico le potenzialità della nuova API.

WebGPU

Gli sviluppatori possono interfacciarsi con WebGPU tramite Javascript, ma in futuro il team di Webkit prevede anche l'implementazione del supporto a WebAssembly.

Via Webkit

Ti consigliamo anche