原创 【Unity Shader】unity海邊波浪效果的實現

效果圖如下(GIF因爲爲了把圖壓小所以刪掉了一些幀導致後面速度突然很快,實際效果並不是這樣~_~)PS.對於移動端,參考該文章:http://www.lsngo.net/2018/03/22/unity_seawave_vertexcol

原创 【Unity Shader】基於UGUI的水波倒影按鈕

先上效果: 首先說一下原理,這個shader實現的原理很簡單,通過使用兩個Pass,第一個Pass先正常渲染一遍UI,第二個Pass將UV座標y值上下翻轉,並將頂點座標偏移一定距離,再做扭曲操作。實現起來並不是很難,主要需要注意的就是U

原创 【Unity Shader】結合Projector和Rendertexture實現實時陰影

之前已在簡書上發過,這裏重新整理了一下,並附上實現代碼。 在unity中實現陰影的文章網上看了不少,包括常用的shadowMap,或直接投射Rendertexture等。比如unity中實現shadowmap,可以通過投射燈光空間的深度

原创 【Unity】多邊形雷達圖

多邊形雷達圖作爲遊戲中直觀體現角色各項數值的UI在許多遊戲中得到應用。目前關於unity中實現雷達圖的方式的教程有很多,這裏提供一種UGUI實現方案,主要有以下功能: 1.支持3邊以上的任意多邊形。 2.使用PropertyDrawe

原创 【圖形與渲染】相機平面鏡反射與斜裁剪矩陣(下)-斜裁剪矩陣

上一篇文章分析了平面鏡反射效果實現中,如何計算鏡像矩陣,我們已經可以得到鏡像相機並渲染出鏡像後的效果了,但是隻是純粹的鏡像會遇到以下問題: 如圖,當相機鏡像到C’位置後,其視錐體裁剪範圍是A+B,但實際應該位於反射貼圖中的區域僅僅只有A

原创 【圖形與渲染】相機平面鏡反射與斜裁剪矩陣(上)-鏡像矩陣

平面鏡反射是一種常用的實時渲染效果,且在許多遊戲中都可以見到它的身影。 通常遊戲中實現實時反射的方法有如下幾種: 1.使用cubemap或預先烘焙反射探針 2.平面鏡反射 3。屏幕空間反射(SSR) 三種方式進行比較,使用cubem

原创 【Unity】基於頂點色的海邊波浪效果(適用移動端)

之前曾做過一個unity中帶有海邊波浪衝刷的海水shader效果,並最初發布在CSDN上,原文鏈接:http://blog.csdn.net/mobilebbki399/article/details/50

原创 【Unity Shader】HSV和RGB互轉的shader實現

shader中顏色是以rgba表示,但是很多時候我們需要將其轉換成HSV顏色空間,或者將某個HSV顏色轉成RGB進行計算,比如一些後期效果需要調整畫面的色相(Hue),或者降低畫面的飽和度(Saturation),因此有必要在shader

原创 【Unity Shader】淺析Unity shader中RenderType的作用及_CameraDepthNormalsTexture

初學Unity ShaderLab的時候,一定有接觸過Unity Shader中的Tags標籤塊,比如: <span style="white-space:pre"> </span>"LightMode"="Vertex" "Queu

原创 【UnityShader】雙面透光布料材質

最近準備嘗試寫一個可以雙面接受陰影,並且有類似透光效果的布料shader,大致效果如下: 總的來說就是在布料逆光的時候可以看到背面物體的陰影 實現的原理其實非常簡單,unity本身已經提供了一整套陰影渲染的方案,我們所需要做

原创 線性渲染(Linear Rendering)和Gamma Correction

原文鏈接:http://blog.csdn.net/k46023/article/details/52489363 概述 線性渲染就是渲染場景所有輸入都是線性的。一般來說存在的紋理都是經過Gamma矯正了的,也就是說當紋理被採樣

原创 【Unity編輯器】使用反射和Attribute實現自定義右鍵菜單

unity提供了許多Attribute,比如[MenuItem]和[ContextMenu],一個是在編輯器菜單欄中添加菜單按鈕,一個是在檢視面板添加上下文菜單,由於其原理是基於C#的Attribute功能,我們自然可以想到,是否可以自己

原创 【Unity】四叉樹/八叉樹管理和動態加載場景物件

一、引言: 場景的組織與管理是3d遊戲開發中重要的一環,unity3d引擎中,只提供了最基本的場景組織,當我們加載場景時,會將場景中的物件及其依賴的資源全部加載出來,這對於較爲龐大的場景顯然是不合理的。可以考慮在進入場景時預先將可見範圍內

原创 【Unity編輯器】EditorWindow擴展-SubWindow

unity項目開發過程中會需要使用到unityeditor的相關api來擴展編輯器,其中EditorWindow可以方便的開發編輯器窗口,可以用來開發打包工具等。但當遇到複雜編輯器需求時,往往會糾結於編輯器的佈局而花掉一些時間。 最近嘗試

原创 【UnityShader】平面陰影

平面陰影作爲一種最簡單的實時陰影實現,儘管其僅能侷限於在完全平坦的地面的情況下使用,但由於其性能良好,在許多移動端手遊中仍然可以發揮較強的使用價值。 平面陰影的實現原理比較簡單,一般由如下幾個過程: 1.向shader傳入世間到平面的矩