原创 圖形學 畫線算法

圖形學 畫線算法0.原始1.數值微分法(DDA )畫線法2.中點畫線法3.Bresenham 畫線法 0.原始 y=kx+by=kx+by=kx+b k=y1−y0x1−x0k=\frac{y_1-y_0}{x_1-x_0}k=x

原创 空間管理 詳解八叉樹

空間管理 詳解八叉樹前言1.數據結構選型1.1數組1.2樹型結構1.3哈希線性結構2.查詢2.1 Morton位置碼2.1.1 Morton碼計算2.1.2 位置與Morton碼的映射2.1.3 代碼中的運算2.1.3.1 按位分

原创 Unity3D編輯器擴展 子窗體顯示(GUILayout.Widnow)

Unity3D編輯器擴展——子窗體顯示(GUILayout.Widnow)1.使用場景2.具體代碼2.1 Monobehavior中調用2.2 EditorWindow中調用 1.使用場景 (1)在Unity中創建一個節點編輯器時

原创 Unity3D節點編輯器 樹狀節點佈局算法

Unity3D節點編輯器——樹狀節點佈局算法1.原始需求2.算法詳情2.1節點佈局算法2.2 點與點間的畫線算法3.核心代碼3.1 節點數據結構3.2 節點所需寬度計算方法3.3 節點之間畫線方法3.4 繪製節點方法 1.原始需

原创 FinalIK 中 CCDIK 算法解析

FinalIK 中 CCD IK 算法解析1.算法分析1.1 骨骼位置演算2.實現2.1 邏輯流2.2 核心代碼2.2.1 骨骼演算核心代碼 1.算法分析 CCD(Cyclic Coordinate Descent),中文翻譯是

原创 UnityShader開發之光照 - 簡單光照模型 - Phong反射光模型參數分析

1.概念 light color = emissive + ambient + diffuse + specluar emissive:自發光 ambient:環境光 diffuse :漫反射光 specluar:鏡面光   Phong模

原创 UnityShader開發之光照 - 光照相關的參數解釋

1.渲染路徑(Rendering Path) 設置Rendering Path ,目前都是Forward 2.配置Pass Tag          需要在Tags中配置 Tags { "LightMode" = "ForwardBa

原创 3D數學基礎 仿射變換 齊次座標空間

3D數學基礎 仿射變換 齊次座標1.定義1.1 線性變換1.2 仿射變換(平移變換)1.3 齊次座標空間 1.定義 1.1 線性變換 線性變換指的是可以保留矢量加和標量乘的變換。 滿足以下兩個條件 f(x)+f(y)=f(x+y

原创 UnityShader開發之透明與混合因子

1.渲染順序         對於開發具有透明效果的Shader而言,渲染順序十分重要,爲了解決渲染順序的問題,Unity提供了渲染隊列:          名稱 描述 Background 這個渲染隊列會在任何其他隊列之前被渲染,我們通

原创 3D數學基礎 座標空間及轉換

1.概念         在遊戲開發中,我們經常需要明確幾個座標空間:               (1)切線空間:通過法線貼圖中兩個像素之間的變化值求出的斜率得出的方向向量,即切線、副切線爲x、y軸,法線爲z              

原创 Unity戰鬥框架 動畫驅動的角色連擊系統

Unity戰鬥框架 動畫驅動的角色連擊系統功能實現技能信息類角色控制類 功能 利用動態添加動畫事件,驅動技能相關的釋放 點擊J進行攻擊釋放 每次點擊需要在下一段攻擊時纔會生效 實現 技能信息類 using System; u

原创 DrawCall漫談

感覺現在對於DrawCall的解釋十分專業,並不能很好的理解。 網上對於DrawCall的定義通常是CPU對GPU的一次調用。 但是一旦理解了一個本質,DrawCall就能被抽象成很通俗易懂的東西:圖形學的本質就是往屏幕上畫東西。

原创 Unity遊戲性能優化 MaterialPropertyBlock

Unity遊戲性能優化 MaterialPropertyBlock1.概念2.對比2.1 Material(Instance)2.2 SharedMaterial2.3 MaterialPropertyBlock3.使用3.1 M

原创 Unity問題記錄(三)UpdateScreenManagerAndInpit

Unity問題記錄(三)UpdateScreenManagerAndInpit佔用大量CPU問題解決方案 問題 空項目中 UpdateScreenManagerAndInpit在Profile中顯示佔用大量CPU 解決方案 1.把

原创 Unity問題記錄(二)自定義EditorWindow,當資源發生變化時,報Operation is not valid due to the current state of the object

Unity問題記錄(二)自定義EditorWindow,當資源發生變化時,報Operation is not valid due to the current state of the object1.問題2.原因3.解決方案 1