日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

webgl 游戏_如何选择 WebGL 框架和引擎?

發布時間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 webgl 游戏_如何选择 WebGL 框架和引擎? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據可視化Sugar-百度智能云?cloud.baidu.com

Sugar 是我們從零開始開發的 BI 產品,可以不用寫 SQL 制作報表及大屏頁面,上半年我們發布了三維場景功能,可以放到大屏中展現:

為了實現這個功能,我們調研了大量 WebGL 相關框架和庫,整理了這篇文章,或許以后對你有幫助,趕緊先收藏吧。

引擎類型

WebGL 框架和引擎按照定位可以分成這三種類型:

  • WebGL 封裝,定位是簡化 WebGL 開發,最大的特點是必須自己寫 GLSL 才能用。
  • 渲染引擎,定位是三維物體及場景展示,一般會抽象出場景、相機、燈光等概念,上手門檻低,不需要自己寫 GLSL。
  • 游戲引擎,定位是游戲開發,在前面的渲染引擎基礎上,還提供了骨骼動畫、物理引擎、AI、GUI 等功能,以及可視化編輯器來設計關卡,支撐大型游戲的開發。

WebGL 封裝

先說 WebGL 封裝,這種庫主要解決的問題是 WebGL 的 API 過于繁瑣。

WebGL 源自 OpenGL,它最早可以追溯到 1992 年,那個時候還是以 C 這種面向過程式的語言為主,所以 OpenGL 的 API 也是過程式的,對于熟悉面向對象的開發者來說,它的代碼看起來冗長且可讀性差,因此有必要對其進行封裝和簡化。

twgl.js

twgl.js?github.com

twgl.js 就是最典型的做法,比如創建一個最常見物體在 WebGL 中需要這樣寫,其中反復調用 bindBuffer 和 bufferData,很容易寫錯:

const positions = [1,1,-1,1,1,1,1,-1,1,1,-1,-1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,1,1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1]; const normals = [1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1]; const texcoords = [1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1]; const indices = [0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23];const positionBuffer = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer); gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(positions), gl.STATIC_DRAW); const normalBuffer = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, normalBuffer); gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(normals), gl.STATIC_DRAW); const texcoordBuffer = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, texcoordBuffer); gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(texcoords), gl.STATIC_DRAW); const indicesBuffer = gl.createBuffer(); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indicesBuffer); gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(indices), gl.STATIC_DRAW);

而使用 twgl.js 就能簡化成這樣:

const arrays = {position: [1,1,-1,1,1,1,1,-1,1,1,-1,-1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,1,1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1],normal: [1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1],texcoord: [1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1],indices: [0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23], }; const bufferInfo = twgl.createBufferInfoFromArrays(gl, arrays);

twgl 的定位只是減少重復代碼,并沒有進一步抽象,所以使用它和直接用 WebGL 在學習成本上沒太大區別,因此非常適合初學者,但也意味著它沒什么獨特的功能。

regl

regl?github.com

和 twgl 單純簡化代碼相比,regl 提供了跟高層的抽象,將原本的過程式轉成了函數式,使得看起來更符合直覺,比如下面這個入門三角形比原生 WebGL 要少很多代碼。

const drawTriangle = regl({frag: `void main() {gl_FragColor = vec4(1, 0, 0, 1);}`,vert: `attribute vec2 position;void main() {gl_Position = vec4(position, 0, 1);}`,attributes: {position: [[0, -1], [-1, 0], [1, 1]]},count: 3 })

regl 的原理是動態生成 WebGL 相關的 JavaScript 代碼然后執行,所以它比 twgl 能提供更加簡化的代碼,也能更靈活地設計對外 API,減少 WebGL 本身過程式帶來的限制,功能也更多,比如能自動處理狀態丟失。

從工程角度看 regl 做得很不錯,文檔詳盡,有 30000 單元測試,覆蓋率達到了 95%,還有工具來追蹤性能變化,可以很放心地使用。

但由于做了一層封裝,導致使用它和原生 WebGL 寫法差異較大,因此不適合對 WebGL 還不熟悉的初學者,但對于熟悉 WebGL 的開發者來說使用它的開發體驗不錯。

OGL

oframe/ogl?github.com

OGL 的定位比較特別,它有點介于 WebGL 封裝和渲染引擎之間,比如它最簡單的這個例子:

import {Renderer, Camera, Transform, Box, Program, Mesh } from 'ogl'; const renderer = new Renderer(); const gl = renderer.gl; document.body.appendChild(gl.canvas); const camera = new Camera(gl); camera.position.z = 5; const scene = new Transform(); const geometry = new Box(gl);const program = new Program(gl, {vertex: `attribute vec3 position;uniform mat4 modelViewMatrix;uniform mat4 projectionMatrix;void main() {gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);}`,fragment: `void main() {gl_FragColor = vec4(1.0);}`, });const mesh = new Mesh(gl, {geometry, program}); mesh.setParent(scene); renderer.render({scene, camera});

可以看到它一方面提供了渲染引擎才有的場景樹、相機等概念,另一方面又沒有材質和光源,所以需要自己寫 Shader 來完成基本渲染。

因此我覺得它比較適合 TA(Technical Artist) 使用,基于它開發可以不用了解太多 WebGL 的細節,專注于圖形學算法,而且它的 Uniform 變量名和 Three.js 是一樣的,網上找基于 Three.js 寫的例子都能直接用。

不過如果當成 WebGL 封裝,它成熟度不如 regl,因為缺乏單元測試使得預計會有不少 bug,而如果當成渲染庫在功能上又沒法和 Three.js 比,因此主要優勢似乎只有體積小了。

luma.gl

luma.gl?luma.gl

luma.gl 是 Uber 開發的,主要用它開發地理可視化框架,比如 Desk.gl 和 Kepler.gl,還有無人車數據可視化 AVS。

使用前面幾個庫要同時支持 WebGL 2.0 和 1.0 需要自己做兼容,而 luma.gl 可以自動解決這個問題,方便在支持 WebGL 2.0 的設備上優先使用 WebGL 2.0,比如直接調用 createVertexArray,不過這種 api 沒幾個,所以這個亮點倒是不顯著。

它的獨特功能其實是 Shader 模塊化拆分,這對于寫復雜的 Shader 很有幫助。


渲染引擎

由于 WebGL 本身只是光柵引擎,基于它開發需要了解矩陣變換并編寫著色器,所以 WebGL 學習門檻很高,光入門就要看特別長的文檔,比如 WebGL Fundamentals 這個教程系列就有 60 多篇文章。

WebGL Fundamentals?webglfundamentals.org

相比之下使用渲染引擎就容易得多,它將其中的矩陣變化封裝成了相機、場景樹,并提供了材質和光源,運行時自動生成對應的 GLSL,使得即使完全不懂 WebGL 也能用,大大降低了門檻。

對于大部分應用而言,比起前面的 WebGL 封裝,最好還是選擇渲染引擎,因為大部分渲染引擎也提供了自定義 Shader 功能,也提供了 GPU 實例等功能,只是一般不能改渲染管線。

Filament

google/filament?github.com

Filament 是 Google 基于 C++ 開發的跨平臺物理渲染引擎,支持 Android、iOS、Windows、Mac 等系統,還提供了基于 WebAssembly 的 Web 版本,它用在了 Google 地圖和搜索這兩個核心 APP 中,因此大概率會長期維護,不用擔心棄坑。

值得一提的是 Filament 的文檔寫得極好,相當于一本如何實現 PBR 的教材,可以學到很多圖形學的知識。

Physically Based Rendering in Filament?google.github.io

盡管只是順帶支持 Web,但完善的實現使得它的渲染效果很突出,在渲染管線上使用了較為新穎的 Clustered forward renderer,因此能支持大量光源。

