原创 Camera的Near值對Z-Fighting問題的影響

起因 項目測試報BUG,貼花功能在離相機接近500米處開始閃爍 從閃爍這個表現看基本斷定是Z-Fighting問題,一開始認爲是貼花Shader的問題,但是貼花使用的是類似Projector的方式,這種方式在進行ZTest的時候實

原创 Shadow技術-起點

起因 項目的Shadow開始出現了問題,有2個BUG報到了我的身上 比較薄的Mesh出現了漏光(Light leaking)現象 Cube旋轉到一定角度,表面出現了“瑕疵”(Shadow Acne) 我開始意識到,確實需要一套

原创 C語言malloc,calloc,realloc,free內存分配函數學習筆記

內存分配 使用內存分配函數可以對內存進行分配、釋放等操作。內存分配函數一般返回的是void類型的指針,傳統上曾使用返回char類型的指針,因爲char類型只佔據1字節。而最新ANSI規定返回void類型指針,這樣可以指向任何類型,通常使用

原创 C++之枚舉類型探索

一、enum初識(作用) enum的全稱是enumeration意思是列舉,可以用一些符號表示一組屬性值,也就是將數字符號化,因爲數字表面看不出任何意義,可讀性很差。 例如,在貪吃蛇遊戲中表示地圖信息 enum MapInfo { GR

原创 函數調用過程&棧幀&調用約定

函數調用過程 Procedure 參數傳遞 考慮函數調用:func(1, 2) 需要把1和2這兩個參數進行傳遞,這裏的參數傳遞可以通過兩種方式: 1.參數入棧(內存) 2.參數傳遞到寄存器 大多數情況下,也是C\C++的默認形式是

原创 可變參數的實現原理

可變參數 參數個數可變 參數類型可變 原理概述 由於在函數調用時,參數通過棧進行傳遞(stdcall、cdecl)而且參數入棧時會按照順序依次入棧。 所以在被調用的函數內,知道了第一個參數的地址就可以根據類型獲得其他參數的地址

原创 彙編中有符號與無符號數以及CF,OF標誌位的區分

彙編中有符號與無符號數以及CF,OF標誌位的區分 一、 只有一個標準!   首先需要知道,計算機對數值的存儲採用補碼形式存儲,一來避免了+0和-0的尷尬,二來數值的加法和減法可以統一爲補碼的加法。   在彙編語言層面,定義變量的時候,沒

原创 回車(CR)與換行(LF), '\r'和'\n'的區別

一、疑惑   我們鍵盤上有一個按鍵,叫回車鍵(Enter),在本文編輯器中,我們寫完一行,按下回車鍵,光標會自動轉移到下一行的開頭,好像回車的功能就是如此。   我們在初始C語言時,使用printf函數換行時只需要使用\n轉移字符即

原创 關於3DsMax與Unity座標軸的若干問題詳解

關於3DsMax與Unity座標軸的若干問題詳解   網上有很多敘述關於3DsMax製作的模型導入到Unity3D時如何進行座標軸處理的方法,大部分只告訴你該如何做,至於爲什麼也沒寫。有的解釋了,但是解釋的完全是錯誤的。由於我之前解析過F

原创 從字符編碼的發展歷史理解ANSI、GB2312、Unicode、UTF8和UTF16區別

        在編程學習的深入後,不可避免的會遇到ANSI、GB2312、UTF8的編碼問題,如果不徹底瞭解他們的區別,都最終會造成一個問題--亂碼!例如文件打開亂碼,數據庫亂碼、網頁亂碼等等各種亂碼,這裏就通過字符編碼發展歷史的介紹來

原创 關於攻讀計算機研究生

  就我自己的理解,談談我對讀研和軟件學院的看法,不妥之處一笑了之即可。   如果你有實際開發工作經驗,感覺自己的水平和實力進入了一個高原期,迫切需要從理論上提高,那麼計算機學院是唯一選擇。因爲計算機學院才能讓你在理論上 更上一層樓。

原创 關於#pragma once編譯命令

在初學C和C++時,我經常在頭文件中使用#ifndef,#define,#endif定義個宏名防止頭文件被多次編譯,但是最近是用MFC時或者較新版的VS自動生成的頭文件中都會出現#pragma once這個命令。 pragma : 雜注,

原创 關於Lua的下載以及wlua、luac等文件的解釋

  之前學習過一小段時間的Lua,想把Lua集成在自己寫的一個小引擎中,但是由於找工作就一直耽誤了。現在工作基本穩定後,也需要深入瞭解一下Lua語言就從官方先下載Lua,結果下載過程很懵逼,下載下來的文件也沒ReadMe文件解釋都是什麼文