原创 DirectX之二——Direct3D接口的初始化(Direct3D9)

DirectX之二——Direct3D接口的初始化(Direct3D9) Direct3D與接口的關係   Direct3D是一套底層API,可以被視爲應用程序與圖形硬件的交互的中介。具體結構圖如下圖所示: - 圖中HAL又稱硬件

原创 常用光照計算算法

此處根據GPU 編程與CG 語言之陽春白雪下里巴人這本書進行概括整理,對常用的一下算法收集到一塊; 常用的材質參數我會再進行整理 經典光照模型 漫反射 Lambert(蘭伯特)模型 對於僅暴露在環境光下的Lambert反射體 Ca

原创 爲什麼c++中重載流操作符要用友元函數

1.先來看看友元函數重載流操作符實例 class complex { public: friend ostream& operator << (ostream& cout, complex& par); private:

原创 Unity Shader ——人物穿越效果

Unity Shader ——人物穿越效果 旋轉收縮效果 如圖: 旋轉函數要求:中間旋轉程度大,外圍旋轉程度小。 扭曲函數的扭曲角度可採用高斯函數,也可採用(1-紋理座標到中心座標的距離)。 收縮函數要求:中間收縮程度大,外圍收縮

原创 DirectX之三——渲染管線與座標系(Direct3D9)

DirectX之三——渲染管線與座標系(Direct3D9) Direct3D渲染管線   使用Direct3D繪製模型是需要經過一個流程的,這個流程就被稱爲渲染管線或繪製流水線,渲染管線可分爲下列幾個流程: 另外需要注意的是:Di

原创 Unity Sahder 語法及注意事項

Unity Shader語法 Unity Sahder 包括固定着色器、表面着色器、可編程着色器(頂點着色器、表面着色器),這裏只討論可編程着色器,同時便於自己寫shader時查閱,防止忘記。 首先列出可編程着色器的基本框架(以一半透明

原创 DirectX之一——Windows編程基礎框架

DirectX——Windows編程基礎框架 前言   DirectX是由微軟公司創建的一系列專爲多媒體以及遊戲開發的應用程序接口,內部組件按照性質可分爲:顯示部分、聲音部分、輸入部分和網絡部分。其中Direct3D便屬於顯示部分中的3D

原创 Qt中信號存在重載情況下的選擇

以QComboBox中的currentIndexChanged信號爲例: 在Qt4中由於填寫信號時,需要填寫參數,所以不存在此問題。以下解決方法爲在Qt5中遇到使的解決方案。 解決方法1:connect(&object1, (void (

原创 騰訊遊戲客戶端開發面試

碎碎念————第一次騰訊遊戲客戶端開發面試   作爲一個本科、研究生專業都跟計算機不沾邊的學生,簡歷被通過篩選本來就應該是最好的結果了,然而自己還是抱着一點點的期望,萬一自己就通過了所有面試,進入騰訊實習了呢==。   實時證明期望終究

原创 使用Ray Matching實現雲彩渲染

  這裏先貼一個我實現的雲彩效果,使用Direct3D11,並在pixel shader中使用RayMatching方法實現的,感興趣的可以下載源代碼查看,繪製效果如下: 實現過程主要使用perlin noise來進行雲彩建模,然後根

原创 歐拉角與萬向節鎖

歐拉角與萬向節鎖之理論解析   翻了一大堆博客,很少有對萬向節鎖介紹清楚的。這裏談談我對萬向節鎖的通俗認識。 前提 我們這裏採用左手座標系(與Direct3D所使用的一樣)。左手座標系如下圖: 我們使用的點用行向量來表示(與Dire

原创 VS調試程序時,內存位置訪問無效

今天在運行D3D程序的時候,彈窗說程序無法運行,原因是內存位置訪問無效。 瞭解後得知,是調用第三方庫時出現的問題; 建議大家最好Debug程序時使用Debug版的第三方庫,發佈程序時調用Release版的第三方庫; Direct3D

原创 Cg內置函數

Cg常用內置函數 加粗的函數爲經常使用函數,標紅函數爲含有比較的函數 數學類 abs(x)——返回輸入參數的絕對值 acos(x)——反餘切函數,輸入參數範圍爲[-1,1],返回[0,π ]區間的角度值 all(x)——如果輸入參數均

原创 重載 覆蓋 隱藏

重載 覆蓋 隱藏的區別(函數名都相同) 重載:多個函數都存在,根據參數不同選擇調用函數 例如: //聲明(定義在此處省略了) int Add(int a, int b); //函數1 int Add(float a, float b