零基礎(chǔ)學(xué)習(xí)vr難嗎?
如何步入VR的圈子?如何從零基礎(chǔ)系統(tǒng)性的學(xué)習(xí)VR技術(shù)?此文,希望能夠幫助那些有相同疑惑的朋友
VR到底是什么。
VR是Virtual Reality的縮寫,中文的意思就是虛擬現(xiàn)實(shí)。
虛擬現(xiàn)實(shí)(VR)是近幾年來國(guó)內(nèi)外科技界關(guān)注的一個(gè)熱點(diǎn),其發(fā)展也是日新月異。簡(jiǎn)單地說,VR技術(shù)就是借助于計(jì)算機(jī)技術(shù)及硬件設(shè)備,實(shí)現(xiàn)一種人們可以通過視聽觸嗅等手段所感受到的虛擬幻境,故VR技術(shù)又稱幻境或靈境技術(shù)。
虛擬現(xiàn)實(shí)是一門集成了人與信息的科學(xué)。其核心是由一些三維的交互式計(jì)算機(jī)生成的環(huán)境組成。這些環(huán)境可以是真實(shí)的,也可以是想象的世界模型,其目的是通過人工合成的經(jīng)歷來表示信息。有了虛擬現(xiàn)實(shí)技術(shù),復(fù)雜或抽象系統(tǒng)的概念的形成可以通過將系統(tǒng)的各子部件以某種方式表示成具有確切含義的符號(hào)而成為可能。虛擬現(xiàn)實(shí)是融合了許多人的因素,且放大了它對(duì)個(gè)人感覺影響的工程。虛擬現(xiàn)實(shí)技術(shù)是建立在集成諸多學(xué)科如心理學(xué)、控制學(xué)、計(jì)算機(jī)圖形學(xué)、數(shù)據(jù)庫(kù)設(shè)計(jì)、實(shí)時(shí)分布系統(tǒng)、電子學(xué)、機(jī)器人及多媒體技術(shù)等之上的。
虛擬現(xiàn)實(shí)應(yīng)具有以下三個(gè)方面的含義。首先VR是通過計(jì)算機(jī)生成一個(gè)非常逼真的足以“迷惑”我們?nèi)祟愐曈X的虛幻的世界。這種“迷惑”是多方面的,我們不僅可以看到而且可以聽到、觸到及嗅到這個(gè)虛擬世界中所發(fā)生的一切。這種感覺是如此的真實(shí),以至于我們能全方位地浸沒在這個(gè)虛幻的世界中,這就是VR的首要功能,即浸沒感(Immersion)或臨場(chǎng)參與感。一般來說,虛擬系統(tǒng)的輸出設(shè)備應(yīng)盡可能面向使用者的感覺器官以保證良好的浸沒感,如頭盔式顯示器(HMD),它將使用者的聽覺視覺功能完全置于虛擬的環(huán)境之中并切斷了所有外界信息。使用者在虛擬的環(huán)境漫游可以通過跟蹤使用者的頭及身體的運(yùn)動(dòng)來完成,與虛擬物體的接觸通過戴在手上的傳感裝置檢測(cè)來實(shí)現(xiàn)。
虛擬現(xiàn)實(shí)與通常CAD系統(tǒng)所產(chǎn)生的模型是不一樣的,它不是一個(gè)靜態(tài)的世界,而是一個(gè)開放的環(huán)境,它可以對(duì)使用者的輸入(如手勢(shì),語(yǔ)言命令)作出響應(yīng)。比如你可以拿起一虛擬的火炬并打開其開關(guān),你一推操縱桿,仿佛可以在里面漫游,你甚至可以用虛擬的手感觸到虛擬物體存在,虛擬現(xiàn)實(shí)環(huán)境可以通過控制與監(jiān)視裝置影響或被使用者影響,這是VR的第二個(gè)特征,即交互性(Interaction)。
虛擬現(xiàn)實(shí)不僅僅是一個(gè)媒體,一個(gè)高級(jí)用戶界面,它是為解決工程、醫(yī)學(xué)、軍事等方面的問題而由開發(fā)者設(shè)計(jì)出來的應(yīng)用軟件,它以夸大的形式反映了設(shè)計(jì)者的思想,比如當(dāng)在蓋一座現(xiàn)代化的大廈之前,你首先要做的事是對(duì)這座大廈的結(jié)構(gòu)做細(xì)致的構(gòu)思,為了使之定量化,你還需設(shè)計(jì)許多圖紙,當(dāng)然這些圖紙只能內(nèi)行人讀懂。正如這些圖紙反映的是設(shè)計(jì)者的構(gòu)思,虛擬現(xiàn)實(shí)同樣反映的是某個(gè)設(shè)計(jì)者的思想,只不過它的功能遠(yuǎn)比那些呆板的圖紙生動(dòng),強(qiáng)大的多。所以國(guó)外有些學(xué)者稱VR為放大人們心靈的工具,或人工現(xiàn)實(shí)(artifical reality)。這是VR所具有的第三類特征,即思想性(Imagation)。
綜上所述,虛擬現(xiàn)實(shí)是人們可以通過視聽觸等信息通道感受到設(shè)計(jì)者思想的高級(jí)用戶界面。
《VR零基礎(chǔ)學(xué)習(xí)開發(fā)》學(xué)習(xí)大綱
注意:算法、計(jì)算機(jī)圖形學(xué)及GPU優(yōu)化和編程 的系統(tǒng)性學(xué)習(xí) 及 長(zhǎng)期的知識(shí)積累!
Unity引擎基礎(chǔ)概述
行業(yè)知識(shí)匯總(引擎概念、游戲發(fā)展、VR AR的應(yīng)用領(lǐng)域)
需求分析“概念”(對(duì)于提出的需求可以在邏輯上拆解成相應(yīng)步驟);
開發(fā)工具介紹:VistualStudio IDE、MonoDevelop IDE
C#腳本語(yǔ)言基礎(chǔ):數(shù)據(jù)類型、數(shù)學(xué)運(yùn)算、邏輯運(yùn)算三大模塊基礎(chǔ)。
C#腳本語(yǔ)言模塊化開發(fā)
過程性模塊化封裝:方法定義,理解形參、實(shí)參和返回值的意義;
面向?qū)ο竽K化封裝:類對(duì)象申請(qǐng)與使用、類對(duì)象繼承、虛擬化類使用、結(jié)構(gòu)體、枚舉、宏;
C#腳本語(yǔ)言面向?qū)ο箝_發(fā)
C#語(yǔ)言O(shè)OP技術(shù):類對(duì)象的創(chuàng)建和使用,理解構(gòu)造和析構(gòu)函數(shù)的申請(qǐng)與釋放過程、了解C#內(nèi)存申請(qǐng)釋放的處理過程;成員變量屬性化操作、純虛類繼承設(shè)計(jì)方案、類抽象性變化、使用泛型完成任意類型對(duì)象、深度復(fù)制和淺復(fù)制的操作、Object基類的使用、集合應(yīng)用;
高級(jí)數(shù)據(jù)結(jié)構(gòu)(C#版本)
類對(duì)象的抽象接口開發(fā)。
數(shù)據(jù)結(jié)構(gòu):?jiǎn)坞p向鏈表的構(gòu)建與實(shí)際應(yīng)用,棧的構(gòu)建與使用,隊(duì)列的構(gòu)建與使用;
排序算法:冒泡排序、快速排序、插入排序;
設(shè)計(jì)模型:?jiǎn)瘟小⒐S模式、有限狀態(tài)機(jī);
Unity3D C#腳本基礎(chǔ)API
Unity引擎的界面、組件等介紹; 3D坐標(biāo)系、向量概念介紹; MonoBehaviour類了解Unity引擎的運(yùn)作機(jī)制; 使用GameObject類構(gòu)建基本的游戲?qū)ο螅?學(xué)習(xí)Transform類使我們的3D世界動(dòng)起來; 學(xué)習(xí)Vector2/3/4類使用; 學(xué)習(xí)Mathf數(shù)學(xué)類。 學(xué)習(xí)Input輔助類掌握Unity引擎對(duì)硬件控制的反饋處理。 學(xué)習(xí)Time類使用;
基礎(chǔ)3D數(shù)學(xué)
向量數(shù)學(xué)計(jì)算、向量數(shù)學(xué)計(jì)算與幾何意義;
自定義設(shè)計(jì)向量計(jì)算類;
3X3矩陣線性計(jì)算、4X4齊次放射矩陣計(jì)算、矩陣求逆、四元數(shù)數(shù)學(xué)計(jì)算 ;
實(shí)現(xiàn)向量空間轉(zhuǎn)換計(jì)算器;
補(bǔ)充三角函數(shù)(Sin, Cos, Tan, ArcCos, ArcSin, ArcTan);
Unity3D組件編程與應(yīng)用
簡(jiǎn)易多線程:協(xié)同。
基礎(chǔ)物理系統(tǒng):剛體,碰撞體,射線。
攝像機(jī)組件與應(yīng)用坐標(biāo)系以及各個(gè)坐標(biāo)系的轉(zhuǎn)化。
燈光與音效組件的使用;
渲染組合套件和網(wǎng)格過濾組件控制。
2D物理組件;
資源系統(tǒng)和組件系統(tǒng):Resources,Component集合。
Unity3D動(dòng)畫與粒子系統(tǒng)
使用Animation舊動(dòng)畫系統(tǒng)實(shí)現(xiàn)簡(jiǎn)單的重復(fù)性運(yùn)動(dòng);
使用腳本實(shí)習(xí)舊動(dòng)畫系統(tǒng)實(shí)現(xiàn)狀態(tài)機(jī)控制;
MecAnim新動(dòng)畫系統(tǒng)的學(xué)習(xí)和使用;
2D Animator動(dòng)畫系統(tǒng)綜合應(yīng)用;
利用新動(dòng)畫系統(tǒng)采用圖示化的方式構(gòu)建動(dòng)作執(zhí)行方案;
使用代碼控制動(dòng)畫狀態(tài)機(jī)產(chǎn)生運(yùn)動(dòng)變化;
動(dòng)畫系統(tǒng)結(jié)合粒子系統(tǒng)的綜合應(yīng)用;
Unity導(dǎo)航系統(tǒng)、場(chǎng)景烘焙、遮擋剔除 烘培使用技巧;
Unity3D 文件系統(tǒng)與UI界面
C#文件內(nèi)存數(shù)據(jù)流開發(fā);
XML文件讀寫;
Jsone文件讀寫;
UGUI布局與適配;
使用NGUI插件實(shí)現(xiàn)游戲UI制作;
計(jì)算機(jī)基礎(chǔ)圖形學(xué)
渲染基礎(chǔ)概念理解(GPU工作流程簡(jiǎn)介);
學(xué)習(xí)Unity3D引擎的 ShaderLab語(yǔ)法;
Cg語(yǔ)言基礎(chǔ)學(xué)習(xí);
Cg語(yǔ)言與Unity3D引擎結(jié)合實(shí)現(xiàn)渲染;
基礎(chǔ)光照著色算法(Diffuse、Phong、BinPhong);
切線空間學(xué)習(xí)實(shí)現(xiàn)凹凸貼圖渲染;
引擎控制著色器代碼工作;
Unity3D高級(jí)開發(fā)
C++語(yǔ)言基礎(chǔ):指針,引用、函數(shù)和類定義
C++語(yǔ)言高級(jí)開發(fā):重載函數(shù)與運(yùn)算符、OOP技術(shù)、泛型、STL模板:
C++文件數(shù)據(jù)流操作;
C#調(diào)用C++動(dòng)態(tài)庫(kù);
Unity3D 高級(jí)網(wǎng)絡(luò)應(yīng)用開發(fā)
Linux、Windows、OSX多線程開發(fā);
線程安全學(xué)習(xí)與應(yīng)用;
網(wǎng)絡(luò)套接字(Socket)套接字基礎(chǔ)知識(shí)學(xué)習(xí);
套接字基礎(chǔ)通訊;
實(shí)現(xiàn)客戶端/服務(wù)端通訊;
實(shí)現(xiàn)Unity引擎調(diào)用C++套接字實(shí)現(xiàn)引擎網(wǎng)絡(luò)化;
Unity項(xiàng)目實(shí)訓(xùn)
學(xué)習(xí)Editor自定義組件;
學(xué)習(xí)EditorWindow工具化開發(fā),實(shí)現(xiàn)Unity引擎自定義工具制作;
實(shí)現(xiàn)地遍系統(tǒng)構(gòu)建;AssetsBundle打包與讀取。
Unity項(xiàng)目實(shí)訓(xùn)
程序構(gòu)建戰(zhàn)斗系統(tǒng)核心框架;策略類游戲分析。
實(shí)現(xiàn)戰(zhàn)斗系統(tǒng)中的控制系統(tǒng);策略類游戲?qū)崿F(xiàn)(地圖編輯系統(tǒng),角色技能系統(tǒng)、尋路系統(tǒng)、游戲數(shù)據(jù)讀寫,網(wǎng)絡(luò)通信);
實(shí)現(xiàn)戰(zhàn)斗系統(tǒng)中的尋路技術(shù);
實(shí)現(xiàn)戰(zhàn)斗系統(tǒng)中的NPC的人工智能控制;
Unity項(xiàng)目實(shí)訓(xùn)
優(yōu)化戰(zhàn)斗系統(tǒng);
對(duì)于計(jì)算密度高的算法向C++方式移植;
構(gòu)建MVVM視圖架構(gòu),添加UI視圖;
實(shí)現(xiàn)數(shù)據(jù)系統(tǒng),讓所有的角色擁有數(shù)指屬性;
Unity項(xiàng)目實(shí)訓(xùn)
優(yōu)化數(shù)值系統(tǒng);
優(yōu)化美術(shù)資源的內(nèi)存占用;
優(yōu)化程序的冗余算法;
優(yōu)化算法的精細(xì)度;
開始移植Android和IOS平臺(tái);
本人對(duì)學(xué)習(xí)VR開發(fā)及長(zhǎng)期知識(shí)積累的一些建議(僅供參考)。
(1)計(jì)算機(jī)圖形學(xué)技術(shù)的學(xué)習(xí)及相關(guān)知識(shí)儲(chǔ)備。
(2)虛擬現(xiàn)實(shí)系統(tǒng)的交互設(shè)備。eg:三維跟蹤、人體運(yùn)動(dòng)、手部姿勢(shì)、立體顯示、聲音輸出、觸覺力覺、三維掃描、三維打印等。
(3)虛擬現(xiàn)實(shí)系統(tǒng)的關(guān)鍵技術(shù):立體顯示、環(huán)境建模、三維虛擬聲音、人體自然交互以及相關(guān)開發(fā)軟件及輔助軟件的學(xué)習(xí)。
(4)Vizard虛擬顯示開發(fā)平臺(tái)的使用。
該平臺(tái)下模型瀏覽、流程控制、人物角色、窗口界面、媒體素材、物理引擎、交互設(shè)備、網(wǎng)絡(luò)控制等技術(shù)。
(5)Python語(yǔ)言的學(xué)習(xí)及上述技術(shù)的語(yǔ)言輔助。
注:VR的學(xué)習(xí),是長(zhǎng)久技術(shù)的積累,是知識(shí)的沉淀,并非一日之功,道阻且長(zhǎng)!