原创 three.js 源碼分析 之 BoxBufferGeometry

// BoxBufferGeometry /* BufferGeometry中封裝了所有的對外的接口,BoxBufferGeometry類只是填充BufferGeometry中的數據 */ function

原创 three.js 添加座標軸

class WebGLCoordinateAxis { constructor(renderer) { this.renderer = renderer; this.sceneAxis = new

原创 three.js bloom添加深度測試

/** * @author alteredq / http://alteredqualia.com/ * * Convolution shader * ported from o3d sample to WebGL / GLSL

原创 three.js 場景編輯器 源碼解析(二)

        three.js場景編輯器的一些初始配置信息存放在editor\js\Config.js下,當第一次加載的時候,編輯器會使用這個配置文件設置默認配置,並將這些配置信息存儲在瀏覽器的window.localStorage,當

原创 three.js 隨筆 之 shader中自定義裁切面clipping_planes解析

自定義裁切面在shader中有clipping_planes_pars_vertex、clipping_planes_vertex、clipping_planes_pars_fragment、clipping_planes_fragmen

原创 three.js 場景編輯器 源碼解析(一)

本文章是基於three.js的編輯器進行源碼解析,編輯器的版本是r103dev版本。 首先從感性認識上看看編輯器都包含哪些內容,讓我們從three.js-dev\editor\js\Strings.js開始。 Strings.js    

原创 three.js 場景編輯器 源碼解析(九)

本章介紹場景編輯中關於腳本相關的ui部分,相關的文件爲editor\js\Sidebar.Script.js,後續的三個章節會逐個介紹腳本相關的三個命令editor\ js\commands\AddScriptCommand.js、edi

原创 three.js 隨筆 之 WebGLObjects解析

 three.js場景中每個實體都會被WebGLObjects處理,這其中就有一個判斷不太引人注意,但是比較有用, if ( updateList[ buffergeometry.id ] !== frame )   //如果多個mesh

原创 three.js 場景編輯器 源碼解析(三)

    這一章大概講解一下three.js場景編輯器的ui構成,編輯器的ui的基本控件封裝在了editor\js\libs\ui.js中,這是一個ui的封裝類,如果想改變ui的樣式只要改變這一個文件基本就可以了。

原创 three.js 場景編輯器 源碼解析(十一)

本章講解腳本的編輯命令SetScriptValueCommand.js,其中包含的功能主要是老腳本的保存和新腳本的設置,execute函數的功能是將新的腳本作爲當前對象的腳本,undo函數處理的過程是將老的腳本重新替換爲當前對象的當前腳本

原创 three.js 場景編輯器 源碼解析(十八)

本章講解editor\js\Sidebar.Scene.js場景面板,場景面板展示了場景圖的節點關係,以及場景背景色、霧。 場景節點會根據Object3D的具體的類型顯示不同的信息,包括camera、scene、light、group、m

原创 three.js 源碼分析之ImageLoader

/**      * @author mrdoob / http://mrdoob.com/      */     這個類用於圖像的下載,包括數據存儲在url中的下載過程,需要注意的是跨域問題     //圖片下載器     funct

原创 three.js 源碼分析 之 LoadingManager

LoadingManager是一個下載過程中記錄、下載完成情況類,當three.js中的一些文件被下載時通過設置LoadingManager可以及時獲取當前文件列表中的下載進度 //正在加載的文件管理     function Loadi

原创 three.js 源碼分析之FileLoader

var loading = {};     //封裝文件下載類     function FileLoader( manager ) {         //使用默認的文件下載計數類         this.manager = ( ma

原创 three.js 場景編輯器 源碼解析(十九)

本章講解\editor\js\libs\app.js場景編輯完成之後的執行腳本,執行的過程包括 創建渲染器、加載場景編輯器中的場景、相機、解析各個場景節點、動態創建節點綁定的腳本。    //定義導出對象 var APP = {