原创 blend關於透明度的弊端和其alphatest的取捨

首先需要說明的是,計算機在渲染一個模型的時候,並不存在什麼混合模式可以選擇,這個會對我們開發遊戲的過程帶來一個麻煩。比如:如果一個模型有兩層,最終渲染出來結果是前面一層擋住了了後面一層,各位看官可能會覺得擋住就擋住啊,反正看不見,可是當前

原创 談一下unity3d的光照

其實學習shader的話,搞unity開發,就是《unity 3d shaderLab開發實戰詳解》。unity在opengl的基礎上又封裝了了一個表面着色器,本id其實並不怎麼喜歡寫表面着色器,因爲以前學習opengl的時候都沒有聽說過

原创 模擬實時光照下的陰影

在3d遊戲中,實時光照是一個特別大的消耗,不僅是因爲對於顏色的計算,還有消耗在繪製實時陰影,對於手機遊戲無疑是一個很大的開銷,但是吧,沒有實時光照的影子,就顯得很呆板,這裏就說明一下3d遊戲中繪製陰影的原理。 太陽光可以看做是一個平行光

原创 unity3d後期效果的重影

後期效果對於unity來說還是挺耗性能的,因爲是對整屏幕逐像素計算,c#代碼: using UnityEngine; public class _MotionBlur_1 : MonoBehaviour { public float

原创 shader中繪製一個心

很早以前做cocos2dx的時候就看到官方着色器代碼中已經有了一個現成的心型代碼,故而網上也是有很多基於這個代碼的,不過我覺得那個例子並不方便理解,所以就動手寫一個容易理解的心型,核心數學公式是利用了笛卡爾的心型公式r=a(1-sinθ)

原创 Angry Bots水面反射效果剖析

這兩天研究了一些unity官方的例子Angry Bots,發現其中的水面反射挺有趣,就算是作爲讀書筆記寫下來吧。 圖中顯示了地面的水相當於一塊模糊的鏡子一樣。 就先來說說其中的原理吧,生活中你站在一塊鏡子面前,看到的東西都是面向鏡子的那

原创 unity選擇關卡的跑馬燈效果

最近項目中需要做一個類似亂鬥西遊的選擇關卡的效果,如下所示 涉及到的知識點也就四元數在旋轉中的應用。 四元數公式:     q.w=cos(a/2)      q.x=RAix.x*sin(a/2)     q.y=RAix.

原创 u3d遊戲中顯示模型的網格

在網上找了一下,貌似這個實現的並不多,比較多的是一個付費的插件,最初的設想是單純使用着色器就實現的,折騰了一段時間,還是妥協了,用了c#,嗯,先上效果圖: 先解釋一下原理吧,後面補全代碼。 unity開放了opengl的圖形接口給我們,

原创 unity3d創建一個跟隨人物的血條

在遊戲的戰鬥中經常需要使用到一個能夠跟隨人物位置變化而變化的血條,由於項目用到,就動手寫了一個,作爲鞏固一下里面需要用到的座標變換的知識。 我們項目中ui層使用的照相機跟場景中的照相機是獨立的,所以這個例子中需要兩個照相機,一個用來顯示血

原创 關於dll注入的hook

LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam){Output

原创 反射矩陣的推導

前幾天寫了一篇unity官方例子的鏡面反射的博文(鏈接:http://blog.csdn.net/lj820348789/article/details/48139841),其中的攝像機鏡面矩陣只是提示了官方代碼的位置,對於反射矩陣,已經

原创 萬向節鎖的理解

今天看了一下萬向節鎖,覺得挺有意思,假設旋轉使用歐拉角,那麼當繞着y軸旋轉90度的時候,會出現z軸與原來的x軸重合,那麼(x, 90, z)則可以表

原创 關於cocos2dx開發中的圖片資源的一些小技巧

有一定工作經驗的遊戲開發者都知道遊戲運行中內存佔用最大的莫過於圖片資源,所以關於圖片資源的管理需要有一定的把握,一般開發中使用的格式爲png格式,因爲這種格式是全綵色,然而jpg是不支持透明度的,而且png的壓縮率比較高,這樣有一個好處就

原创 unity使用texturepack更新圖片時圖片錯位的解決

texturepack想必大家都很熟悉,這個工具可以講許多張散圖合併成一張大圖,同時生成一個plist文件,該plist文件記錄了原先散圖所在生成的大圖中的座標以及大小什麼的,這個工具在cocos2d-x上是很方便的。而在unity上呢?

原创 3d遊戲中劇情開啓扭轉鏡頭的實現

很多3d遊戲中在玩家與npc發生對話時候會有一個扭轉鏡頭的動畫,其實實現起來並不是很難,只是略微涉及向量的點積和叉積,先上代碼吧,這是在unity中運行的 using UnityEngine; using System.Collectio