6. WebGL Graphics

WebGL圖形

WebGL是一種用于在Web瀏覽器中呈現(xiàn)圖形的API,它基于OpenGL ES圖形庫(kù)的功能。 WebGL 1.0大致匹配OpenGL ES 2.0功能,WebGL 2.0大致匹配OpenGL ES 3.0功能。

Deferred Rendering 延期渲染

如果WebGL2.0可用,Unity WebGL僅支持 Deferred Rendering Path(延遲渲染路徑)。在WebGL1.0上,Unity WebGL運(yùn)行時(shí)將回退到Forward Rendering

Global Illumination 全球照明

Unity WebGL僅支持baked GI(烘焙GI)。 WebGL目前不支持實(shí)時(shí)GI。此外,僅支持非定向光照貼圖。

Linear Rendering 線性渲染

Unity WebGL僅支持使用WebGL 2.0進(jìn)行 linear color space rendering(線性色彩空間渲染)。線性色彩空間渲染不具備WebGL 1.0的后備支持。要使用線性色彩空間渲染來(lái)構(gòu)建WebGL播放器,您需要在Player Settings > Other Settings中刪除WebGL 1.0 API; 取消選中Automatic Graphics API(自動(dòng)圖形API)。

有些網(wǎng)頁(yè)瀏覽器不支持sRGB DXT texture compression(sRGB DXT紋理壓縮)。由于所有DXT紋理的運(yùn)行時(shí)解壓,這可能會(huì)降低使用線性渲染時(shí)渲染性能的質(zhì)量。

MovieTextures

WebGL不支持使用MovieTexture類播放視頻。但是,您可以使用HTML5視頻元素高效地播放WebGL內(nèi)容中的視頻。下載此Asset Store package(資產(chǎn)商店包)以了解如何執(zhí)行此操作的示例。

WebGL Shader code restrictions

WebGL 1.0規(guī)范對(duì)GLSLS著色器代碼施加了一些限制,GLSLS著色器代碼受到許多OpenGL ES 2.0實(shí)現(xiàn)允許的限制。當(dāng)你編寫你自己的著色器時(shí),這主要是相關(guān)的。

具體而言,WebGL限制哪些值可用于索引數(shù)組或矩陣:WebGL只允許使用常量表達(dá)式,循環(huán)索引或組合的動(dòng)態(tài)索引。唯一的例外是頂點(diǎn)著色器中的統(tǒng)一訪問(wèn),它可以使用任何表達(dá)式進(jìn)行索引。

此外,限制適用于控制結(jié)構(gòu)。允許的循環(huán)的唯一類型是計(jì)數(shù)for循環(huán),其中初始化器將變量初始化為常量,更新將常量添加到變量或從變量中減去常量,并且繼續(xù)測(cè)試將該變量與常量進(jìn)行比較。 for循環(huán)不符合那些標(biāo)準(zhǔn),while循環(huán)是不允許的。

Font rendering 字體渲染

Unity WebGL支持像所有Unity平臺(tái)一樣的動(dòng)態(tài)字體渲染。但是,它無(wú)法訪問(wèn)用戶計(jì)算機(jī)上安裝的字體,因此任何使用的字體都必須包含在項(xiàng)目文件夾中(包括國(guó)際字符的任何后備字體或字體的粗體/斜體版本),并set up as fallback font names(設(shè)置為后備字體名稱)。

Anti-Aliasing 抗鋸齒

WebGL支持瀏覽器和GPU的大多數(shù)(但不是全部)組合的抗鋸齒功能。要使用它,必須在WebGL平臺(tái)的默認(rèn)Quality Setting(質(zhì)量設(shè)置)中啟用消除鋸齒功能。

請(qǐng)注意,在WebGL1.0中有幾個(gè)限制:

  • 在運(yùn)行時(shí)切換質(zhì)量設(shè)置不會(huì)啟用或禁用消除鋸齒 - 它必須在播放器啟動(dòng)時(shí)加載的默認(rèn)質(zhì)量設(shè)置中進(jìn)行設(shè)置。
  • 不同的多采樣級(jí)別(2倍,4倍等)對(duì)WebGL沒(méi)有影響,它可以打開(kāi)或關(guān)閉。
  • 任何應(yīng)用于相機(jī)的post-processing effect(后期處理效果)都會(huì)禁用內(nèi)置的抗鋸齒功能。
  • HDR與抗鋸齒功能不兼容,因此請(qǐng)確保禁用“允許HDR”相機(jī)選項(xiàng)。

WebGL2.0沒(méi)有這樣的限制。

Reflection Probes 反射探針

WebGL支持反射探頭,但由于WebGL規(guī)范中關(guān)于渲染到特定的mipmap的限制,不支持平滑的實(shí)時(shí)反射探頭(所以實(shí)時(shí)反射探頭總是會(huì)產(chǎn)生尖銳的反射,這可能會(huì)顯示非常低的分辨率)。平滑的實(shí)時(shí)反射探針將需要WebGL 2.0。

WebGL 2.0 support

Unity包含對(duì)WebGL 2.0 API的支持,該API將OpenGL ES 3.0級(jí)別的渲染功能帶入網(wǎng)絡(luò)。

默認(rèn)情況下,Unity WebGL支持WebGL 1.0和WebGL 2.0 API,可以在WebGL Player Settings > Other Settings中配置;要做到這一點(diǎn),請(qǐng)取消選中Automatic Graphics API(自動(dòng)圖形API)。

當(dāng)瀏覽器支持WebGL 2.0時(shí),內(nèi)容可以從標(biāo)準(zhǔn)著色器,GPU Instancing實(shí)例化支持,定向光照貼圖支持,對(duì)著色器代碼中的索引和循環(huán)沒(méi)有限制以及更好的性能中獲得更好的質(zhì)量。

6

Unity WebGL 中文文檔 Unity 2018.1.b
1. WebGL
2. webGL Browser Compatibility
3. Building and running a WebGL project
4. WebGL: Deploying compressed builds
5. Debugging and trouble shooting WebGL builds
6. WebGL Graphics
7. WebGL Networking
8. Using Audio In WebGL
9. WebGL performance considerations
10. WebGL: Interacting with browser scripting
11. Using WebGL Templates
12. Cursor locking and full-screen mode in WebGL
13. Input in WebGL

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容