欧美精品在线一区二区三区_亚洲女同精品视频_日韩一区免费_国产欧美久久久精品免费_国产这里只有精品_僵尸再翻生在线观看_久久99精品国产一区二区三区_亚洲免费一区二区_女教师淫辱の教室蜜臀av软件_中文字幕国产一区二区

使用three.js的著色器通道渲染地球模型

2018-5-11    seo達人

如果您想訂閱本博客內容,每天自動發(fā)到您的郵箱中, 請點這里

我們都知道,three.js庫里面內置了很多著色器通道對象供我們渲染場景,本文將對EffectComposer、RenderPass、FilmPass這三個通道進行學習和實現(xiàn):

1.RenderPass這個通道會在當前場景(scene)和攝像機(camera)的基礎上渲染出一個新場景,新建:

[javascript] view plain copy
  1. let renderPass = new THREE.RenderPass(scene, camera);  

2.FilmPass這個通道通過掃描線和失真模擬電視屏幕效果,實現(xiàn)的效果超有時代感,新建:

[javascript] view plain copy
  1. /*四個參數分別為粗糙程度,掃描線強度,掃描線數量,是否轉換為灰度圖*/  
  2. let effectFilm = new THREE.FilmPass(0.8, 0.325, 256, false);  
  3. //將渲染結果輸出到屏幕  
  4. effectFilm.renderToScreen = true;  

3.EffectComposer可以理解為著色器通道容器,著色器通道按照先后順序添加進來并執(zhí)行,新建:

[javascript] view plain copy
  1. /*渲染效果組合器,每個通道都按照傳入的順序執(zhí)行*/  
  2. let composer = new THREE.EffectComposer(renderer);  
  3. composer.addPass(renderPass);  
  4. composer.addPass(effectFilm);  

本文實現(xiàn)的demo基于three.js_r86(請自行下載),代碼所用js文件和圖片都在下載的那個包里面,請讀者自行引用。

實現(xiàn)效果:



代碼:

