原创 LearnOpenGL - 渲染技巧

渲染技巧 ©shuan9999 1. 隱藏⾯消除((Hidden surface elimination) 先看如下圖的問題: 出現這種問題的原因在於我們將其背面也繪製出來了,正常來說我們是看不到也不需要看到背面的,所以先看

原创 LearnOpenGL - 專業名詞解析

專業名詞解析 ©shuan9999 1. Context (OpenGL上下文) 在應用程序調用任何OpenGL的指令之前,需要安排首先創建⼀一個OpenGL的上下⽂。這個上下文是⼀個⾮常龐大的狀態機,保存了OpenGL中的各

原创 LearnOpenGL - 向量、矩陣變換

向量、矩陣變換 ©shuan9999 1. 矩陣 OpenGL在渲染的時候是通過模型視圖矩陣和投影矩陣運算得到最終顯示的座標。 模型矩陣(Model): 將頂點從局部座標系轉換到世界座標系中; 視圖矩陣(View): 將頂

原创 OC-佈局Layout、CoreAnimation層面的動畫-CALayer&CAAnimation

CoreAnimation層面的動畫 CALayer層(顯示的基礎) UIView核心顯示功能就是依靠CALayer實現 UIView和CALayer的關係 1.UIView顯示能力是依賴底層的CALayer實現的,每一個U

原创 LearnOpenGL - 紋理

紋理 ©shuan9999 1. 瞭解紋理 簡而言之就是一張圖,把他附着在一個物體上,讓這個物體看起來更逼真。說白了,OpenGL不就是爲了渲染更真實的物體,讓虛擬的物體在屏幕上看起來更像一個真實的物件,但是前面說了,計算機繪

原创 LearnOpenGL - 渲染基礎

渲染基礎 ©shuan9999 1. OpenGL 渲染架構 架構圖: Client:客戶端,不同於我們理解的,此處指存儲在CPU存儲器上,在應用程序上執行或在主系統內存執行的代碼。譬如,我們寫的C\C++代碼。 Serve

原创 do-while循環、break、continue、數組

1、do~while循環: 一般用於菜單類程序 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autorelea

原创 OC-FUNDATION-NSDictionary&NSMutableDictionary&Block

1.NSDictionary 1.1由鍵值對組成,關鍵字不允許重複,值可以重複 1.2創建方法 NSDictionary *dict1 = [NSDictionary dictionaryWithObjectsAndKeys:@

原创 指針、進程空間、字符串

1、指針(續) 指針做函數參數,可以實現地址傳遞 //寫一個函數,將主函數中的變量a、b的值進行交換 void swap(int *x, int *y) { int temp = *x; *x = *y;

原创 OC-FUNDATION-NSDate&NSArray&NSMutableArray

1.NSDate 1.1時間對比(3種) NSDate *time1 = [NSDate dateWithTimeIntervalSinceNow:60*60*24]; NSDate *time2 = [NSDate dateWi

原创 OC-UIKit-UILabel&第一個程序

1.第一個IOS應用程序 上圖中: - 第三個參數 必須是UIApplication或其子類的名字,它代表着當前應用iPhone程序本身,這個參數會去讀info.plist文件獲取配置信息,如果該參數爲nil,則默認

原创 變量、數據類型

1、變量 變量是存儲數據的方法 數據類型:數據的分類 變量的聲明 變量的額命名規則: 只能由字母、數字和下劃線組成 首字母不能是數字,只能是字母或下劃線 大小寫敏感 int a;int A;這是兩個不同的變

原创 位運算、switch、循環結構

1、位運算(6種) 與:&,對應位上都是1時才爲1 3 011 & 5 101 001 或:|,對應位上有1就爲1 3 011 | 5

原创 數組、二維數組、函數

1、數組(續) 遍歷:逐個操作數組中的所有元素 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autorele

原创 字符串數組、預處理、多文件編程

1、字符串數組 多個字符串構成的集合 存儲方式 二維字符數組 字符指針數組 一次從鍵盤 輸入多個字符串是時,需要使用二維字符數組來接收 char str[5][5] = {"aaa","bbb",