原创 使用threejs實現輝光&大氣層效果

        最近想使用threejs實現輝光的特效,在查閱了一些資料之後,不僅實現了輝光的特效,還順帶實現了大氣層特效,在寫着色器的過程中有了一些理解~         首要目標:爲了實現輝光的着色器,我們把輝光分爲幾個步驟來實現:

原创 JS概念理解(四)——閉包

        閉包:            介紹閉包概念的文章很多了,這裏我們來談談閉包的使用場景:先設想這樣一個場景,一款FPS遊戲,玩家攜帶的子彈上限是一定的,這時爲了能在別的地方修改彈藥數量,就需要將彈藥數量定義爲一個全局變量,然

原创 使用threejs點雲秀出酷炫的模型效果

        前幾次用點雲去擺放實現圖片的效果,這次我決定用點雲實現一些模型效果。首先我們知道WebGL底層繪製方式有三種,分別是點繪製,三角形面繪製和線繪製。在threejs中我們可以方便地通過THREE.PointsMaterial

原创 對OpenGLES中的空間變換的理解

        今天翻看以前用Cocos2d-x寫的VR小遊戲的代碼,有一個模塊功能是判斷固定在屏幕中心的一條射線是否觸碰到了其他3D物體。這套代碼原來是從學長寫的遊戲中直接扒出來的,沒有細細研究,今天正好看到了,就藉此總結一下在Open

原创 JS概念理解(三)——執行上下文、作用域與自由變量

        執行上下文:         在我的理解中,執行上下文環境是在開始執行代碼之前,需要把所有用到的東西拿出來,有的直接賦值,有的先聲明出來,下面舉例說明; console.log(a); //undefined conso

原创 使用threejs+tweenjs實現圖片炸裂效果

   在之前使用threejs實現了點雲的效果,後來想了一下還可以通過着色器修改一塊板子上每個點的位置實現一些特殊的效果,比如讓一個板子炸開~之前點雲中點的運動軌跡都是自己計算出來的,後來發現tweenjs這個工具很好用,於是就應用到了這

原创 webgl——VAO

        上次說到了對VAO、VBO的理解,明白了使用VAO相比傳統模式在IO方面對加載性能的提升,今天我對其在WebGL上進行了實現。         在WebGL中由於很多API與OpenGLES大爲不同(一般常用的API大致是

原创 threejs中PC與手機操作的一些總結

        在一些簡單的webgl項目中,我們經常碰到的操作就是兩指縮放,滑動旋轉,這兩種操作經常要進行PC和手機的適配,這裏總結一下我踩了的一些小小的坑吧~         1.手機與PC獲取屏幕對應點擊位置的方法不同:      

原创 對OpenGLES中VBO與VAO的理解

        在OpenGLES中,VBO與VAO都是一個重要的概念,以前也在書上看到過這些概念,在有了自己的理解之後對其做以總結。         VBO的全稱 Vertex Buffer Object頂點緩衝區對象,這是在Openg

原创 JS概念理解(二)——this

        this在JS中經常出現並使用,其中this所取的值是當函數被調用執行時纔可以確定,定義時還無法確定。因爲this取值關乎執行上下文環境,每次調用時可能都不一樣,下面介紹this的幾種取值情況:        構造函數:

原创 ECMAScript6的使用心得

       ECMAScript6是比較新的JavaScript的標準,現在大部分瀏覽器也都可以兼容它的寫法,在我看來它讓JS這個弱類型語言有了像Java這種的“類”的概念,可以直接使用class進行初始化類,代碼編寫方式基本和java

原创 webgl--平面陰影效果

        在特定的3D場景中,陰影效果有時還是顯得十分重要的,在一般的3D引擎當中設置陰影可以直接通過對物體設置屬性來實現,十分的方便,這裏我們就用webgl來實現一下平面效果。         平面陰影是通過燈光將物體的陰影投射在

原创 對js函數作用域的進一步理解

        今天在寫一個threejs的項目時,遇到了一個問題,我需要批量初始化一批圖片作爲紋理圖放入數組中,然後再批量初始化一堆JSON模型,最後在把紋理圖貼到對應的模型上面,這裏就涉及到了幾個問題。         1.首先加載圖

原创 OpenGL ES着色器語言之內建函數

  OpenGL ES着色語言爲標量和向量操作定義了一套內建便利函數。有些內建函數可以用在多個類型的着色器中,有些是針對固定硬件的,所以這部分只能用在某個特定的着色器上。        內建函數基本上可以分爲一下三類: (1)它們使

原创 JS概念理解(一)——函數和對象、原型鏈、_proto_

        最近發現自己JS的基礎不太好,於是通過看書和大神的博客,通過自己的理解將一些難懂的概念在此總結:         1.函數和對象的關係:         在JavaScript中一切對象都是通過函數創建的,某些情況下的寫法