原创 默認構造函數與成員初始化列表

1. 默認構造函數 C++ Annotated Reference Manual (ARM) [ELLIS90] 的 Section 12.1 告訴我們: 默認構造函數在需要的時候被編譯器產生出來 “在需要的時候是什麼時候?” “被誰

原创 3ds max 2014 啓動出現 error while registering plugins 怎麼修復

這個問題一般出現在重新安裝的 3dsmax2013 和 3dsmax2014 上, 這是由於卸載殘留的文件造成了插件註冊衝突導致的. 所以我們需要做的就是刪除這些殘留文件. 刪除 C 盤用戶目錄下的這兩個文件夾: C:\Users\*

原创 OpenGL的shader中紋理採樣的數量限制

在 OpenGL 的 shader 中我們使用類型爲 sampler2D 的 uniform 來進行紋理採樣. 但是 API 不會無限制的支持紋理, OpenGL 的紋理數量限制則由以下三個值指定: GL_MAX_VERTEX_TE

原创 GLSL位移運算符規則

位移操作符(<< 和 >>)   位移操作符的兩個操作數必須是有符號或無符號的整型或者整型數組. 一個操作數可以是有符號的, 而另一個是無符號的.   在所有的情況裏, 結果的類型都會與左操作符一致. 如果第一個操作數是標量, 那麼第

原创 Shader smoothstep使用

  ret smoothstep(a, b, x)可以用來生成0到1的平滑過渡. 返回值 條件 0 x < a < b 或 x > a > b 1 x < b < a 或 x > b > a 某個值 根據x在域

原创 卡通渲染技巧(三)——崩壞3卡通渲染實踐

  系列鏈接:   卡通渲染技巧(一)——漫反射部分   卡通渲染技巧(二)——高光部分、描邊   卡通渲染技巧(三)——崩壞3卡通渲染實踐   耳聽爲虛眼見爲實, 不實際看一下你永遠不知道技術分享裏吹了多少牛~ (其實是沒有實際

原创 卡通渲染技巧(二)——高光部分、描邊

  最近研究了一下卡通渲染的相關技巧,這裏將製作的PPT整理一下,既是分享,也當作一個備份。   系列鏈接:   卡通渲染技巧(一)——漫反射部分   卡通渲染技巧(二)——高光部分、描邊   卡通渲染技巧(三)——崩壞3卡通渲染實

原创 卡通渲染技巧(一)——漫反射部分

  最近研究了一下卡通渲染的相關技巧,這裏將製作的PPT整理一下,既是分享,也當作一個備份。   系列鏈接:   卡通渲染技巧(一)——漫反射部分   卡通渲染技巧(二)——高光部分、描邊   卡通渲染技巧(三)——崩壞3卡通渲染實

原创 線性代數(三) 矩陣乘法與線性變換複合

  考慮一個變換: 逆時針旋轉 90°, 再剪切一個單位, 變換後的 i⃗ i→ , j⃗ j→ 的矩陣是 [11−10][1−110] , 但是很明顯, 我們實際上進行了兩個動作, 我們通過直觀上的觀察得出的是最後的整體效應.   

原创 線性代數(二) 矩陣與線性變換

  線性變換: 變換其實就是函數的另一種說法, 他同樣是通過一個輸入, 得到一個輸出. 而在線性代數裏, 我們之所以使用 “變換” 而不是 “函數”, 是爲了暗示我們要用 “運動” 來思考這個問題.   線性變換的兩個性質 原點位置不變

原创 線性代數(一) 線性組合, 線性相關與空間的基

  先讓我們來考慮這個情況: 在 xy 座標系上, 我們選取了兩個向量 i⃗ i→ , j⃗ j→ , 他們分別是 x 軸和 y 軸的單位向量, 將 i⃗ i→ 拉伸 3 倍, 將 j⃗ j→ 反向拉伸 2 倍, 然後相加, 這樣我們

原创 法線貼圖原理

原文地址: 法線貼圖 法線貼圖 切線空間 手工計算切線和副切線 切線空間法線貼圖 複雜物體 最後一件事 附加資源   我們的場景中已經充滿了多邊形物體,其中每個都可能由成百上千平坦的三角形組成。我們以向三角形上附加紋理的方式

原创 DX9紋理半像素偏移-Directly Mapping Texels to Pixels

爲了便於理解, 我們通常會把像素抽象成下面的樣子 但是更正確的理解應該是這樣, 像素始終是一個點, 它位於格子的中心, 這個格子用來表示像素照亮的區域. 這時, 如果我們畫一個從 ( 0, 0 ) 到 ( 4, 4 ) 的矩形

原创 C++的delete與析構

class A {}; A* a = new A() delete a; a = null; // delete並不會改變指針a, 但是a指向的內存已經釋放, 通過賦空避免產生野指針. new實際上執行兩個過程: 1. ::operat

原创 關於宏##的使用注意一點

轉載自: 關於宏##的使用注意一點 在看《C語言高級編程》時,裏面有個關於宏##的題目: 1.已知#define A “menu” #define B “osd”, 若請使用宏A,B表示出字符串”menuosd” 答案1