Teknologian jakaminen

Reaaliaikainen 3D-grafiikka WebGL2:lla

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

WebGL-renderöintiputki

Seuraava kuva on kaavio WebGL-renderöintiputkista:

Vertex-puskuriobjektit (VBO:t)

VBOS sisältää tietoa, jota käytetään kuvaamaan geometria. Esimerkiksi geometrian kärkikoordinaatit, normaalikoordinaatit, värit, pintakuviokoordinaatit jne.

Indeksipuskuriobjektit (IBOt)

IBOt sisältävät tietoa, joka kuvaa kärkisuhteita. Se käyttää VBO:iden kärjen indeksipaikkaa.

Vertex Shader

Vertex-varjostin suoritetaan jokaisessa pisteessä. Se käsittelee kärkipisteisiin liittyviä tietoja, kuten kärkikoordinaatit, normaalikoordinaatit, väri- ja pintakoordinaatit. Nämä tiedot saadaan VBO:lta ja liitetään vertex-varjostimessa käytettyyn attribuuttiin.

Fragmenttivarjostin

Fragmenttien varjostin suoritetaan jokaiselle fragmentille kunkin fragmentin värin laskemiseksi.

Kehyspuskuri

Kehyspuskuri on kaksiulotteinen puskuri, jota käytetään fragmenttien varjostimessa käsiteltyjen fragmenttien tallentamiseen. Kun kaikki fragmentit on käsitelty, renderöintitulokset voidaan näyttää näytöllä.

Attribuutit

Ominaisuudet ovat vertex-varjostimen syötemuuttujia. Se määrittää, kuinka tiedot luetaan puskurista ja välitetään vertex-varjostimelle. Voit tallentaa sijaintitietoja (kolme 32-bittistä liukulukutietoa) puskuriin. Määritä sitten mistä puskurista paikkatiedot luetaan, mikä on sijaintitiedon tietotyyppi, mistä puskurin paikasta lukeminen aloitetaan ja kuinka monta tavua luetaan yhteensä. Koska vertex-varjostin on suoritettava jokaisessa kärjessä, attribuuttien arvot eivät ole samat joka kerta, kun se suoritetaan.

Univormut

Uniformit ovat syöttömuuttujia vertex-varjostimille ja fragmenttivarjostimille. Toisin kuin attribuutit, Uniforms-muuttujat ovat kiinteät renderöintisilmukassa. Esimerkiksi valonlähteen sijainti.

Tekstuurit

Tekstuurit sisältävät usein kuvadataa, mutta voivat sisältää muutakin dataa.

Vaihtelevia

Vaihtelevia muuttujia käytetään usein siirtämään dataa vertex-varjostimesta fragmenttivarjostimelle. Vertex-varjostimen Varyings-muuttujat interpoloidaan ennen kuin ne välitetään fragmenttivarjostimelle.