1. 程式人生 > >HTML5 Three.js 3D特效

HTML5 Three.js 3D特效

一、Three.js基本介紹

Three.js是JavaScript編寫的WebGL第三方庫。提供了非常多的3D顯示功能。Three.js 是一款執行在瀏覽器中的 3D 引擎,你可以用它建立各種三維場景,包括了攝影機、光影、材質等各種物件。你可以在它的主頁上看到許多精采的演示。不過,這款引擎目前還處在比較不成熟的開發階段,其不夠豐富的 API 以及匱乏的文件增加了初學者的學習難度(尤其是文件的匱乏,基本沒有中文的)Three.js的程式碼託管在github上面。

二、基本 Demo

三、Three.js編寫環境準備

2.已安裝IIS或Tomcat或Apache,這些例子必須掛到伺服器上才能正常執行,本地開啟會出現各種無法理解的問題。

四、動手編寫第一個 Demo

  1. <!doctype html>
  2. <htmllang="en">
  3. <head>
  4. <title>Template (Three.js)</title>
  5. <metacharset="utf-8">
  6. <metaname="viewport"
  7.     content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
  8. <linkrel=stylesheet
    href="css/base.css"/>
  9. </head>
  10. <body>
  11.     <scriptsrc="../js/Three.js"></script><!-- 這個是Three.js引擎的js -->
  12.     <scriptsrc="../js/Detector.js"></script>
  13.     <scriptsrc="../js/Stats.js"></script>
  14.     <scriptsrc="../js/OrbitControls.js"></script>
  15.     <scriptsrc="../js/THREEx.KeyboardState.js"></script>
  16.     <scriptsrc="../js/THREEx.FullScreen.js"></script>
  17.     <scriptsrc="../js/THREEx.WindowResize.js"></script>
  18.     <scriptsrc="../js/Texture.js"></script><!-- 一些js工具類,現在不深究 -->
  19.     <divid="ThreeJS"
  20.         style="z-index: 1; position: absolute; left: 0px; top: 0px"></div><!-- 這個div就是整個畫布 -->
  21.     <script>
  22.         //////////      
  23.         // MAIN //  
  24.         //////////  
  25.         // standard global variables  
  26.         var container, scene, camera, renderer, controls, stats; // 幾個變數代表的含義:容器、場景、攝像機(視角)、渲染器、控制裝置  
  27.         var keyboard = new THREEx.KeyboardState();  
  28.         var clock = new THREE.Clock();  
  29.         // custom global variables  
  30.         var cube;  
  31.         // initialization  
  32.         init();  
  33.         // animation loop / game loop  
  34.         animate();  
  35.         ///////////////  
  36.         // FUNCTIONS //  
  37.         ///////////////  
  38.         function init() { // 初始化  
  39.             ///////////  
  40.             // SCENE //  
  41.             ///////////  
  42.             scene = new THREE.Scene(); // 定義場景  
  43.             ////////////  
  44.             // CAMERA //  
  45.             ////////////  
  46.             // set the view size in pixels (custom or according to window size)  
  47.             // var SCREEN_WIDTH = 400SCREEN_HEIGHT = 300;  
  48.             var SCREEN_WIDTH = window.innerWidth, SCREEN_HEIGHT = window.innerHeight;  
  49.             // camera attributes  
  50.             var VIEW_ANGLE = 45ASPECT = SCREEN_WIDTH / SCREEN_HEIGHT, NEAR = 0.1, FAR = 20000;  
  51.             // set up camera  
  52.             camera = new THREE.PerspectiveCamera(VIEW_ANGLE, ASPECT, NEAR, FAR); // 定義視角  
  53.             // add the camera to the scene  
  54.             scene.add(camera);  
  55.             // the camera defaults to position (0,0,0)  
  56.             // so pull it back (z = 400) and up (y = 100) and set the angle towards the scene origin  
  57.             camera.position.set(-400, 150, 200); // 視角的位置  
  58.             camera.lookAt(scene.position);  
  59.             //////////////  
  60. 相關推薦

    HTML5 Three.js 3D特效

    一、Three.js基本介紹 Three.js是JavaScript編寫的WebGL第三方庫。提供了非常多的3D顯示功能。Three.js 是一款執行在瀏覽器中的 3D 引擎,你可以用

    前端工程師必會的技能-three.js 3D顯示功能

    描述 java 比較 three.js 插件 它的 指導 iis 攝影機 three.js是JavaScript編寫的WebGL第三方庫。提供了非常多的3D顯示功能。Three.js 是一款運行在瀏覽器中的 3D 引擎,你可以用它創建各種三維場景,包括了攝影機、光影、材質等

    three.js :3D】obj+mtl中大部分引數的含義解析(轉載)+自己補充的。

      轉載:obj + mtl 格式說明 另一個參考:convert_obj_three.py指令碼中,作者對一些引數的解析。【其實這篇轉載的內容後半部分和.py指令碼內容相對應】   OBJ(或 .OBJ)是一種開放的幾何定義檔案格式,最初由Wavefront T

    three.js : 3D】【load】threejs:3D模型匯入問題

      轉載:threejs:3D模型匯入問題 想想複雜的模型就交給3D設計師進行創作,而我們開發時只需引入模型檔案,是不是很美滋滋? 當然,如果你時間充裕,又對模型創作感興趣,那你確實可以花時間好好學習3D建模軟體的使用,這樣以後就可以自己建立所需模型,由自己匯出與匯入模型檔案。

    three.js : 3D】【loader】THREE.js中載入不同格式的模型及動畫(fbx、json和obj)

      轉載:THREE.js中載入不同格式的模型及動畫(fbx、json和obj) 注:本文章內容基於 Three.js 88dev 實現 作為剛接觸three.js的小萌新,勵志將自己開荒歷程記錄下來,希望對後來人有所幫助。 網上有很多demo,文件卻不多。每次都是,照搬別人的

    Three.js:3D模型】各種模型簡單介紹

        轉載:3D模型彙總----骨骼模型 3D模型的格式有很多,每個公司或軟體都可以自己定義自己的格式,或公開或不公開。如max,obj, x(微軟),fbx(被Autodesk收購),dae,md2(Quake2),ms3d(MilkShap3D),mdl(魔獸3

    Three.js:3D模型】常用建模軟體

      轉載:常見的3D列印檔案格式及常用的軟體 常用建模軟體之一:3Dsmax ;最常見的3D建模軟體,廣泛應用於廣告、影視、工業設計、建築設計、三維 動畫、多媒體制作、遊戲、輔助教學以及工程視覺化等領域。 支援開啟的格式有:max,drf,chr 支援儲存的格

    Three.js:3D模型】【轉載】OBJ檔案格式詳解

      轉載:3D中的OBJ檔案格式詳解 常見到的*.obj檔案有兩種:第一種是基於COFF(Common Object File Format)格式的OBJ檔案(也稱目標檔案),這種格式用於編譯應用程式;第二種是Alias|Wavefront公司推出的OBJ模型檔案。本文對第二種ob

    如何用webgl(three.js)搭建一個3D庫房-第一課

    com ima gn3 cool otto ttl 百度 core 4.6 今天我們來討論一下如何使用當前流行的WebGL技術搭建一個庫房並且實現實時有效交互 第一步、搭建一個3D庫房首先你得知道庫房長啥樣,我們先來瞅瞅庫房長啥樣(這是我在網上找的一個庫房圖片,百度了“庫房

    [微信小遊戲+Three.JS]給場景添加反射材質,實現3D水珠移動效果

    rac webgl round 圖片 nmap 微信小遊戲 ops In 繪制 前幾篇博客,我分別加好了3D移動盒子,也給場景加好了天空盒 這篇博客,就給場景再加一些效果 繪制的水珠的源代碼來自Three.JS在GitHub上的demo 小遊戲所用到的,修改過的JS庫

    three.js的wave特效(ivew官網首頁波浪特效實現)

    alt 使用 實現 功夫 inf 有效 訪問 顏色 index 查看效果請訪問:https://521lbx.github.io/Web3D/index.html公司的好幾個vue項目都是用ivew作為UI框架,所以ivew官網時不時就得逛一圈。每一次進首頁都會被首頁的波浪

    使用webgl(three.js)搭建一個3D建築,3D消防模擬,web版3D,bim管理系統——第四課

    function getBuildFloorData() { var models = [{ "show": true, "uuid": "", "name": "m4_dtWall_1", "objType": "cube2", "length": 1000, "width": 200, "hei

    使用THREE-js設計一款3D遊戲.md

    使用THREE.js製作一款3D遊戲 前言 這個學期選修了一門計算機圖形學的課程,課程選用的教材是基於WebGL。在此之前我對計算機圖形學是沒有任何概念的,只知道如果想要設計一款遊戲具有圖形學的知識是很重要的。我從來就有一個念想就是製作一款遊戲,因此我對這方面

    html5+css+js實現動畫特效,人物動畫

    // 動畫結束事件        var animationEnd = (function() {            var explorer = navigator.userAgent;            if (~explorer.indexOf('WebKit')) {            

    在微信小遊戲中使用three.js顯示3D圖形

    年前,微信釋出了一個重磅訊息:微信小程式的小遊戲功能,千呼萬喚始出來! 筆者之前從未接觸過微信小程式和WebGL的開發,但是卻一直有留意相關技術的發展,大概聽說原來微信小程式是不支援WebGL 3D技術的。這次藉著微信大力推廣小遊戲,看了一下API文件,發現小遊戲是可以使用

    初識3D圖形庫three.js

    Three.js是當下最流行的網頁3D渲染JS引擎,其主要是對WebGL程式設計以面向物件方式進行的封裝。 但由於Three.js英文文件還在開發中(本身就比較簡陋且有不少拷貝錯誤),而網路上Three.js方面的資料比較散亂且良莠不齊,部分中文文件翻譯低階錯誤頻出, 以

    Three.js 粒子系統動畫與發光材質——利用HTML5畫布繪製

    用Three.js做了個字型的粒子系統動畫,且`自定義性`極高,設定speedX=speedY=speedZ=1000的引數,截圖如下: Three的三大基本元件:相機,渲染器,場景在這就沒必要說了吧,百度有很多資料 接下來我們分幾個步驟來講解如何做出這個粒子動畫

    使用three.js開發3d地圖初探

    height 偏移量 圖標 positions ict 拍攝 獲取 失真 情況 three是圖形引擎,而web二維三維地圖都是基於圖形引擎的,所以拿three來開發需求簡單的三維地圖應用是沒什麽問題的。 1.坐標轉換 實際地理坐標為經度、緯度、高度,而three

    three.js模型搭建與地圖的3D視覺化參考資源

    -----------------------------------------------------------------------某些資源需自備梯子-------------------------------------------------------

    【H5 3D應用開發】 Three.js 播放json模型動畫並切換動畫(一)

    1、匯入Js模型 var loader = new THREE.JSONLoader(true); //JSONLoader構造傳入true,即showStatus=ture(顯示載入進度)