原创 如何把Unity surf shader翻譯爲vert frag shader(懶人方法)

起因 因爲Unity URP環境下,surf shader是會失效的。 所以必須把surf shader 翻譯爲vert frag方式的shader。 因爲不太明白surf裏的Lighting 函數是怎麼生效的。查閱了一些資料,終於找到了

原创 Unity的URP的自定義後處理效果

概述 本來想寫這個很久了,但是一直都在忙別的。 最近項目也需要用到URP的後處理,但是不一定有想要的後處理效果。所以有些還是得自己寫。 但是URP的後處理和之前unity的後處理寫法完全不一樣了。原來的OnRenderImage、OnPr

原创 Unity只在一個面片上實現真實水體渲染

  上面是效果圖 概述 因爲前一版卡通水體制作人覺得效果一般,所以換成了《海島紀元》這種風格的水體。 這次我使用截幀工具,這次使用RenderDoc來截幀,效果還不錯。 本來打算復刻一版的,後來發現他們貌似不是用unity做的。代碼風格

原创 Unity只在一個面片上實現卡通水效果

概述 因爲項目要做廣大世界那種水效果。想過用類似九宮格之類的來實現。但是CPU壓力比較大。 也試過用通過世界座標採樣河流數據貼圖的方式,來不斷刷新跟隨攝像機的一個面片。 理論上是可以的,但實際上,會有抖動的效果,初步分析的原因是世界座標移

原创 復刻手遊《一人之下》的角色渲染

以上是復刻的效果圖,右邊爲unity裏的顯示。 因爲項目的需求,我需要研究一下某訊剛上的手遊《一人之下》的角色渲染。 概述 我用到了截幀工具Snapdragon Profiler來研究。文章提供了我自己寫的shader代碼(URP環境下

原创 如何在unity的URP下實現陰影

如果你之前是用buildin pipeline寫的shader,其中用了SHADOW_ATTENUATION宏的話,在URP下會失效。 由於官方文檔對自定義shader描述不多,所以自己只能去看URP內建的shader源碼去看實現方法。

原创 如何在Unity的URP下使用多pass(multi pass)

Unity的工程如果從內置pipeline工程升級到URP的,多pass的shader,可能第二個pass後都會失效。 如果查看URP的源代碼DrawObjectsPass.cs會發現 using System.Collections.

原创 Unity的URP項目開啓

Unity在2019.3後的版本開始把SRP更名爲URP。 此文章僅講述如何開啓URP項目。 開啓URP項目有兩種方法,一在創建項目中可以直接創建URP項目模板。 該模板帶有一個例子。可以直觀看到URP項目和一般項目的變化。 除了上述U

原创 Unity Gerstner Waves(模擬大海波浪)

之前學習了一些Gerstner Waves的知識,看了一些教程,但發現說的略不夠通俗,爲了便於自己理解,我自己來寫一個給自己的教程吧。 該教程會有三個步驟,一闡述原理,二給出源碼和源碼解釋,三提供demo下載。這樣一來就算文字看不懂, 也

原创 Unity項目UI圖片壓縮格式(UGUI)

UI製作時候使用的是Ps 8位 RGB通道的色彩。 但導出的是16位RGBA色彩的圖片。 壓縮格式都要求貼圖寬高爲2的N次冪,一般的精靈或貼圖很難切成2的N次冪。 但是打成圖集後寬高都是2的N次冪,所以打圖集的精靈可以放心使用壓縮格式。

原创 cocos creator 批量替換字體

如果你項目快做完了,或者做到了一半。UI突然叫你換字體,怎麼辦? 完了,有可能成百上千的預設啊。 不可能一個個手動替換吧。 接下來一個辦法可以讓你秒替換所有Label的字體。 大家都知道cocos creator是仿照Unity來做的。

原创 BMfont生成NGUI自定義中文字體

用美術字圖片和BMfont生成NGUI自定義中文字體 首選,打開BMfont進行軟件設置 接着設置字體的導出選項。   好了,配置完成,正式開始我們的生成字體工作: 1、把自己要打入的字體寫在txt文件裏: 2、將其轉成UTF-8編