[html] view plain copy
  1. <!DOCTYPE html>  
  2. <html lang="en">  
  3. <head>  
  4.     <meta charset="UTF-8">  
  5.     <title>shader_2_earth</title>  
  6.     <style>  
  7.         body{  
  8.             margin: 0;  
  9.             overflow: hidden;  
  10.         }  
  11.     </style>  
  12. </head>  
  13. <body>  
  14. <script src="build/three.js"></script>  
  15. <script src="js/libs/stats.min.js"></script>  
  16. <script src="js/libs/dat.gui.min.js"></script>  
  17. <script src="js/controls/OrbitControls.js"></script>  
  18. <script src="js/Detector.js"></script>  
  19.   
  20. <script src="js/postprocessing/EffectComposer.js"></script>  
  21. <script src="js/postprocessing/ShaderPass.js"></script>  
  22. <script src="js/postprocessing/MaskPass.js"></script>  
  23. <script src="js/postprocessing/FilmPass.js"></script>  
  24. <script src="js/postprocessing/BloomPass.js"></script>  
  25. <script src="js/postprocessing/RenderPass.js"></script>  
  26.   
  27. <script src="js/shaders/CopyShader.js"></script>  
  28. <script src="js/shaders/FilmShader.js"></script>  
  29.   
  30. <div id="stats"></div>  
  31. <div id="container"></div>  
  32. <script>  
  33.     //檢測webgl的兼容性  
  34.    if(!Detector.webgl) Detector.addGetWebGLMessage();  
  35.   
  36.    let scene;  
  37.    let camera, renderer, sphere, controls, stats;  
  38.    let ambientLight, spotLight;  
  39.    let composer;  
  40.    let clock;  
  41.   
  42.    main();  
  43.    render();  
  44.   
  45.    function main() {  
  46.        scene = new THREE.Scene();  
  47.   
  48.        camera = new THREE.PerspectiveCamera(45, window.innerWidth/window.innerHeight, 0.1, 1000);  
  49.        camera.position.set(-10, 15, 25);  
  50.        camera.lookAt(new THREE.Vector3(0, 0, 0));  
  51.   
  52.        renderer = new THREE.WebGLRenderer({antialias:true});  
  53.        renderer.setClearColor(new THREE.Color(0,0,0));  
  54.        renderer.setSize(window.innerWidth, window.innerHeight);  
  55.        renderer.shadowMapEnabled = true;  
  56.   
  57.        controls = new THREE.OrbitControls(camera);  
  58.        controls.autoRotate = false;  
  59.   
  60.        clock = new THREE.Clock();  
  61.   
  62.        ambientLight = new THREE.AmbientLight(0x181818);  
  63.        scene.add(ambientLight);  
  64.   
  65.        spotLight = new THREE.SpotLight(0xffffff);  
  66.        spotLight.position.set(550, 100, 550);  
  67.        spotLight.intensity = 0.6;  
  68.        scene.add(spotLight);  
  69.   
  70.        //創(chuàng)建地球  
  71.        sphere = createMesh(new THREE.SphereGeometry(10, 60, 60));  
  72.        scene.add(sphere);  
  73.   
  74.        document.getElementById("container").appendChild(renderer.domElement);  
  75.   
  76.        /**  
  77.         * 添加渲染通道  
  78.         */  
  79.        //在當前場景和攝像機的基礎上渲染一個新場景  
  80.        let renderPass = new THREE.RenderPass(scene, camera);  
  81.        //通過掃描線和失真來實現(xiàn)模擬電視屏幕的效果  
  82.        let effectFilm = new THREE.FilmPass(0.8, 0.325, 256, false);  
  83.        //將渲染結果輸出到屏幕  
  84.        effectFilm.renderToScreen = true;  
  85.   
  86.        //渲染效果組合器,每個通道都按照傳入的順序執(zhí)行  
  87.        composer = new THREE.EffectComposer(renderer);  
  88.        composer.addPass(renderPass);  
  89.        composer.addPass(effectFilm);  
  90.   
  91.        //菜單欄元素  
  92.        let guiFields = {  
  93.            "掃描線數量": 256,  
  94.            "灰度圖像": false,  
  95.            "掃描線強度": 0.3,  
  96.            "粗糙程度": 0.8,  
  97.            "updateEffectFilm": function () {  
  98.                effectFilm.uniforms.grayscale.value = guiFields.灰度圖像;  
  99.                effectFilm.uniforms.nIntensity.value = guiFields.粗糙程度;  
  100.                effectFilm.uniforms.sIntensity.value = guiFields.掃描線強度;  
  101.                effectFilm.uniforms.sCount.value = guiFields.掃描線數量;  
  102.            }  
  103.        };  
  104.   
  105.        //新建一個菜單欄  
  106.        let gui = new dat.GUI();  
  107.        gui.add(guiFields, "掃描線數量", 0, 2048).onChange(guiFields.updateEffectFilm);  
  108.        gui.add(guiFields, "掃描線強度", 0, 1).onChange(guiFields.updateEffectFilm);  
  109.        gui.add(guiFields, "粗糙程度", 0, 3).onChange(guiFields.updateEffectFilm);  
  110.        gui.add(guiFields, "灰度圖像").onChange(guiFields.updateEffectFilm);  
  111.   
  112.        stats = initStats();  
  113.    }  
  114.   
  115.    //創(chuàng)建一個Mesh  
  116.    function createMesh(geometry) {  
  117.   
  118.        //初始化紋理加載器  
  119.        let textureLoader = new THREE.TextureLoader();  
  120.        //加載圖片  
  121.        let uniforms = {  
  122.            planetTexture:{value:textureLoader.load("textures/planets/earth_atmos_2048.jpg")},  
  123.            specularTexture:{value:textureLoader.load("textures/planets/earth_specular_2048.jpg")},  
  124.            normalTexture:{value:textureLoader.load("textures/planets/earth_normal_2048.jpg")}  
  125.        };  
  126.   
  127.        //創(chuàng)建phong材料,并進行相應圖片的貼圖  
  128.        let planetMaterial = new THREE.MeshPhongMaterial();  
  129.        planetMaterial.specularMap = uniforms.specularTexture.value;  
  130.        planetMaterial.specular = new THREE.Color(0x4444aa);  
  131.   
  132.        planetMaterial.normalMap = uniforms.normalTexture.value;  
  133.        planetMaterial.map = uniforms.planetTexture.value;  
  134.   
  135.        //新建一個mesh  
  136.        let mesh = new THREE.SceneUtils.createMultiMaterialObject(geometry, [planetMaterial]);  
  137.   
  138.        return mesh;  
  139.    }  
  140.   
  141.    //渲染更新場景  
  142.   
  143.    function render() {  
  144.        stats.update();  
  145.        let delta = clock.getDelta();  
  146.        controls.update(delta);  
  147.        sphere.rotation.y += 0.002;  
  148.        requestAnimationFrame(render);  
  149.   
  150.        //沒有著色器通道系統(tǒng)默認為WebGLRenderer.render  
  151.        //使用著色器通道后,應使用使用composer.render  
  152.        composer.render(delta);  
  153.    }  
  154.   
  155.    //左上角幀顯示  
  156.    function initStats() {  
  157.        let stats = new Stats();  
  158.        stats.setMode(0);  
  159.        stats.domElement.style.position = 'absolute';  
  160.        stats.domElement.style.left = '0px';  
  161.        stats.domElement.style.top = '0px';  
  162.        document.getElementById("stats").appendChild(stats.domElement);  
  163.   
  164.        return stats;  
  165.    }  
  166. </script>  
  167. </body>  
  168. </html>  
