WebGL圖形
WebGL是一種用于在Web瀏覽器中呈現圖形的API,它基于OpenGL ES圖形庫的功能。 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運行時將回退到Forward Rendering。
Global Illumination 全球照明
Unity WebGL僅支持baked GI(烘焙GI)。 WebGL目前不支持實時GI。此外,僅支持非定向光照貼圖。
Linear Rendering 線性渲染
Unity WebGL僅支持使用WebGL 2.0進行 linear color space rendering(線性色彩空間渲染)。線性色彩空間渲染不具備WebGL 1.0的后備支持。要使用線性色彩空間渲染來構建WebGL播放器,您需要在Player Settings > Other Settings中刪除WebGL 1.0 API; 取消選中Automatic Graphics API(自動圖形API)。
有些網頁瀏覽器不支持sRGB DXT texture compression(sRGB DXT紋理壓縮)。由于所有DXT紋理的運行時解壓,這可能會降低使用線性渲染時渲染性能的質量。
MovieTextures
WebGL不支持使用MovieTexture類播放視頻。但是,您可以使用HTML5視頻元素高效地播放WebGL內容中的視頻。下載此Asset Store package(資產商店包)以了解如何執行此操作的示例。
WebGL Shader code restrictions
WebGL 1.0規范對GLSLS著色器代碼施加了一些限制,GLSLS著色器代碼受到許多OpenGL ES 2.0實現允許的限制。當你編寫你自己的著色器時,這主要是相關的。
具體而言,WebGL限制哪些值可用于索引數組或矩陣:WebGL只允許使用常量表達式,循環索引或組合的動態索引。唯一的例外是頂點著色器中的統一訪問,它可以使用任何表達式進行索引。
此外,限制適用于控制結構。允許的循環的唯一類型是計數for循環,其中初始化器將變量初始化為常量,更新將常量添加到變量或從變量中減去常量,并且繼續測試將該變量與常量進行比較。 for循環不符合那些標準,while循環是不允許的。
Font rendering 字體渲染
Unity WebGL支持像所有Unity平臺一樣的動態字體渲染。但是,它無法訪問用戶計算機上安裝的字體,因此任何使用的字體都必須包含在項目文件夾中(包括國際字符的任何后備字體或字體的粗體/斜體版本),并set up as fallback font names(設置為后備字體名稱)。
Anti-Aliasing 抗鋸齒
WebGL支持瀏覽器和GPU的大多數(但不是全部)組合的抗鋸齒功能。要使用它,必須在WebGL平臺的默認Quality Setting(質量設置)中啟用消除鋸齒功能。
請注意,在WebGL1.0中有幾個限制:
- 在運行時切換質量設置不會啟用或禁用消除鋸齒 - 它必須在播放器啟動時加載的默認質量設置中進行設置。
- 不同的多采樣級別(2倍,4倍等)對WebGL沒有影響,它可以打開或關閉。
- 任何應用于相機的post-processing effect(后期處理效果)都會禁用內置的抗鋸齒功能。
- HDR與抗鋸齒功能不兼容,因此請確保禁用“允許HDR”相機選項。
WebGL2.0沒有這樣的限制。
Reflection Probes 反射探針
WebGL支持反射探頭,但由于WebGL規范中關于渲染到特定的mipmap的限制,不支持平滑的實時反射探頭(所以實時反射探頭總是會產生尖銳的反射,這可能會顯示非常低的分辨率)。平滑的實時反射探針將需要WebGL 2.0。
WebGL 2.0 support
Unity包含對WebGL 2.0 API的支持,該API將OpenGL ES 3.0級別的渲染功能帶入網絡。
默認情況下,Unity WebGL支持WebGL 1.0和WebGL 2.0 API,可以在WebGL Player Settings > Other Settings中配置;要做到這一點,請取消選中Automatic Graphics API(自動圖形API)。
當瀏覽器支持WebGL 2.0時,內容可以從標準著色器,GPU Instancing實例化支持,定向光照貼圖支持,對著色器代碼中的索引和循環沒有限制以及更好的性能中獲得更好的質量。
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