它生成的 wasm 文件有 2M,不算太大,我原本打算將它引入到 Sugar 中,但這個渲染庫在 Web 上使用有兩個缺點:

  • 核心是 C++ 寫的,如果功能不滿足只能去改 C++,而這幾乎是必須的,因為暴露給 JavaScript 的 API 很少,最簡單的點擊交互都不支持,各個組件的設置也很少,比如相機要實現無交互時自動旋轉就得改 C++ 代碼,不熟悉 C++ 將寸步難行。
  • 只支持 WebGL 2.0,這點比較致命,導致無法在 iOS 的瀏覽器上使用,看了一下它有調用 glDrawBuffers,但不清楚用于做什么。
  • 整體上我覺得它是學習 PBR 渲染實現原理的優秀項目,雖然暫時不適合在 Web 上用,但值得繼續關注。

    Claygl

    ClayGL?claygl.xyz

    Claygl 是 ECharts 核心開發者 pissang 大神的開發的 WebGL 游戲引擎,它還用在了 ECharts-gl 項目中,使得 ECharts 在三維圖表方面遠超所有競品,這點我在《如何挑選數據可視化框架及平臺 - 前端篇》里介紹過。

    在我看來它最大的亮點是支持延遲著色,目前除了前面提到的 Filament 和后面的 LayaAir,其它 WebGL 引擎都是傳統的前向著色,這種管線在渲染時,會對每個物體計算所有光照的貢獻,類似如下的寫法:

    for node of nodes:for light of lights:output += bdrf(node, light)

    這種實現的復雜度隨著光源和場景中對象的增加而增加,導致光源越多性能越差,這也是為什么在 Web 上看到的三維效果大部分都只使用一個主光源,類似下面這種效果,只有一個太陽光:

    來自 https://demos.littleworkshop.fr/infinitown

    如果想實現接近現實世界的效果就必須支持多光源,尤其是室內和夜晚,比如類似下面這種,使用前向渲染性能太差,無法做到實時渲染。

    來自 https://github.com/google/filament

    要解決這個問題只能使用延遲著色或者分簇(Clustered)前向著色,目前主流的桌面游戲引擎都是使用延遲著色,并配合前向著色來支持透明物體,相關細節推薦看看 lygyue:延遲渲染,ClayGL 也是目前唯一實現這種管線的開源渲染引擎。

    不過在 WebGL 中實現延遲著色最大的問題是兼容性,因為它依賴 MTR(Multiple Render Targets) 技術,只有在 WebGL 2.0 下原生支持,在 WebGL 1.0 中必須依賴「WEBGL_draw_buffers」擴展,但它的兼容性較差,目前桌面瀏覽器的支持率也只有 71%,在手機上更是只有 2%,想在手機上使用只能等 WebGL 2.0 普及,但 iOS 一直默認不開啟,不知道要再等幾年了。

    Litescene.js

    https://github.com/jagenjo/litescene.js?github.com

    Litescene.js 主要用于開發 WebGL 場景編輯器 WebGLStudio,它其中有些 API 就是專門給編輯器用的,WebGLStudio 是少有的開源 WebGL 編輯器,功能很豐富,但使用體驗不好,給我的感受是必須用過 Unity 等編輯器才會用,上手門檻有點高。

    這個項目的作者也是不容易,幾乎一個人開發了從 WebGL 到前端的所有功能,還開發了個前端 UI 庫 litegui,不過技術棧比較古老,一個人精力還是有限,代碼中有不少地方都沒空整理,比如加了個新文件但老的還沒空刪,而且也沒有 release 版本,所以不建議使用。

    Hilo3d

    https://github.com/hiloteam/Hilo3d?github.com

    Hilo3d 是來自支付寶的項目,在 github 上最早提交時間是 2019 年 8 月,所以是這里面出現最晚的渲染引擎,在它之上還有個游戲引擎 Sein,它支持使用 Unity 作為場景編輯器,和 LayaAir 類似,但這個即是優點也是缺點,雖然省去了編輯器的開發,但導出效果很可能不一致,要反復調整。

    這個渲染引擎最初目的是用于支付寶里自己研發的小游戲,所以重點是支持移動端,但這也將會是它的限制,比如追求體積小,圖形方面更重視性能而不是視覺效果,以及后期特效比較少等。

    從提交看目前基本只有一個人,但看起來并不在 github 上開發,更像是拿 github 來定期發布版本。

    osgjs

    https://github.com/cedricpinson/osgjs?github.com

    ogsl 借鑒了 OpenSceneGraph 的 API,很適合拿來構建三維場景,但這個項目已經停止了,主要原因是核心人員跑去創業了,它的核心開發人員之一成為了著名在線三維模型網站 Sketchfab 的 CTO,Sketchfab 的模型渲染器就是在它基礎上開發的,加上了后期特效等功能,算是 Web 領域效果最好的渲染器了。

    xeogl

    xeolabs/xeogl?github.com

    xeogl 很適合用來展示建筑及工業模型,它提供了標注、公告板以及相機動畫等功能,這些功能在其他引擎中都得自己實現。

    不過這個項目作者不打算繼續維護了,估計是開源項目收益太小,作者目前主要在開發 xeokit,這個兩個項目的定位是一樣的,但 xeokit 商用要收費,一次性收 €2999,它對建筑類的項目很友好,內置了許多 BIM 相關的定制功能,比如對 ifc 格式和 BIMServer 的支持,還有支持截面瀏覽,所以使用它可以節省大量開發成本。

    不過它在渲染效果方面的功能不多,后期特效只有一個 SAO,因此更適合樸實無華的工程項目展示。

    A-Frame

    aframevr/aframe?github.com

    A-Frame 是專注做 VR 的渲染庫,最早是 Mozilla 開發的,目前主要是 Supermedium 的兩個工程師和一個谷歌的工程師兼職開發,它的底層渲染基于 Threejs,提供了 inspector 功能,能很方便測試效果。

    不過我每次玩 VR 都暈到吐,所以再也不關注這個領域了,暈問題是人腦的機制,只能靠幾萬年的進化來解決,而且還得是不暈的人比暈的人有生存優勢,所以我是等不到 VR 會火的那天了。


    游戲引擎

    游戲引擎在渲染器的基礎上增加了面向游戲開發的各種功能,包括 AI、物理、編輯器等,工作量巨大,比起圖形學算法,更重要還有工程能力,完整的游戲引擎功能可以參考《Game Engine Architechture》這本書,下面的架構圖就是來自這本書,可以看到它所覆蓋的面相當廣。

    Unreal Engine

    目前最火的游戲引擎是 Unreal Engine 和 Unity,它們都可以使用 Emscripten 編譯出 WebAssembly 版本的項目,直接運行在瀏覽器中。

    幾年前在 WebGL 領域中最讓人印象深刻的 demo 就是 Unreal 就和 Firefox 合作的這個項目,當時我也試過,在等了十幾分鐘加載幾十 M 的 JS 文件后終于跑起來了,但非常卡。

    知乎視頻?www.zhihu.com

    這個 demo 是 2014 年的,但渲染效果放到今天來看都很驚艷,秒殺絕大部分基于 Three.js/Babylon.js 開發的項目,甚至再過幾年 Three.js/Babylon.js 也做不到,因為需要靠編輯器來優化間接光照。

    前段時間我嘗試編譯過專門給移動端的 SunTemple 項目,在我的黑蘋果 RX 5700 XT 上雖然不卡了,但體積太大,光引擎本身的 wasm 文件就有 82MB,數據文件也有 180MB,這樣的體積是不可能放在 Web 上運行的,難怪沒人用。

    估計也是因為沒什么人用,Unreal Engine 從 4.24 版本開始不默認提供這個功能,只作為擴展存在,交給社區,要用得自己編譯一個,所以 Unreal Engine 目前已經基本放棄了 HTML5 版本。

    Unity

    相比之下 Unity 編譯出來的體積小得多,自帶的簡單 3D 項目編譯出 wasm 只有 4M,所以雖然也很少人用,但至少在線上有真實見到過幾個。

    值得一提的是 Unity 還在開發專門針對小游戲的 Project Tiny 版本,相當于一個精簡版的 Unity,它輸出的體積更小,比如這個官方的 Tiny Racing 項目 wasm 只有 607k,即便是所有模型和圖片加起來的體積也只有 4.4M,雖然這個項目還在預覽階段,很多重要功能缺失,但 Unity 目前普及度高,所以它未來有不小潛力,但它在國內的發展取決于官方的是否重視,比如會不會支持微信等。

    Godot

    https://godotengine.org/?godotengine.org

    Godot 是目前最火的開源游戲引擎,它有 1182 個貢獻者,提交很頻繁,最近在開發的 4.0 版本,將支持 Vulkan API,并在渲染方面做了加強,比如支持 SDFGI。

    它也能導出 WebGL 版本,但只是「能導出」,并沒有專門優化過,拿幾個材質測試了一下生成的 wasm 有 20M,但性能太差,在我的 i9 + RX 5700 XT 上都卡成 PPT,而且卡頓這個問題官方也不打算修了,預計 Godot 短期不會在 Web 領域有所發展,只能等它未來或許會支持 WebGPU 了。

    Three.js

    https://threejs.org/?threejs.org

    Three.js 是最知名的 WebGL 項目,Contributions 人數高達 1313,和 React 是一個量級的,盡管它自身的定位只是渲染引擎,但社區硬是把不少游戲引擎的功能都加上了,比如物理引擎、貼花、動畫等,在源碼中有大量例子,很適合學習,但不少重要功能,比如 gltf 加載器,都是放在 examples 目錄里,讓人感覺很不正式。

    Three.js 的歷史幾乎和 WebGL 一樣長,它早在 2010 年 7 月 7 日就支持 WebGL 渲染了,那個時候 WebGL 規范還在草案中,要等到 2011 年 3 月才正式發布,恐怕這就是為什么提到 WebGL 大家都會想到 Three.js,它大概是第一個支持 WebGL 的引擎。

    由于知名度最高,Three.js 最大的優勢就是社區強大,搜索問題能找到很多答案,也有非常多開源和商業項目使用,比如 Google 的 WebGL Globe、model-viewer、NASA 的 WorldWind、Autodesk 的 Forge Viewer 等。

    但 Three.js 在版本管理方面很不專業,到現在都還沒采用 semver 版本命名規范,每次發布都是一個叫 rXXX 的版本,我見過不少基于 Three.js 的項目都是固定在某個版本不敢升級了,比如 Autodesk 就提到過。

    雖然 Three.js 有很多人使用,但因為整體代碼質量一般,我只推薦用來學習,而不是用在正式項目中。

    PlayCanvas

    https://github.com/playcanvas/engine?github.com

    PlayCanvas 雖然開源了游戲引擎,但編輯器只有在線服務,所以它的文檔都是介紹如何使用在線編輯器來制作三維場景,并沒有直接使用這個引擎的入門文檔,要用只能通過 example 和 api 來了解,看起來官方并不希望大家直接使用引擎,所以如果不想用它的在線編輯器,這個引擎就只適合學習過其它引擎的開發者。

    從引擎功能角度看弱于 Three.js 和 Babylon,但成熟度比 Three.js 好,Three.js 的很多功能是第三方貢獻的,質量參差不齊,注釋也很少。

    雖然它沒使用延遲著色,但提供了運行時 bake 的功能,也能高效支持靜態多光源。

    PlayCanvas 其實在 2017 年被 Snap 悄悄收購了,被期望于制作 Snap 上的 HTML5 游戲。

    Egret

    egret-labs/egret3d?github.com

    Egret 和后面介紹的 LayaAir 和 cocos 都是國內創業公司開發的游戲引擎,Egret 最早是通過一款《圍住神經貓》的 HTML5 游戲莫名其妙火的,它最早只支持 2D,但也在 2018 年 5 月推出了開源的 Egret 3D。

    Egret 3D 引擎使用了 ECS 架構,所以它的編輯器提供了類似 Unity 那樣添加組件的能力。

    但 Egret 3D 開源后沒多久就陷入停滯狀態了,最新發布的版本是 2018 年 9 月,據說是在重構新版,然而已經過去一年了,可能 3D 并不是公司的重點,開源的版本甚至連 license 都沒說明,加上文檔比較簡陋,所以不推薦使用。

    LayaAir

    https://github.com/layabox/LayaAir?github.com

    LayaBox 公司最早推出的是 LayaFlash 工具來將 Flash 頁游裝成 HTML5 版本,隨著 Flash 的沒落,他們又開發了基于 Web 技術的 LayaAir 引擎。

    LayaAir 的三維編輯器主要依賴 Unity,它甚至不能直接使用 WebGL 中最常用的 glTF 格式,要使用三維模型必須先導入到 Unity 中,然后再通過插件轉成 LayaAir 所使用的格式。

    比起 Three.js/Babylon,LayaAir 有兩個比較大的優勢,一個是對小程序支持友好,這個算是國內特色,Three.js/Babylon j的核心開發者也沒條件測試,所以實際用起來容易遇到 bug,玩玩需要改引擎本身代碼才能解決;另一個是近期實現了 Clustered Forward 渲染,可以支持大量光源。

    LayaAir 還提供了生成原生 Android/iOS 程序的 LayaNative,這里并非使用 WebView,所以更容易過審。

    但需要注意 LayaAir 只是源碼開放,并不是真正的開源項目,使用前需要仔細閱讀它的協議,比如未經授權是不允許對引擎代碼進行修改的,免費使用需要加 LayaBox 的 logo。

    從提交歷史看,LayaAir 提交量最多的開發者在今年 4 月份忽然停止了,似乎是被阿里挖走了,不知道對引擎本身的發展會有多大影響。

    cocos

    Cocos引擎_游戲開發引擎?www.cocos.com

    cocos 曾經是最流行的 2D 手游引擎,但隨著游戲逐漸轉向 3D,它在 3D 方面和 Unity 差距太大,就漸漸淡出大家的視野了。

    cocos 所屬的觸控科技本來打算 2014 年在美國上市,但由于對估值不滿意,尤其是 cocos2d-x 的 MIT 協議被認為價值幾乎為零,所以最后放棄了上市,具體細節可以看看創始人的回答cocos2dx 還有未來么? - 陳昊芝的回答,其中還提到了和 Unity 的故事,比如本來還想收購 Unity 但被拒了,在放棄上市后,觸控經歷了很多危機,人數也收縮為之前的 1/5,從那時起 cocos2d-x 其實就在走下坡路了,逐漸被 Unity 超越。

    盡管很艱難,觸控一直沒放棄引擎的開發,在 2019 年 10 月發布了 Cocos Creator 3D,和 cocos2d-x 基于 C++ 不同,Cocos Creator 3D 是基于 TypeScript 開發的 WebGL 引擎。

    在協議方面,Cocos Creator 3D 吸取了 cocos2d-x 的教訓,和 LayaAir 一樣只是源碼開放,它也有一份定制的協議,有很多限制,需要仔細閱讀。

    盡管 Cocos Creator 3D 很想成為 Unity,編輯器在很多細節點上都參考了 Unity,比如資源管理的 .meta 文件,基于 ECS 的組件機制等,但 WebGL 的限制使得它只能用做小游戲的引擎,因為 OpenGL ES 2.0 功能的缺失,雖然可以發布到微信、百度、支付寶等平臺上,但在重度游戲領域沒法和 Unity 競爭。

    引擎方面功能和 LayaAir 類似,不過它有動畫、例子編輯器,在編輯器方面比 LayaAir 好得多,不依賴 Unity,不過因為使用了前向著色,同樣不能支持多光源,雖然它基于 AABB 包圍盒做了光源裁剪,但這種方式的性能比較依賴場景光源和物體的分布情況,比如物體很大又有很多小光源的時候,幾乎裁剪不掉幾個光源。

    Babylon

    https://babylonjs.com/?babylonjs.com

    最后壓軸的是 Babylon,它也是 Sugar 最終采用的 WebGL 引擎,不僅功能強大,代碼質量也很高,TypeScript 類型完善,幾乎每個函數都有注釋。

    我個人的使用體會是 Babylon 雖然入門要復雜點,但功能成熟度要比 Three.js 高不少,Three.js 至今在 gLTF 的支持上還有 bug,而 Babylon 是唯一通過所有測試的框架,如果要深入使用 gLTF,Babylon 是最好選擇,因為它還支持大量擴展,比如 KHR_mesh_quantization、KHR_draco_mesh_compression、KHR_texture_basisu、MSFT_lod 等,這些擴展能顯著減小體積和提升性能。

    Babylon 在材質方面功能豐富,除了基礎的 PBR,還提供了用于皮膚的次表面渲染 SubSurface、用于車漆的 ClearCoat、用于布料的 Sheen,以及用于光盤之類的各向異性材質 Anisotropy 等等。

    在后期特效方面有 Lut 顏色校正、Tonemap 映射、SSAO、鏡面反射、Bloom 等常見特效,還有基于屏幕的反射 SSR(Screen Space Reflections)。

    目前 Babylon 在渲染方面也是使用最傳統的前向著色,如果要改造成類似 ClayGL 那樣的延遲著色成本太高,兼容性也不好,所以最好的選擇是用分簇來減少光源,這個想法在 2017 年就有提出,但然后就沒有然后了。

    除了在渲染方面的功能很多,Babylon 的周邊工具也很豐富,最近還推出了類似 UE4 藍圖的材質編輯器。

    我個人不喜歡使用藍圖這種方式來開發業務邏輯,因為復雜場景下信息密度太低了,大量線條看起來很累,但用藍圖來開發材質卻很方便,因為著色器不好調試,而在藍圖中可以方便預覽每個節點的效果,極大提升效率,不過也可能是我在著色器方面比較水。

    不過 Babylon 的這個材質編輯器目前功能還比較弱,缺少流程控制語句等功能,和 Unreal Engine 差距很大。

    另一個 Babylon 中最實用的工具是 Inspector,它可以像瀏覽器的開發者工具那樣,選中場景中的某個節點,就能查看和修改它的屬性和材質等,實時看到效果,比不斷改代碼調整方便多了。

    另外 Babylon 還開發了可以直接運行在桌面的 BabylonNative,和 LayaNative 類似,基于封裝了跨平臺的渲染(基于 bgfx)、網絡等接口,這樣編譯出一個桌面 Babylon 項目就不需要像 Electron 那樣附帶一個百兆的 Chromium 了,然而在桌面領域游戲引擎多如牛毛,競爭過于激烈,BabylonNative 看起來希望不大。

    Babylon 最后一個亮點是正在開發 WebGPU 版本,而其他引擎都沒開始做,所以等 WebGPU 發布后,Babylon 應該是首批支持的,將得到更多關注。

    小結

    前面說了那么多,如果沒空看的話可以記一下我的看法:

    • 對于一般 WebGL 開發,推薦使用 Babylon.js。
    • 如果要支持微信小程序,最好用國內的 LayaAir 和 Cocos,但需要注意它們只是源碼開放,并不是無條件免費使用,需要仔細閱讀使用協議。
    • 如果只想寫原生 WebGL 特效,建議用 regl。
    • 如想支持大量光源和后期特效,又不需要支持 iOS,用 Claygl。
    • 如果熟悉 Unity,直接用它導出 WebGL 也是可行的。

    后記:WebGL 為什么沒火起來?

    10 年前 WebGL 剛出來的時候我很期待,因為可以在 Web 上做出酷炫的三維效果了,看起來前景一片光明,然而現在除了小游戲,其它地方幾乎沒有人使用,也很少前端工程師了解,為什么呢?在我看來主要是這幾方面的原因:

  • WebGL 和前端開發差異性太大,前端工程師學 WebGL 相當于刪號重練,除了繁瑣的 API,圖形學的數學知識也導致了門檻高,最基礎的 MVP 就能勸退不少初學者,更別說后面的輻射度量及采樣學知識了。
  • 網速發展太慢,Web 不能像桌面游戲那樣預先下載幾十 G 的模型和材質,在 Draco 壓縮技術出現前,隨便一個模型文件就要十幾 M,極大限制了 WebGL 能做的事情,沒人愿意打開個頁面還要先等幾分鐘加載。
  • JavaScript 本身的性能限制,除了 JavaScript 虛擬機的消耗,在調用 WebGL API 的時候還需要經過一層轉換,而很多瀏覽器是基于 ANGLE 支持 WebGL 的,在 ANGLE 中又會做一層檢查,然后在 Windows 下還得將 GLSL 轉成 HLSL,在 CPU 上要做的額外工作大大高于桌面程序。
  • WebGL 2.0 相當緩慢的發展,使得 WebGL 引擎的技術也停滯不前,前面提到過 WebGL 1.0 缺少很多重要功能,比如 Draw Buffers、Occlusion queries 等現代渲染引擎優化性能所依賴的技術,而 WebGL 2.0 的發展又極其緩慢,盡管啟動于 2013 年,但直到 2017 年才正式推出,要知道 OpenGL 的替代者 Vulkan 是在 2016 年推出的,所以 WebGL 2.0 還沒發布就面臨被淘汰,加上 Apple 的刻意打壓,至今 Safari 在桌面和 iOS 上都不默認開啟 WebGL 2.0,所以 WebGL 2.0 幾乎沒人使用,用也只能用那些支持面比較廣的 WebGL 1.0 擴展功能。
  • 經濟方面的原因,前面提到的很多原因導致了 WebGL 只能開發小游戲,收益不高,收益不高投入就少,導致相關工具的缺乏,尤其是優秀的場景編輯器,UE4 之所以能實時渲染逼真畫面,就是靠編輯器的烘焙和計算 Lightmass 來解決間接光照問題,編輯器開發成本極高,不如就只能等光線追蹤普及并標準化,預計至少五年。
  • Web 的下一代技術是 WebGPU,它能極大提升性能,具體提升多少呢,在 WebGPU 官方 wiki 中拿了 Babylon 的例子:

    https://www.babylonjs.com/demos/webgpu/forestwebgl?www.babylonjs.comhttps://www.babylonjs.com/Demos/WebGPU/forestWebGPU.html?www.babylonjs.com

    我測試后發現 CPU 時間從 20ms 降到了 0.08ms,FPS 從 30 增加到了穩定 60,提升非常明顯,是不是很期待 WebGPU 的未來?

    然而這個對比并不公平,這里的性能提升不完全是 WebGPU 帶來的,我猜是開發者在演講前發現效果不明顯,就先優化了一下,下面這段代碼是 WebGPU 版本中多出的部分,如果加到 WebGL 版本中也能明顯提升性能,因為每次循環的時候不需要重新計算了,可以顯著減少 CPU 時間。

    // After all the meshes creation, freeze as much as we can to improve perfs. optimizeScene(scene);const optimizeScene = function(scene) {scene.freezeMaterials();scene.meshes.forEach((m) => {m.isPickable = false;m.alwaysSelectAsActiveMesh = true;m.freezeWorldMatrix();});setTimeout(() => {scene.freezeActiveMeshes();}, 1000); }

    后面有空我會單獨介紹 WebGPU,趕緊關注哈哈。

    總結

    以上是生活随笔為你收集整理的webgl 游戏_如何选择 WebGL 框架和引擎?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    少妇高潮流白浆在线观看 | 精品久久久久久久久久久久久久久久久久 | 日本久久高清视频 | 久久伦理 | 天天操综合网站 | 国产精品ⅴa有声小说 | 成人av片免费观看app下载 | 久久久国产精品人人片99精片欧美一 | 亚洲人xxx | 狠狠干夜夜爱 | 四虎影院在线观看av | 国产精品99爱 | 麻豆小视频在线观看 | 久久久www成人免费毛片麻豆 | 日韩电影在线观看一区 | 国产一区二区三区久久久 | 国产成人精品一区二三区 | 中文字幕在线国产 | 国产69久久精品成人看 | 国产玖玖在线 | 婷婷丁香色 | 久青草视频在线观看 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 国产白浆在线观看 | 五月综合激情网 | 久草网在线视频 | 亚洲 中文 在线 精品 | 国产视频资源 | 国产视频 亚洲视频 | 久久高清国产视频 | 国产日韩精品在线观看 | 午夜精品一区二区三区免费 | 日韩在线观看精品 | 国产精品久久久久久久久费观看 | 免费亚洲精品 | 婷婷久久一区二区三区 | 黄视频色网站 | 天堂久色 | 久久精品99国产精品 | 日韩网站在线免费观看 | 日韩黄色一区 | 四虎国产精品免费 | aaa免费毛片| 一区二区三区在线免费播放 | 公与妇乱理三级xxx 在线观看视频在线观看 | 亚洲乱码精品 | 国产精品精品久久久 | 日日夜夜精品免费 | 国产成人精品综合久久久 | 精品国产乱码久久久久久天美 | 国产在线观看你懂的 | 亚洲伦理电影在线 | 亚洲欧美婷婷六月色综合 | 国色天香在线 | 亚洲精品视频在线免费 | 91久久国产露脸精品国产闺蜜 | 特级毛片在线免费观看 | 欧美一区影院 | 午夜精品视频一区二区三区在线看 | 人人爱人人射 | 激情五月婷婷激情 | 国产精品视频999 | 操久在线| 超碰在线94| 国产精品理论片 | 亚洲综合色激情五月 | 91在线精品视频 | 欧美成人按摩 | 精油按摩av| 精品在线视频一区 | 国产在线精品国自产拍影院 | 99视频在线精品 | 黄色免费观看视频 | 亚洲黄色成人 | 五月婷婷在线视频观看 | 国产亚洲情侣一区二区无 | 91精品成人 | 亚洲婷婷在线 | 国产精品国产亚洲精品看不卡 | 国产在线理论片 | 日韩成人中文字幕 | 一区免费视频 | 国产一区二区在线免费观看 | 欧美日本一二三 | 欧美国产一区二区 | 最新国产中文字幕 | 中文字幕日本电影 | 18国产精品白浆在线观看免费 | 在线精品播放 | 97涩涩视频| 久草网在线视频 | 国产资源站 | 三级黄色大片在线观看 | 国产不卡视频在线 | 免费看的av片 | 黄色资源网站 | 一区二区三区四区在线免费观看 | 97在线观看视频国产 | 久精品视频在线 | 久久激情综合网 | 九九九热精品免费视频观看 | 人人涩| 国产高清亚洲 | 天天操天天操天天操天天操天天操 | 亚洲精品视频免费在线观看 | 亚洲天堂在线观看完整版 | 欧美日本中文字幕 | 欧美日韩高清在线 | 黄色成人在线网站 | 69成人在线 | 在线观看黄色小视频 | 国产第一页精品 | 久久精品视频2 | 91污污| 天天色成人 | 久久99热这里只有精品国产 | 成人永久视频 | 人人干免费 | 久久美女免费视频 | 欧美国产精品久久久久久免费 | 久久tv视频| 美国人与动物xxxx | 国产在线观看,日本 | 五月婷婷激情五月 | a√天堂资源 | 久久夜色精品国产欧美一区麻豆 | 国产理论片在线观看 | 热精品 | 天天操欧美 | 精品久久久精品 | 国产高清中文字幕 | 日韩动漫免费观看高清完整版在线观看 | 四虎在线观看精品视频 | 久久久精品二区 | 在线看黄色的网站 | 日韩欧美在线免费 | 久久激情电影 | av中文字幕在线播放 | 在线观看av的网站 | 人人爽久久涩噜噜噜网站 | 97中文字幕 | 国产一区播放 | 欧美成人精品三级在线观看播放 | 日韩在线视频网址 | 五月婷婷激情 | 国产精品扒开做爽爽的视频 | 国产成人黄色片 | 国产色视频一区 | 精品一区二区日韩 | 又黄又刺激又爽的视频 | 久久精品国产免费观看 | 国产亚洲精品久久久久久网站 | 在线中文字幕观看 | 四虎国产精品永久在线国在线 | 亚洲色图色| 日韩免费视频 | 成年人视频在线观看免费 | 色婷婷丁香| 国产成人av在线影院 | 中文字幕一区二区三区在线观看 | 国产日韩欧美在线影视 | 一级片色播影院 | 日本护士三级少妇三级999 | 人人狠狠综合久久亚洲婷 | 丁香激情综合久久伊人久久 | 欧美精品一区二区免费 | 欧美在线视频日韩 | 精品久久久久久久久久久久久久久久久久 | 天天躁日日| 在线观看蜜桃视频 | bayu135国产精品视频 | 美女国产 | 婷香五月 | 一级黄色电影网站 | 国内精品久久久久久久久 | 天天爽夜夜爽精品视频婷婷 | 色婷婷午夜 | 国产亚洲欧美日韩高清 | 国产精品久久久久一区 | 午夜色影院 | 少妇性bbb搡bbb爽爽爽欧美 | 国产精品18毛片一区二区 | 亚洲 中文 欧美 日韩vr 在线 | 天天爽夜夜爽人人爽一区二区 | 涩涩网站在线播放 | 国产精品一区二区三区在线免费观看 | av丁香花 | 亚洲在线综合 | 婷婷在线精品视频 | 在线一区电影 | 国产精品视频全国免费观看 | 国产一区91 | 久久精品一区二区三区中文字幕 | 亚洲天堂网在线观看视频 | 在线免费av播放 | 欧美日韩精品国产 | 啪啪凸凸 | 免费日韩 精品中文字幕视频在线 | 9999在线 | 亚洲精品久久久久久久蜜桃 | 97av色| 中文在线中文资源 | 在线观看国产91 | 九九九九九国产 | 国产精品入口66mio女同 | 91在线观 | 国产精品第54页 | 狠狠的日日 | 毛片3 | 视频在线精品 | 午夜精品福利一区二区三区蜜桃 | 国产中文字幕视频在线观看 | 国产99久久| 日韩黄色一级电影 | 日韩影片在线观看 | 久久免费中文视频 | 久久视频在线观看免费 | 深夜免费小视频 | 久久福利小视频 | 亚洲成人欧美 | 五月亚洲综合 | 国产精品免费久久久久影院仙踪林 | 美国三级黄色大片 | 五月婷婷久久综合 | www久久精品 | 久久国产免费看 | 欧美精品免费视频 | 亚洲成人中文在线 | 精品一区欧美 | 天天色棕合合合合合合 | 日韩精品久久久免费观看夜色 | 亚州精品天堂中文字幕 | 亚洲精品日韩av | 操久久免费视频 | 超黄视频网站 | 毛片的网址 | 高清不卡一区二区三区 | 日韩黄色在线电影 | 日本免费久久高清视频 | 丁香花在线观看免费完整版视频 | 久久综合色播五月 | 国产精品免费在线观看视频 | 在线观看你懂的网址 | 一区二区在线影院 | 中文国产在线观看 | 在线天堂中文www视软件 | 99热播精品 | 国产一二区视频 | 国产精品国产三级国产aⅴ入口 | 免费看成年人 | 免费看短 | 国产精品久久久久久久久大全 | 密桃av在线| avhd高清在线谜片 | 欧美成人影音 | 国内小视频 | 中文字幕在线一区观看 | 久久免费观看少妇a级毛片 久久久久成人免费 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 国产婷婷 | 日韩在线二区 | 五月天com | 久久99亚洲精品久久 | 成人午夜精品福利免费 | 黄色在线看网站 | 婷婷www| 日韩免费一区二区三区 | 国产精品久久久久久久久久三级 | 精品999在线观看 | 91精品小视频 | 人人爽网站 | 亚洲激情网站免费观看 | 中文十次啦 | 久久精品久久99 | 欧美激情视频一二区 | 久久不卡日韩美女 | 国产无遮挡又黄又爽馒头漫画 | 91精品国产99久久久久 | 亚洲视频电影在线 | 黄色毛片电影 | 九色自拍视频 | 色综合天天视频在线观看 | 婷婷视频导航 | 黄色大片国产 | 欧美精品乱码久久久久久 | 91天天操 | a特级毛片 | 丁香激情视频 | 超碰夜夜 | 久久精精品 | 日韩精品一区二区三区丰满 | 91黄视频在线观看 | 欧美成人在线免费观看 | 亚洲最新av在线网址 | 久久电影网站中文字幕 | av.com在线| 黄色影院在线观看 | 黄色亚洲 | 久久理论视频 | 日韩网站在线免费观看 | 好看的国产精品视频 | 九九九在线观看视频 | 日韩激情av在线 | 四虎在线免费观看 | 天天操天天干天天 | 久久久久久免费视频 | 99精品国产免费久久久久久下载 | 国产亚洲一区二区三区 | 日韩最新理论电影 | 中文字幕中文字幕在线中文字幕三区 | 免费视频一区二区 | 欧美精品乱码久久久久久按摩 | 日韩一区二区三区免费电影 | 午夜体验区 | 国产日产av| 黄色电影网站在线观看 | 日韩av成人在线观看 | 成人夜晚看av | 天天操天天操天天爽 | 久久免费国产 | 欧美成年黄网站色视频 | 亚洲日本一区二区在线 | 欧美激情精品久久久久久 | 国内一级片在线观看 | 91传媒视频在线观看 | 久久久久欠精品国产毛片国产毛生 | 黄色精品久久 | 日韩在线观看中文字幕 | 午夜久久电影网 | 亚洲日本在线一区 | 激情黄色一级片 | 亚洲精品美女在线 | 99热这里只有精品国产首页 | 四虎永久视频 | 亚洲日本精品视频 | 狠狠狠干狠狠 | 午夜视频在线观看欧美 | 日韩精品一区二区三区不卡 | 免费能看的av | 视频一区二区国产 | 一区二区三区视频在线 | 亚洲一区 av | 久久6精品 | a级免费观看 | 亚洲午夜av电影 | 午夜男人影院 | 欧美日韩亚洲在线观看 | 天天综合成人 | 国产亚洲精品久久久久久网站 | 午夜的福利 | 最新动作电影 | 色婷婷综合久久久久中文字幕1 | 国产一级91 | 97国产精品久久 | 亚洲欧美日韩一区二区三区在线观看 | 操操操影院 | 91精品一区二区三区蜜桃 | 午夜精品在线看 | 97人人添人澡人人爽超碰动图 | 日批视频| 激情五月六月婷婷 | 99精品国产一区二区三区不卡 | 免费视频网 | 午夜精品一二三区 | 国产成人三级一区二区在线观看一 | 91av在线播放视频 | 日韩视频免费观看高清 | 日韩精品中文字幕在线播放 | 日本99久久| 波多野结衣在线播放视频 | 国产黑丝一区二区三区 | 福利视频网址 | 狠狠色丁香婷婷综合视频 | 午夜精品导航 | 蜜臀av性久久久久蜜臀av | 欧美精品一二三 | 欧美91在线| 精品久久久久久久久久久久久久久久久久 | av在线电影网站 | 网址你懂的在线观看 | 国产精品视频区 | 69视频在线播放 | 人人澡人人爽欧一区 | adn—256中文在线观看 | 成人国产一区二区 | 人人超碰人人 | 日韩久久精品一区二区三区下载 | 99国产精品一区 | 99国产精品免费网站 | 久草在线视频免赞 | 黄色精品久久 | 亚洲日本va午夜在线影院 | 6080yy午夜一二三区久久 | 日日碰狠狠添天天爽超碰97久久 | 久久国产精品二国产精品中国洋人 | 久久国产精品小视频 | aaa日本高清在线播放免费观看 | 中文字幕频道 | 亚洲黄色在线观看 | 亚洲国产精品久久久久久 | 色激情在线 | 中文字幕在线免费观看视频 | 综合av在线| 中文字幕在线观看网 | 天天干夜夜爽 | 欧美国产日韩在线视频 | 久久久免费看片 | 在线播放 日韩专区 | 99国产精品免费网站 | 免费一级片在线 | 成人久久精品 | 欧美日韩国产在线观看 | 亚洲精品免费播放 | 亚州日韩中文字幕 | 天堂网一区 | 色婷五月天 | 免费黄色av | 操操操干干干 | 99视频久| 啪嗒啪嗒免费观看完整版 | 亚洲天堂网在线视频 | 国产精品久久久久一区二区三区共 | 狠狠色丁香婷婷综合橹88 | 久久久久夜色 | 精品一区 精品二区 | 日韩在线视频不卡 | 99在线看| 日韩一级成人av | 欧美精品久久久久久久 | 91看毛片 | 欧美精品久久久久久久久免 | 91一区二区三区在线观看 | 一区二区日韩av | 国产精品美女久久久久aⅴ 干干夜夜 | 久久69精品久久久久久久电影好 | 日韩精品一区二区三区电影 | 成年人免费在线观看网站 | 亚洲美女在线一区 | 女人18精品一区二区三区 | 91精品国产综合久久福利不卡 | 99视频在线免费播放 | 国产99久久久精品 | 午夜10000 | 激情视频国产 | 美女网站视频免费都是黄 | 亚洲综合在 | 99欧美精品 | 天天综合久久综合 | 岛国精品一区二区 | 九九免费在线观看视频 | 久久福利小视频 | 国产91九色蝌蚪 | 黄色成年网站 | 久久人人97超碰国产公开结果 | 天天天天爽 | av一级网站 | 视频91在线 | 国产精久久久久久久 | 欧美亚洲另类在线视频 | 亚洲国产成人精品在线观看 | 国产亚洲精品久久19p | 99精品热视频只有精品10 | 91爱爱免费观看 | 久久成年人网站 | 在线精品播放 | 97成人免费视频 | 91精品影视| 免费观看www7722午夜电影 | 亚洲va综合va国产va中文 | 91女人18片女毛片60分钟 | 精品99在线观看 | 精品国产一区二区三区av性色 | 日本特黄一级片 | 亚洲精品免费观看视频 | 日韩午夜精品 | 国产精品一区二区久久久 | 热re99久久精品国产66热 | 久久精品精品电影网 | av观看在线观看 | 亚洲午夜电影网 | 欧美 亚洲 另类 激情 另类 | 久久视频免费在线观看 | 在线观看日韩中文字幕 | 成年人在线免费看片 | 98涩涩国产露脸精品国产网 | 久草在线视频国产 | 成人在线观看免费视频 | 麻豆免费视频网站 | 精品电影一区 | 国外成人在线视频网站 | 亚洲精品午夜久久久 | 91亚洲视频在线观看 | 久久久久国产一区二区 | 国产网红在线观看 | 国产区精品区 | 亚洲国产大片 | 免费视频在线观看网站 | 深夜福利视频一区二区 | 日本精品视频在线观看 | 欧美精品亚洲二区 | 亚洲精品视频在线看 | 黄色片网站 | 91大神精品视频 | 综合久久网站 | 国产 一区二区三区 在线 | 碰超在线97人人 | 黄色一级大片在线免费看产 | 嫩嫩影院理论片 | 亚洲精品白浆高清久久久久久 | 欧美精品久久久 | 亚洲欧美日韩精品久久奇米一区 | 亚洲精品久久久久久中文传媒 | 九九热免费在线视频 | 成年人电影毛片 | 麻豆91在线观看 | 高清av免费看 | 中文在线字幕免 | 五月花激情 | 97超碰人人网 | 日本精品久久久一区二区三区 | 国产高清视频在线观看 | 狠狠亚洲| 在线视频一二三 | 丁香综合av | 永久av免费在线观看 | 国产精品久久婷婷六月丁香 | 久久看片| 日韩av免费大片 | 天天激情天天干 | 欧美日韩国产色综合一二三四 | 欧美日韩一区二区免费在线观看 | 97精品视频在线 | 精品欧美小视频在线观看 | 欧美精品视 | 国产一区二区三区高清播放 | 91日韩在线| 成人免费观看网站 | 91九色蝌蚪视频在线 | 91在线播放视频 | 国产精品久久一区二区无卡 | 久久99国产精品久久 | 96精品在线| 欧美黄色特级片 | 久久激情视频 久久 | 国产一级一片免费播放放 | 国产精品一区二区吃奶在线观看 | 国产精品美乳一区二区免费 | 四虎国产永久在线精品 | 欧美午夜精品久久久久久浪潮 | 久久香蕉一区 | 国产一二区在线观看 | 久久精品小视频 | 亚洲精选视频免费看 | 午夜狠狠干 | 国产成人a v电影 | 久久亚洲福利 | 成人av av在线 | 99久久日韩精品视频免费在线观看 | 日韩欧美一区二区三区视频 | 日韩精品免费一线在线观看 | 麻豆视频在线免费 | 亚洲精品777 | 国产成人高清 | 丁香花在线视频观看免费 | 国产精品自产拍在线观看桃花 | av在线影视| 久久久久久综合网天天 | 亚洲精品久久在线 | 2020天天干天天操 | 国内精品小视频 | 色国产视频 | 久久久综合香蕉尹人综合网 | 香蕉视频4aa| 91亚洲欧美| 成年人在线免费看片 | 久久精品99国产精品 | 欧美日韩免费观看一区=区三区 | 欧洲成人免费 | 有没有在线观看av | 六月丁香激情综合色啪小说 | 在线天堂日本 | 亚洲精品麻豆视频 | 99精品视频在线观看视频 | 在线视频一二三 | 午夜久操 | 日韩网| 综合国产视频 | 国产五十路毛片 | 天天操天天干天天操天天干 | 亚洲精品777 | 婷婷色网站 | 97人人射| 精品主播网红福利资源观看 | 激情av资源 | 亚洲 欧洲 国产 精品 | 91视频免费观看 | 国产成免费视频 | 超碰在线中文字幕 | 国产黄a三级三级三级三级三级 | 国产高清av免费在线观看 | 99这里只有精品视频 | 欧美久久久久久久 | 欧美日韩精品国产 | 久久久久久久18 | 一级α片免费看 | 99视频导航| 深夜免费福利在线 | 亚洲人成精品久久久久 | 波多野结衣电影一区二区 | 亚洲国产97在线精品一区 | 91久久久久久久一区二区 | av在线com| 久久精品国产精品亚洲 | 国产成人资源 | 日本中文字幕视频 | 日日躁夜夜躁xxxxaaaa | 丁香婷婷基地 | 久久久久久久久免费 | 国产精品久久久久久久免费 | 成人免费网站视频 | 18岁免费看片| 国产又粗又猛又黄视频 | 一区二区精品在线观看 | 日韩大片免费在线观看 | av免费黄色 | 一区二区三区日韩精品 | 97精品国产97久久久久久 | 免费在线黄网 | 91视频-88av | 国产精品一级在线 | 丝袜美女在线 | 亚洲精品88欧美一区二区 | 黄色在线观看免费网站 | 久久久国产精品久久久 | 亚洲一级免费观看 | 国产99在线免费 | 久久久久久国产精品999 | 五月开心婷婷 | 亚洲第五色综合网 | 国产精品一区二区中文字幕 | 亚洲一区精品二人人爽久久 | 亚洲专区欧美 | 中文字幕免费久久 | 欧美a视频在线观看 | 四虎在线免费观看 | 91av视频免费观看 | 久久久久久久网 | 日韩av高清在线观看 | 婷婷视频导航 | 国产日韩欧美在线看 | 免费看的黄色片 | 亚洲欧洲国产视频 | 欧美日韩一区二区三区在线免费观看 | 91在线国产观看 | 视频成人永久免费视频 | 久久免费国产视频 | 久久久综合香蕉尹人综合网 | 国产视频欧美视频 | 丝袜美腿在线 | www.五月天激情 | 欧美精品三级 | 色99网| 日日婷婷夜日日天干 | 九九热视频在线免费观看 | 特级黄录像视频 | 国产精品免费一区二区三区在线观看 | 国产精品每日更新 | 久久成人午夜 | 精品影院一区二区久久久 | 免费黄色看片 | 亚洲va欧美 | wwwwww色| 精品视频在线观看 | 在线观看91久久久久久 | 天堂中文在线播放 | 久久久国产99久久国产一 | 国内精品免费久久影院 | 91爱爱视频 | 天天做夜夜做 | 国产精品色在线 | 天天干,夜夜操 | 天天操人人要 | 国产91精品一区二区麻豆亚洲 | 久久久久久久99精品免费观看 | 欧美日本不卡高清 | 国产成人99久久亚洲综合精品 | 五月天九九 | 天天色天天射综合网 | 久久成年人网站 | 国内精品久久久 | 日韩视频一区二区在线观看 | a级国产毛片 | 欧美另类激情 | 成人免费观看电影 | av三级在线免费观看 | 蜜臀av.com| 国产精品福利视频 | 国产破处视频在线播放 | 欧美 高跟鞋交 xxxxhd | 亚洲国产成人精品电影在线观看 | 久久视频在线视频 | 欧美一区二区三区在线播放 | www.com久久久 | 欧美成人h版在线观看 | 波多野结衣在线播放视频 | 国产精品久久久久久吹潮天美传媒 | 久久理论视频 | 婷婷久操| 九九热国产视频 | 久久激情综合网 | 国产精品99久久免费观看 | 中文字幕精品三区 | 亚洲夜夜综合 | 韩国视频一区二区三区 | 激情黄色一级片 | 在线免费三级 | 精品国产免费人成在线观看 | 久色婷婷 | 国产精品成人久久久久久久 | 午夜视频免费在线观看 | 国产一级淫片在线观看 | 国产大片免费久久 | 久久久久激情电影 | 日韩女同av | a成人v在线 | 久久久久久在线观看 | 国产精品美女久久久 | 久久综合色播五月 | 在线一区观看 | 国产高清不卡在线 | 热精品 | 最近中文字幕大全中文字幕免费 | 亚洲精品在线视频观看 | 天天躁日日躁狠狠 | 亚洲国产中文字幕在线 | 久久久亚洲电影 | av中文字幕电影 | 国产高清专区 | 亚洲精品在线免费播放 | 国产精品美女久久 | 日本三级全黄少妇三2023 | 国产在线观看午夜 | 欧美一级小视频 | 九九热在线视频 | av大全在线播放 | 中文字幕在线专区 | 国产高h视频 | 99热国内精品 | 天堂中文在线播放 | 免费在线观看黄色网 | 亚洲国产日韩一区 | 日韩在线观看你懂的 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久久精品综合 | 久草五月 | 国产精品久久一区二区三区, | 日本黄色一级电影 | 91桃色在线免费观看 | 中文字幕亚洲精品在线观看 | 天天综合区 | 91av看片| 天天操夜夜操国产精品 | 在线观看亚洲视频 | 一区av在线播放 | 在线国产能看的 | 成人a级网站 | 久久久香蕉视频 | 美女精品久久久 | 91中文字幕网 | 亚洲一级黄色 | 精品一区av | 久久高清av | 丝袜美腿在线 | 久久国产精品久久精品 | 亚洲一二视频 | 98涩涩国产露脸精品国产网 | 精品毛片一区二区免费看 | 久久私人影院 | 91亚洲精品乱码久久久久久蜜桃 | 久久免费高清视频 | 免费成人看片 | 欧美成亚洲 | 久久免费看毛片 | 中文字幕一区二区三 | 久久99精品国产一区二区三区 | 亚洲国产精品免费 | 丁香六月婷婷 | 欧美成人理伦片 | 日韩av一区二区在线 | 97av免费视频| 欧美黑人性爽 | 国产999精品 | 国产小视频福利在线 | 91精品国产福利在线观看 | 亚洲最新视频在线播放 | 国产xvideos免费视频播放 | 日韩在线观看第一页 | 伊人黄色网 | av高清影院 | 日韩成人在线一区二区 | 久久深爱网 | 日韩av片无码一区二区不卡电影 | 超碰人人草 | 国产尤物一区二区三区 | 亚洲精品a区 | 日韩欧美在线免费 | 亚洲男男gaygay无套同网址 | 三级大片网站 | 免费看一及片 | 波多野结衣在线观看视频 | 久草视频首页 | 国产h在线观看 | 国产精国产精品 | 色天天综合网 | 日韩xxx视频 | 欧美日韩在线观看一区 | 久青草国产在线 | 国内少妇自拍视频一区 | 国产婷婷视频在线 | 精品国产一区二区三区不卡 | 黄色a级片在线观看 | 午夜精品一区二区三区在线 | 成人在线一区二区 | 色网站在线免费观看 | 在线观看网站av | 国产婷婷视频在线 | 日韩精品中文字幕在线不卡尤物 | 国产精品综合在线 | 最新av在线网站 | 国产在线黄 | 丁香激情综合久久伊人久久 | 在线a亚洲视频播放在线观看 | 久久综合影院 | 999热线在线观看 | 欧美一级片在线观看视频 | 天天夜夜亚洲 | 热久精品 | 亚洲视频1区2区 | 久久婷亚洲五月一区天天躁 | 久久在线影院 | 中文字幕精品一区二区精品 | 中文字幕亚洲精品在线观看 | 在线看v片成人 | 国产成人一二片 | 久久这里只有精品23 | 亚洲国产精品影院 | 91九色在线播放 | av超碰在线 | 99福利影院| 欧美日韩1区 | 免费国产一区二区视频 | 中文字幕在线观看视频一区 | 亚洲va欧洲va国产va不卡 | 成人av一区二区兰花在线播放 | 国产99精品| 久久久久久久久精 | 黄色毛片视频 | 亚洲永久av| 探花视频在线观看免费版 | 久久精品视频在线 | 久久视频| 九九精品视频在线 | 在线亚洲高清视频 | 久久久69 | 最新亚洲视频 | 日韩一区二区三区在线观看 | 69av视频在线观看 | 在线导航福利 | 日本黄色免费观看 | 国产美女视频一区 | 亚洲精品高清在线观看 | 狠狠操欧美 | 99久久99久久免费精品蜜臀 | 91中文字幕在线视频 | 五月天六月色 | 天天干天天碰 | 欧美久久久久久久久久久 | 91成年人在线观看 | 免费在线观看视频一区 | 中文字幕频道 | 欧美色噜噜 | 激情综合五月天 | 亚洲九九精品 | 天天综合网久久综合网 | 免费日韩视频 | 99热精品在线观看 | 国内成人精品视频 | 天天操天天操天天操天天 | 在线视频黄 | 欧美日韩伦理一区 | 超碰免费成人 | 国产自制av | 亚洲精品白浆高清久久久久久 | 精品美女久久久久久免费 | 婷婷开心久久网 | 麻豆久久久久久久 | 亚洲视频精品在线 | 日韩乱码中文字幕 | 久草网在线 | 正在播放一区二区 | 免费黄在线观看 | 日韩视频欧美视频 | 中文字幕高清在线播放 | 天天色棕合合合合合合 | av高清网站在线观看 | 亚洲精品字幕在线观看 | 午夜国产一区二区 | 国产一区二区精品91 | 在线观看日韩精品 | 丁香花五月 | 欧美成人中文字幕 | 成年人在线免费看片 | 黄网站污 | 欧美精品一区二区蜜臀亚洲 | 国产一区二区不卡在线 | 日韩美视频 | 欧美日韩一区三区 | 日本论理电影 | 三级黄免费看 | 香蕉91视频 | 欧美在线视频免费 | 美州a亚洲一视本频v色道 | 欧美日韩另类在线观看 | 中文字幕免费在线看 | 亚洲精品午夜aaa久久久 | 在线观看黄网站 | 美女在线免费视频 | 四虎影视成人永久免费观看亚洲欧美 | 91麻豆精品国产91久久久更新时间 | 国产 欧美 日产久久 | 久草免费电影 | 久久免费的精品国产v∧ | 又黄又爽又刺激 | 久久成人综合 | 免费色视频网站 | 在线观看www视频 | av福利资源| 69国产盗摄一区二区三区五区 | a久久免费视频 | 久久夜av| 天天干人人插 | 狠狠色噜噜狠狠 | 国产黄色网 | 五月婷久久 | 精品黄色在线 | 制服丝袜成人在线 | 97国产大学生情侣白嫩酒店 | 日日摸日日 | 国产91在线看 | 又大又硬又黄又爽视频在线观看 | 精选久久| 国产一级二级av | 天天舔夜夜操 | 制服丝袜亚洲 | 精品国产免费久久 | 欧美一级片在线播放 | 天天插狠狠插 | 欧美性一级观看 | 欧洲视频一区 | 久久久美女 | 成在人线av | 国产伦精品一区二区三区… | 狠狠干婷婷 | 成人av在线直播 | 成人午夜电影在线 | 激情av网 | 久久 亚洲视频 | 免费看麻豆 | 特黄色大片 | 精品一区二区av | 五月婷丁香网 | 亚洲国产欧美在线看片xxoo | 亚州精品国产 | 精品久久中文 | 少妇bbbb揉bbbb日本 | 国产综合福利在线 | 亚洲激情免费 | 天天综合91| 一级成人在线 | 一级免费片 | 国内偷拍精品视频 | 午夜精品久久久久久久99无限制 | 国产精品3区 | 一区二区精品在线观看 | 成人一级视频在线观看 | 国产一区二区三区在线免费观看 | 天天干天天天 | 一区二区中文字幕在线观看 | 国产精品欧美日韩在线观看 | 精品久久国产一区 | 国产中文字幕在线播放 | 激情五月婷婷激情 | 96精品高清视频在线观看软件特色 | 久久久久久久久久久久久影院 | 91在线精品秘密一区二区 | 免费视频色 | 亚洲视频观看 | 黄色毛片视频 |