午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > 多視角3D逼真HTML5水波動畫

多視角3D逼真HTML5水波動畫

熱門標簽:南通數據外呼系統推廣 地圖標注位置能賺錢嗎 邢臺縣地圖標注app 阜陽企業外呼系統 外呼系統電話怎么投訴 申請400電話流程簡介 呼和浩特外呼電銷系統排名 外呼線穩定線路 pageadm實現地圖標注

這是一款基于HTML5的3D水波動畫特效,它的效果非常逼真,我們可以按“G”鍵來讓水池中的石頭上下浮動,按“L”鍵添加燈光效果,設計相當完美。同時說明一下,這款3D水波動畫是基于WebGL渲染技術的,大家可以了解一下WebGL。

在線預覽 源碼下載

HTML代碼

XML/HTML Code復制內容到剪貼板
  1. <img id="tiles" src="tiles.jpg">  
  2. <img id="xneg" src="xneg.jpg">  
  3. <img id="xpos" src="xpos.jpg">  
  4. <img id="ypos" src="ypos.jpg">  
  5. <img id="zneg" src="zneg.jpg">  
  6. <img id="zpos" src="zpos.jpg">  
  7.   

JavaScript代碼

JavaScript Code復制內容到剪貼板
  1. function Water() {   
  2.   var vertexShader = '\  
  3.     varying vec2 coord;\  
  4.     void main() {\  
  5.       coord = gl_Vertex.xy * 0.5 + 0.5;\  
  6.       gl_Position = vec4(gl_Vertex.xyz, 1.0);\  
  7.     }\  
  8.   ';   
  9.   this.plane = GL.Mesh.plane();   
  10.   if (!GL.Texture.canUseFloatingPointTextures()) {   
  11.     throw new Error('This demo requires the OES_texture_float extension');   
  12.   }   
  13.   var filter = GL.Texture.canUseFloatingPointLinearFiltering() ? gl.LINEAR : gl.NEAREST;   
  14.   this.textureA = new GL.Texture(256, 256, { type: gl.FLOAT, filter: filter });   
  15.   this.textureB = new GL.Texture(256, 256, { type: gl.FLOAT, filter: filter });   
  16.   this.dropShader = new GL.Shader(vertexShader, '\  
  17.     const float PI = 3.141592653589793;\  
  18.     uniform sampler2D texture;\  
  19.     uniform vec2 center;\  
  20.     uniform float radius;\  
  21.     uniform float strength;\  
  22.     varying vec2 coord;\  
  23.     void main() {\  
  24.       /* get vertex info */\  
  25.       vec4 info = texture2D(texture, coord);\  
  26.       \  
  27.       /* add the drop to the height */\  
  28.       float drop = max(0.0, 1.0 - length(center * 0.5 + 0.5 - coord) / radius);\  
  29.       drop = 0.5 - cos(drop * PI) * 0.5;\  
  30.       info.r += drop * strength;\  
  31.       \  
  32.       gl_FragColor = info;\  
  33.     }\  
  34.   ');   
  35.   this.updateShader = new GL.Shader(vertexShader, '\  
  36.     uniform sampler2D texture;\  
  37.     uniform vec2 delta;\  
  38.     varying vec2 coord;\  
  39.     void main() {\  
  40.       /* get vertex info */\  
  41.       vec4 info = texture2D(texture, coord);\  
  42.       \  
  43.       /* calculate average neighbor height */\  
  44.       vec2 dx = vec2(delta.x, 0.0);\  
  45.       vec2 dy = vec2(0.0, delta.y);\  
  46.       float average = (\  
  47.         texture2D(texture, coord - dx).r +\  
  48.         texture2D(texture, coord - dy).r +\  
  49.         texture2D(texture, coord + dx).r +\  
  50.         texture2D(texture, coord + dy).r\  
  51.       ) * 0.25;\  
  52.       \  
  53.       /* change the velocity to move toward the average */\  
  54.       info.g += (average - info.r) * 2.0;\  
  55.       \  
  56.       /* attenuate the velocity a little so waves do not last forever */\  
  57.       info.g *= 0.995;\  
  58.       \  
  59.       /* move the vertex along the velocity */\  
  60.       info.r += info.g;\  
  61.       \  
  62.       gl_FragColor = info;\  
  63.     }\  
  64.   ');   
  65.   this.normalShader = new GL.Shader(vertexShader, '\  
  66.     uniform sampler2D texture;\  
  67.     uniform vec2 delta;\  
  68.     varying vec2 coord;\  
  69.     void main() {\  
  70.       /* get vertex info */\  
  71.       vec4 info = texture2D(texture, coord);\  
  72.       \  
  73.       /* update the normal */\  
  74.       vec3 dx = vec3(delta.x, texture2D(texture, vec2(coord.x + delta.x, coord.y)).r - info.r, 0.0);\  
  75.       vec3 dy = vec3(0.0, texture2D(texture, vec2(coord.x, coord.y + delta.y)).r - info.r, delta.y);\  
  76.       info.ba = normalize(cross(dy, dx)).xz;\  
  77.       \  
  78.       gl_FragColor = info;\  
  79.     }\  
  80.   ');   
  81.   this.sphereShader = new GL.Shader(vertexShader, '\  
  82.     uniform sampler2D texture;\  
  83.     uniform vec3 oldCenter;\  
  84.     uniform vec3 newCenter;\  
  85.     uniform float radius;\  
  86.     varying vec2 coord;\  
  87.     \  
  88.     float volumeInSphere(vec3 center) {\  
  89.       vec3 toCenter = vec3(coord.x * 2.0 - 1.0, 0.0, coord.y * 2.0 - 1.0) - center;\  
  90.       float t = length(toCenter) / radius;\  
  91.       float dy = exp(-pow(t * 1.5, 6.0));\  
  92.       float ymin = min(0.0, center.y - dy);\  
  93.       float ymax = min(max(0.0, center.y + dy), ymin + 2.0 * dy);\  
  94.       return (ymax - ymin) * 0.1;\  
  95.     }\  
  96.     \  
  97.     void main() {\  
  98.       /* get vertex info */\  
  99.       vec4 info = texture2D(texture, coord);\  
  100.       \  
  101.       /* add the old volume */\  
  102.       info.r += volumeInSphere(oldCenter);\  
  103.       \  
  104.       /* subtract the new volume */\  
  105.       info.r -= volumeInSphere(newCenter);\  
  106.       \  
  107.       gl_FragColor = info;\  
  108.     }\  
  109.   ');   
  110. }   
  111.   
  112. Water.prototype.addDrop = function(x, y, radius, strength) {   
  113.   var this_ = this;   
  114.   this.textureB.drawTo(function() {   
  115.     this_.textureA.bind();   
  116.     this_.dropShader.uniforms({   
  117.       center: [x, y],   
  118.       radius: radius,   
  119.       strength: strength   
  120.     }).draw(this_.plane);   
  121.   });   
  122.   this.textureB.swapWith(this.textureA);   
  123. };   
  124.   
  125. Water.prototype.moveSphere = function(oldCenter, newCenter, radius) {   
  126.   var this_ = this;   
  127.   this.textureB.drawTo(function() {   
  128.     this_.textureA.bind();   
  129.     this_.sphereShader.uniforms({   
  130.       oldCenter: oldCenter,   
  131.       newCenter: newCenter,   
  132.       radius: radius   
  133.     }).draw(this_.plane);   
  134.   });   
  135.   this.textureB.swapWith(this.textureA);   
  136. };   
  137.   
  138. Water.prototype.stepSimulation = function() {   
  139.   var this_ = this;   
  140.   this.textureB.drawTo(function() {   
  141.     this_.textureA.bind();   
  142.     this_.updateShader.uniforms({   
  143.       delta: [1 / this_.textureA.width, 1 / this_.textureA.height]   
  144.     }).draw(this_.plane);   
  145.   });   
  146.   this.textureB.swapWith(this.textureA);   
  147. };   
  148.   
  149. Water.prototype.updateNormals = function() {   
  150.   var this_ = this;   
  151.   this.textureB.drawTo(function() {   
  152.     this_.textureA.bind();   
  153.     this_.normalShader.uniforms({   
  154.       delta: [1 / this_.textureA.width, 1 / this_.textureA.height]   
  155.     }).draw(this_.plane);   
  156.   });   
  157.   this.textureB.swapWith(this.textureA);   
  158. };   

以上就是本文的全部內容,希望對大家的學習有所幫助。

標簽:黃山 內蒙古 鶴崗 蚌埠 楊凌 德州 撫順 辛集

巨人網絡通訊聲明:本文標題《多視角3D逼真HTML5水波動畫》,本文關鍵詞  多,視角,逼真,HTML5,水波,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《多視角3D逼真HTML5水波動畫》相關的同類信息!
  • 本頁收集關于多視角3D逼真HTML5水波動畫的相關信息資訊供網民參考!
  • 推薦文章
    久久国产视频一区| 在线观看精品视频| 亚洲国产欧美在线| 国产一区二区视频网站| 超碰97国产在线| 成人亚洲一区二区一| 韩日视频在线观看| 亚洲国产aⅴ成人精品无吗| 亚洲精品乱码久久久久久久久久久久 | 色狠狠一区二区| 精品久久一二三| 99精品视频在线观看| 香蕉久久久久久av成人| 精品性高朝久久久久久久| 日韩精品在线免费视频| 国产欧美一区二区三区四区| www久久精品| 国产在线观看免费视频今夜| 免费成人深夜夜行网站视频| 日韩欧美国产一区二区在线播放| 国产色片在线观看| 国产欧美日韩在线播放| 亚洲精品网站在线观看| 亚洲精品久久一区二区三区777| 中国china体内裑精亚洲片| 日韩 欧美 亚洲| 亚洲国产欧美一区二区丝袜黑人 | 精品免费一区二区三区| 无码人妻黑人中文字幕| 精品中文字幕视频| 国产在线一区二区综合免费视频| 欧美wwwwwww| 国产精品视频99| 欧美日韩精品一区视频| 久久精品国产一区二区三区免费看| 国产高潮呻吟久久| 亚洲精品成人三区| 欧美吞精做爰啪啪高潮| 少妇一级淫片日本| 国产一区不卡在线观看| 国产精品久久久久aaaa樱花 | 成人18视频在线播放| 狠狠色综合欧美激情| 国产在线播精品第三| 欧美成ee人免费视频| 亚洲午夜一区二区| 日本一区二区免费在线观看| 77777少妇光屁股久久一区| 91丨porny丨国产入口| 91免费在线看片| 香蕉精品视频在线| 国产成人激情小视频| 91精品婷婷国产综合久久| 中文字幕另类日韩欧美亚洲嫩草| 国产日韩成人内射视频| 成人女保姆的销魂服务| 欧美成人精精品一区二区频| 成人av手机在线| 免费看日本毛片| 亚洲国产女人aaa毛片在线| 99精品人妻无码专区在线视频区| 国内外成人激情视频| 在线观看成人黄色| 精品无码av在线| 欧美成人免费在线观看| 亚洲第一天堂网| 亚洲高清不卡一区| 日韩久久久精品| 特级西西444www大胆免费看| 日本免费黄色小视频| 欧美在线观看视频一区二区三区| 日韩成人午夜电影| 欧美精品久久久久性色| 青青草久久伊人| 久久er99热精品一区二区三区| 亚洲女人天堂网| 亚洲视频一二三区| 国产精品久久久午夜夜伦鲁鲁| www.av蜜桃| 日韩在线免费av| 国产精品白丝jk白祙喷水网站| 天天躁日日躁狠狠躁免费麻豆| 日本aⅴ大伊香蕉精品视频| 亚洲精选一区二区三区| 美女视频久久| 亚洲一区在线视频观看| 久久精品国产亚洲av麻豆| 国产伦理一区二区三区| 91精品久久久久久久久99蜜臂| 国产精品女人久久久| 国模无码视频一区二区三区| 2019亚洲日韩新视频| 欧美制服丝袜第一页| 国产精品理论在线观看| 美女网站视频久久| 豆国产97在线 | 亚洲| 8x8x成人免费视频| 神马欧美一区二区| 欧美性一区二区三区| 亚洲综合免费观看高清完整版| 国产成人精品网| 久久这里只有精品23| 日韩精品视频在线免费观看| 91香蕉视频污| 男人天堂2024| 国内一区在线| 亚洲福利电影网| 一区二区视频免费看| 91精品啪aⅴ在线观看国产| 日韩欧美在线影院| 99久久99久久精品免费观看| 男人的天堂久久久| av噜噜色噜噜久久| 亚洲视频视频在线| 欧美大片拔萝卜| 在线观看免费一区| 亚洲一区二区不卡免费| xfplay精品久久| 日韩电影在线一区二区| 在线永久看片免费的视频| 99re久久精品国产| 亚洲欧美成人一区| 久久国产精品偷| 亚洲高清视频在线| 日韩av在线免费观看不卡| 亚洲区一区二区三| 91看片淫黄大片91| 欧美日韩视频不卡| 亚洲精品视频久久久| 91精品国产综合久久久久久蜜臀| 亚洲色图视频网站| 国产美女免费视频| 免费人成视频在线播放| 国产在线观看不卡| 亚洲精品视频播放| 亚洲黄色在线视频| 91年精品国产| 成人不卡免费av| 九九视频精品免费| 少妇一区二区三区四区| 国产精品一区二区三区四| 中文字幕在线看高清电影| 日韩免费高清在线| 日本免费在线视频观看| 欧美一区二区三区精品电影| 欧美私模裸体表演在线观看| 97久久超碰国产精品| 国产精品久久久久久免费免熟| www.色天使| 国产成人精品福利一区二区三区 | 国产精品久久九九| 国产在线一区二区三区| 日韩黄色高清视频| 精品二区三区线观看| 国产成人亚洲综合a∨猫咪| 在线观看成人动漫| 亚洲高潮无码久久| 国产精品自拍网| 尤物yw午夜国产精品视频| 国产一区二区三区视频免费| 亚洲成人久久电影| 亚洲精品一线二线三线| 欧美精品一区二区三区很污很色的 | 久久综合中文| 国产一级精品视频| 久久撸在线视频| 屁屁影院ccyy国产第一页| 国产精品一区久久久| 精品国产一区二区三区在线观看| 亚洲欧美怡红院| 天堂网av在线播放| 黄网站免费在线| 九九热国产精品视频| 精品99久久久久成人网站免费| 制服丝袜av在线| 91精品免费观看| 成人性生活毛片| 丰满少妇一区二区三区专区| 日韩精品一区在线视频| 成人免费看黄网站| 欧美日韩国产小视频在线观看| 97精品久久久午夜一区二区三区| 日本三级免费看| 国产免费999| 91精品久久久久久蜜桃| 亚洲欧洲激情在线| 日本精品免费观看高清观看| 激情久久久久久久久久久久久久久久| 永久免费毛片在线观看| 国产一区二区三区免费不卡| 亚洲国产精品系列| 国产精品丝袜久久久久久app| 国产伦理精品不卡| 性一交一乱一乱一视频| 日本久久久久久久久久久久| 国产一二三区在线播放| 国产三级精品在线不卡| 欧美一区二区三区婷婷月色| 99久久99久久精品免费看蜜桃| 日本中文字幕在线| 日本美女久久久| 精品久久中出| 色777狠狠综合秋免鲁丝| 亚洲综合在线第一页| 日韩精品亚洲一区| 国产一级性生活| 97超碰人人爽| 久久精品ww人人做人人爽| 色av中文字幕一区| 精品久久久久久久久久| 久久久www成人免费无遮挡大片 | 欧美孕妇孕交黑巨大网站| 欧美专区中文字幕| 91麻豆国产语对白在线观看| 亚洲一区二区在| 国产偷人视频免费| 国产精品igao网网址不卡| 欧美午夜激情影院| 五月婷婷激情网| 日本熟妇毛耸耸xxxxxx| 久久久久久久久97| 欧美性猛交xxxx乱大交少妇| 人妻体内射精一区二区三区| www.555国产精品免费| 久久久精品麻豆| 日本男人操女人| 粗暴91大变态调教| 久久免费一级片| 国产精品污www一区二区三区| 人九九综合九九宗合| 国产视频不卡| 伊人久久大香线蕉精品| 国产偷人视频免费| 亚洲精品无码国产| 小说区视频区图片区| 老司机av福利| 日韩资源av在线| 国内精品久久影院| 国产精品美女主播在线观看纯欲| 久久人91精品久久久久久不卡| 中文字幕在线视频日韩| 久久91精品国产91久久久| 久久综合亚洲社区| 欧美激情精品久久久久久| 神马久久久久久| 精品综合久久久久久97| 久久精品青青大伊人av| 日本免费一区二区三区视频观看| 国产精品扒开腿做爽爽爽男男 | 欧美激情图片区| 茄子视频成人在线| 日韩精品中午字幕| 欧美日韩一区二区在线观看| 1024成人网| 99精品视频在线观看| 麻豆国产精品官网| 香蕉国产在线视频| 亚洲视频在线观看免费视频| 精品视频一区二区在线观看| 妖精视频在线观看免费| 欧美深性狂猛ⅹxxx深喉| 蜜桃免费在线视频| 日韩av在线第一页| 国产又大又长又粗又黄| 久久精品一区二区三区不卡免费视频| 在线一区高清| 亚洲一级免费观看| 91精品国产高清一区二区三蜜臀| 永久免费看片视频教学| 国产盗摄一区二区三区在线| 精品区在线观看| 奇米综合一区二区三区精品视频| 老色鬼精品视频在线观看播放| 久久久天堂av| 欧美日韩视频不卡| 精品国产乱码久久久久久1区2区 | 夜夜嗨av禁果av粉嫩avhd| 中文字幕一区二区免费| 国产三级漂亮女教师| 蜜臀av一区二区在线免费观看| 久久激五月天综合精品| 亚洲一区二区三区美女| 91精品国产综合久久婷婷香蕉| 亚洲第一页自拍| 亚洲男人av电影| 欧美另类高清videos| 国语自产在线不卡| 亚洲一区二区三区在线视频| 国产无码精品久久久| 日本中文字幕精品| 国产精品久久久免费看| 久久久久久久国产精品毛片| 久草免费新视频| 亚洲国产精品成人无久久精品| 国产又黄又猛又爽| 日本一区二区免费在线观看视频| 精品日韩99亚洲| 国产日韩在线观看av| 久久www免费人成精品| www.日本三级| 国产精品探花一区二区在线观看| 国产精品视频在| 国产精品久久久久久成人| 中文字幕视频二区| 国产成人午夜精品影院观看视频| 亚洲美女一区二区三区| 日韩电影中文字幕在线| 美日韩免费视频| 日韩av.com| 97人人爽人人爽人人爽| 精品久久久香蕉免费精品视频| 久久久www成人免费精品张筱雨| 欧美激情一级精品国产| 日韩和欧美的一区二区| 国产精品揄拍100视频| 天天操天天操天天干| 性久久久久久久久| 亚洲日韩中文字幕| 高清国语自产拍免费一区二区三区| 在线视频一区观看| 日本少妇高潮喷水xxxxxxx| 无码人妻熟妇av又粗又大| 精品一区二区三区欧美| 一区二区三区蜜桃网| 亚洲国内精品视频| 91精品国产色综合久久不卡98| 激情五月综合色婷婷一区二区 | 成人午夜激情影院| 一区二区三区在线视频观看58| 精品一区二区三区三区| av成人综合网| 一级在线免费视频| 国产jjizz一区二区三区视频| 国产精品嫩草影院俄罗斯| 久久精品国产一区二区三| 日本精品视频一区二区| 影音先锋欧美精品| 色婷婷精品国产一区二区三区| 久久中文字幕在线观看| 国产精品国模大尺度视频| 奇米4444一区二区三区| 成人免费在线小视频| 性中国xxx极品hd| 欧美日韩在线三级| 99久久一区三区四区免费| 波多野结衣影院| 国产一区二区美女| 亚洲精品av在线播放| 欧美最猛性xxxx| 精品国产免费av| 国产成人精品网| 国产丶欧美丶日本不卡视频| 欧美不卡123| 成人观看高清在线观看免费| 成年人网站大全| 国产喷水福利在线视频| 国产精品久久久久影院亚瑟| 亚洲第一精品电影| 不卡一卡2卡3卡4卡精品在| www.久久91| 国内精品国产成人国产三级| 欧美在线你懂得| 久久99精品久久久久久秒播放器| 精品一区二区在线观看视频| 国产精品夜夜嗨| 欧美专区亚洲专区| 日本精品免费观看| 一区二区成人网| 精品久久久久久亚洲综合网站| 午夜影院久久久| 亚洲成人xxx| 欧美日韩综合精品| 国产精品久久久久久久精| 97精品国产露脸对白| 亚洲色图国产精品| 亚洲欧美日韩精品久久久| 91插插插插插插| 国产日产欧美一区二区三区| 日韩在线观看免费高清| 国产免费黄视频| 国产黄色高清视频| 亚洲电影在线观看| 伊人av成人| 国语对白永久免费| 91色在线porny| 亚洲精品按摩视频| 国产精品久久久久久亚洲调教 | 成人性生交xxxxx网站| 国产精品亚洲αv天堂无码| 久操免费在线视频| 成人精品免费网站| 一本大道亚洲视频| 一区二区三区视频| 亚洲 欧美 中文字幕| 亚洲午夜一区二区三区| 国产精品自产拍高潮在线观看| 极品人妻videosss人妻| 国产精品色哟哟网站| 国产精华一区| 成年人午夜视频| 精品美女一区二区| 久久福利一区二区| 日本午夜精品视频在线观看| 久久久久久久久久久人体| 爱爱免费小视频| 中文字幕av一区二区三区高| 91国产丝袜在线放| 精品无码一区二区三区电影桃花| 国产精品久久久久久久第一福利| 国内精品久久久久伊人av|