原创 《劍指Offer》剪繩子

題目描述 給你一根長度爲n的繩子,請把繩子剪成m段(m、n都是整數,n>1並且m>1),每段繩子的長度記爲k[0],k[1],...,k[m]。請問k[0]xk[1]x...xk[m]可能的最大乘積是多少?例如,當繩子的長度是8時,我們

原创 Direct3D(一)

創建頂點/緩存縮索引 HRESULT IDirect3DDevice9::CreateVertexBuffer( UINT Length, DWORD Usage, DWORD FVF, D3DPOOL Pool IDirect3DVe

原创 魔塔項目中的問題解決

地圖數據讀取:   void Map::init_map(){//初始化地圖 /*當前關卡*/ current_index = 0; /*位置地圖*/ memset(pos_map, 0, sizeof(pos_map));

原创 Unity 鼠標控制第一人稱攝像機視角

第一人稱攝像機的實現: 鼠標的移動時的水平距離將決定攝像機在水平方向上的旋轉角度,繞着旋轉的軸應該爲世界座標系下的y軸 垂直方向上的距離將使攝像機上下旋轉,這時候應該繞着自身座標系下的x軸旋轉 爲什麼不是繞着攝像機的x軸(transfo

原创 Unity最簡潔的對象池實現

當要使用的對象要被多次創建和銷燬時,採用對象池將不用的對象存起來而不是Destory,要用時再取出。 將兩個腳本掛在空物體上,將預製體拖入,點擊鼠標左鍵創建,右鍵回收。 /* 拿出時直接pop並加入此時管理的list並設爲可見 放

原创 3D相關的簡單數學知識

三維座標系:     向量的模:向量起點到終點的距離 FLOAT D3DXVec3Length( // Returns the magnitude. CONST D3DXVECTOR3* pV // The vector to comp

原创 Unity Shader------頂點函數和片元函數

頂點和片元函數實現一個白色的效果 Shader "Custom/Shader01"{ SubShader{ Pass{ CGPROGRAM // 聲明瞭頂點函數的函數名 #pragm

原创 Unity性能優化------DrawCall

什麼是Draw Call Draw Call就是CPU通過圖形庫(Directx/OpenGL)接口,命令GPU進行渲染操作 Draw Call是如何影響性能的 每一次繪製CPU都要調用DrawCall,調用前CPU要進行很多的準備

原创 Unity Shader學習------GPU渲染流水線詳解

GPU流水線即渲染流水線中的幾何階段和光柵化階段 綠色---完全可編程控制 黃色---可配置不可編程 藍色---GPU固定實現 GPU渲染流水線接受頂點數據作爲輸入。這些數據是應用階段加載到顯存中,再由DC指定的 幾何階段: 頂點

原创 Unity Shader學習------什麼是渲染流水線

工作任務:由一個三維場景出發,渲染一張二維圖像 計算機從一系列的頂點數據,紋理等信息出發,把這些信息最終轉換成一張人眼可見的圖像。由C、GPU共同完成 分爲下面三個階段:   應用階段(CPU):應用主導,開發者在此階段有絕對控制權

原创 Unity 實現血條跟隨

首先在Canvas中製作一個UI來做爲血條的父物體 (1)在Canvas下創建空物體改名爲DynamicPanel,將其鋪滿整個屏幕。在DynamicPanel創建空物體命名爲ItemHPRoot作爲所有血條的父物體,錨點定在左下角

原创 通過Unity Remote便捷進行Unity遊戲在手機端的測試

如果使用將遊戲打包爲APK再去手機上進行測試的方法會使得測試變得非常繁瑣,下面是使用Unity Remote進行測試的流程: 準備工作: (1)PC端安裝Android Studio且下載了Google USB Driver  (2

原创 Unity Shader------Blinn-Phong光照模型

之前實現的高光反射採用的是Blinn光照模型 Blinn光照模型: Specular=直射光 * pow(max (cosx,0),光照係數)x爲反射光和視野方向的夾角 更爲常用的是Blinn-Phong光照模型 Blinn-Phong

原创 設計模式------中介者模式

中介者模式(Mediator):用一箇中介對象來封裝一系列的對象交互。中介者使各對象不需要顯示地相互引用,從而使其耦合鬆散。 遊戲中的很多系統內部需要互相調用,如果歌系統之間直接調用,邏輯會變得很複雜。採用中介者模式,讓中介則負責調用

原创 Unity性能優化------渲染優化(GPU)之Occlusion culling(遮擋剔除)

Occlusion culling(遮擋剔除): 場景中的物體因被遮擋對於當前攝像機爲不可見時,可以不對其進行渲染。要注意與視錐體剔除進行區分,視錐體剔除是不渲染攝像機視錐範圍之外的物體,被其它物體遮擋但仍在視錐範圍之類的物體不會被剔除