藍藍設計www.ocunn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業(yè)提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

日歷

鏈接

個人資料

藍藍設計的小編 http://www.ocunn.cn

存檔

亚洲视频 欧美视频| 午夜肉伦伦影院| 国产伦精品一区二区三区视频我| 欧美va在线观看| 国产精品一区二区久激情瑜伽| 国产亚洲精品久久| 国产一区二区三区乱码| 国产精品亚洲lv粉色| 西野翔中文久久精品字幕| 一区二区三区不卡视频在线观看| 国产精品视频网| 超碰97人人干| 毛片在线导航| 国产福利91精品一区二区三区| 色综合亚洲精品激情狠狠| 日韩一级免费在线观看| 超碰在线94| 欧美三级免费| 欧美sm极限捆绑bd| 欧美 国产 精品| 91亚洲欧美激情| 欧洲乱码伦视频免费| 色婷婷综合久久久久中文一区二区| 91网免费观看| 久久艹精品视频| 国产专区精品| 亚洲精品欧美综合四区| 3d精品h动漫啪啪一区二区 | 成人精品在线视频| 长河落日免费高清观看| 成人软件在线观看| 亚洲国产精华液网站w| 国产精品入口尤物| 亚洲欧美精品久久| 成人精品一区二区三区电影| 一区在线观看视频| 91九色在线观看| 天海翼一区二区| 你懂的在线观看一区二区| 狠狠躁夜夜躁人人爽天天天天97| 奇米影视首页 狠狠色丁香婷婷久久综合 | 欧美日本国产| 精品国产一区a| 久在线观看视频| 一级二级在线观看| 三级在线观看一区二区| 色偷偷888欧美精品久久久| 中文国产在线观看| 18加网站在线| 久久综合精品国产一区二区三区 | 一区二区三区四区电影| 精品久久一区二区三区| 日本精品一区二区三区四区| 男女网站在线观看| 九色porny丨国产精品| 欧美激情中文字幕乱码免费| 国产精品无码一区二区三区免费| www.com.cn成人| 中文字幕在线不卡视频| 国产精品18毛片一区二区| 亚洲欧美日韩激情| 97精品国产福利一区二区三区| 欧美成人r级一区二区三区| 男人的天堂99| 欧美日韩视频在线播放| 成人av电影在线播放| 国产日韩在线亚洲字幕中文| 精品视频久久久久| 无码日韩精品一区二区免费| 欧美一区二区三区爱爱| 激情网站五月天| 日本在线观看网站| 91一区二区三区在线观看| 国产一区二区在线播放| 国产又爽又黄的视频| 欧美精品久久久久久| 日韩精品一区二区三区中文不卡| 欧美精品第三页| 国产色在线观看| 久久久亚洲精品一区二区三区| 91九色单男在线观看| 国产精品久久久久久人| 五月开心六月丁香综合色啪| 亚洲石原莉奈一区二区在线观看| 国产高潮视频在线观看| 黄色精品视频| 日韩欧美精品网址| 日本精品久久久久久久久久| 国产精品免费观看| 99视频精品在线| 成人免费在线看片| 国产一区二区小视频| 国产精品视频| 97在线观看视频| 精品少妇久久久久久888优播| 日韩精品免费一区二区三区| 国产亚洲a∨片在线观看| 五月天激情小说| 国产一区二区av在线| 欧美色精品天天在线观看视频| 欧美 国产 日本| 麻豆av在线免费观看| 亚洲激情网站免费观看| 樱花www成人免费视频| 精品久久av| 国产午夜一区二区三区| 欧美激情www| 一级香蕉视频在线观看| 成人午夜在线视频| 国产精品久久九九| 四虎永久在线观看| 丁香六月综合激情| 国产不卡一区二区三区在线观看| 懂色av一区二区三区四区| 久久99国产精品尤物| 成人观看高清在线观看免费| 国产精品主播一区二区| 麻豆精品一区二区| 成人免费在线视频网站| 国产视频第一页| 国内久久婷婷综合| 亚洲最大福利视频网| 蜜桃视频久久一区免费观看入口 | 77777少妇光屁股久久一区| 美女又爽又黄免费视频| 国产精品久久久久9999高清| 国产精品吹潮在线观看| 亚洲影视一区二区| 老司机精品视频一区二区三区| 91亚洲精品在线观看| 高清乱码毛片入口| 高清av一区二区| 久久精品欧美| 国产中文字幕在线| 亚洲日本在线天堂| 日本午夜激情视频| 中国色在线日|韩| 欧美日韩黄色一区二区| 欧美图片自拍偷拍| 麻豆视频一区| 日韩在线小视频| 精品无码久久久久| 午夜在线精品偷拍| 国产美女扒开尿口久久久| www.麻豆av| 成人av电影在线| 亚洲精品日韩在线观看| 超碰在线caoporn| 欧美性xxxxxxx| aaaaaaaa毛片| 婷婷精品在线| 久久综合九色九九| 波多野结衣电影在线播放| 另类小说一区二区三区| 精品国产一区二区三区麻豆免费观看完整版| 美女黄视频在线播放| 国产精品久久久久久久久久久免费看| 国产免费裸体视频| 性爽视频在线| 日韩精品一区二区在线| 任我爽在线视频| 野花国产精品入口| 亚洲一区中文字幕| 视频一区二区三区国产| 亚洲精品乱码久久久久| 777视频在线| 国产欧美三级电影| 欧美成人一区在线| 中文字幕永久免费视频| 成人国产精品免费网站| 8x8x华人在线| 伊人久久在线| 亚洲电影在线看| 欧美日韩免费做爰视频| 日韩激情一区二区| 久久一区二区精品| 二区三区四区高清视频在线观看| 91成人国产精品| 精品无码人妻一区| 午夜精品网站| 亚洲一区二区中文字幕| 国产特黄在线| 欧美性猛交xxxx免费看漫画| 四季av综合网站| 亚洲精品一区二区妖精| 91精品久久久久久久久久入口 | 成人激情五月天| 亚洲日本视频| 国产一区高清视频| 日本一级理论片在线大全| 91麻豆精品国产91久久久久久久久 | 久久密一区二区三区| 国产精品9999| 羞羞视频在线观看| 欧美日韩裸体免费视频| 欲求不满的岳中文字幕| 欧美在线首页| 国产精品白丝jk白祙| 黄色片免费在线观看| 欧美一区永久视频免费观看| 四虎精品免费视频| 蜜臀av一区二区在线观看| 手机在线观看国产精品| 波多野结衣亚洲| 尤物yw午夜国产精品视频| 国产精品sm调教免费专区| 久久亚洲精品小早川怜子| 国产无套粉嫩白浆内谢的出处| 美女福利一区| 日韩美女视频免费在线观看| 日av在线播放| 欧美丝袜第三区| 我要看黄色一级片| 九色|91porny| av免费观看大全| 日韩福利视频一区| 国产精品久久久久久久久久久久 | 国产精品免费视频一区二区 | 国产拍欧美日韩视频二区| 久久婷婷国产91天堂综合精品| 亚洲专区视频| 成人网址在线观看| 黄色成人影院| 国产丝袜高跟一区| 亚洲天堂手机在线| 日韩美女精品在线| 第四色在线视频| 亚洲在线视频| 资源网第一页久久久| 日本成人精品| 日韩av电影免费观看高清| 大胆av不用播放器在线播放 | 久久久91精品| 动漫成人在线| 欧美日韩国产影片| 国产精品第九页| 久久色视频免费观看| 欧洲美女亚洲激情| 尤物网精品视频| 亚洲开发第一视频在线播放| 国产一区二区三区精品在线观看| 日本免费在线精品| 日本在线观看视频| 亚洲精品网站在线播放gif| 国产婷婷一区二区三区久久| 亚洲成av人片观看| www.4hu95.com四虎| 国产91精品一区二区麻豆网站| 欧美日韩怡红院| 午夜欧美精品久久久久久久| 日韩欧美一区二区三区四区| 日韩精品视频在线看| 国产精品一区二区久久国产| 欧美人与禽性xxxxx杂性| 色诱女教师一区二区三区| 亚洲色图狠狠干| 欧美日韩国产精品自在自线| 黄色免费av网站| 亚洲欧美另类综合偷拍| 久久久免费看片| 成人免费视频视频| 亚洲无在线观看| 久久精品欧洲| 国内性生活视频| 亚洲美女视频| 伊人久久大香线蕉av一区| 米奇精品关键词| 动漫一区二区在线| 国产精品成人国产| 国产高清在线不卡| 黄色在线观看视频网站| 欧美成人网在线| 一级毛片视频在线| 中文字幕亚洲欧美| 一区二区三区不卡在线视频 | 99免费视频观看| 国精品一区二区三区| 波多野结衣三级在线| 伊人春色精品| 欧美自拍资源在线| 国产乱人伦精品一区| 99精品国产高清一区二区| 97精品国产99久久久久久免费| 国产99在线|中文| 久久影院午夜精品| 91国产在线精品| 久草在线新免费首页资源站| 九九热精品视频| 麻豆传媒视频在线观看免费| 久久久av网站| 欧美猛烈性xbxbxbxb| 久久久国产视频| 日p在线观看| 欧美成人精品激情在线观看| 日本精品一区二区三区在线播放| www亚洲欧美| 日韩毛片久久久| 欧美美女操人视频| 成年人黄视频在线观看| 欧美寡妇偷汉性猛交| 2024最新电影免费在线观看| 国模视频一区二区三区| 国产精品69xx| 国产精品av电影| 日韩国产网站| 亚洲自拍偷拍色片视频| 日韩免费成人| 久久久久综合一区二区三区| 久久亚洲道色| 亚洲国产精品毛片| 日韩精品午夜| 国产免费裸体视频| 99在线精品免费视频九九视| 亚洲第一中文av| 麻豆国产精品777777在线| 久久久久国产免费| 波多野洁衣一区| 永久免费观看片现看| 中文字幕在线不卡| 日韩人妻无码一区二区三区99 | 中文字幕人成一区| 亚洲综合色站| 丝袜老师办公室里做好紧好爽| 日本欧美加勒比视频| 国产老头和老头xxxx×| 成人污污视频在线观看| 成人国产精品久久久网站| 国产午夜精品一区二区三区嫩草| 欧美人妻一区二区| 欧美视频在线观看 亚洲欧| ,亚洲人成毛片在线播放| 日韩欧美资源站| 亚洲52av| 国内精品在线一区| 深夜成人福利| 国产高清在线精品一区二区三区| 欧美亚洲色图校园春色| 男女h黄动漫啪啪无遮挡软件| 亚洲国产免费| 欧美一级特黄aaa| 91在线观看免费视频| 国产va在线播放| 色狠狠综合天天综合综合| 丰满人妻一区二区三区免费| 亚洲欧洲视频在线| av激情在线| 国产日韩欧美日韩| 色天天色综合| 久久国产午夜精品理论片最新版本| 久久激情视频| 中文字字幕码一二三区| 亚洲桃色在线一区| 中文字幕在线观看你懂的| 亚洲成人精品视频在线观看| 91av资源在线| 国产福利视频一区| 精品资源在线| 国产夫妻自拍一区| 老司机精品视频导航| 午夜精产品一区二区在线观看的| 一区二区三区中文字幕在线观看| 亚洲中文字幕一区二区| 精品一区二区三区四区| 在线视频中文字幕第一页| 91精品在线看| 日韩大片在线观看| 污视频免费在线观看网站| av在线一区二区| 国产成人精品一区二三区| 欧美一级在线免费| 99se视频在线观看| 国产欧美精品va在线观看| 女厕嘘嘘一区二区在线播放| 天天摸天天碰天天添| 成人av电影在线网| 国产尤物在线视频| 欧美r级在线观看| 91精品久久久久久粉嫩| 91在线视频成人| 99精品电影| 国产伦精品一区二区三区妓女下载| 国产精品久久精品日日| 一本一道精品欧美中文字幕| 亚洲一区二区福利| 超碰高清在线| 欧美精品一区二区三区久久| 在线亚洲激情| 国产又黄又粗的视频| 91极品视觉盛宴| 韩国中文字幕2020精品| 国产免费久久av| 成人综合专区| 91av免费观看| 一区二区三区四区不卡视频| 少妇高潮一区二区三区99小说| 久久久久久久久久久av| a看欧美黄色女同性恋| 国产超级av在线| 久久色中文字幕| 国产乱人乱偷精品视频|