自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

開(kāi)始3D編程前需注意的十件事

開(kāi)發(fā) 項(xiàng)目管理
我確信當(dāng)你設(shè)法完成這10件事后,你可以說(shuō)你已經(jīng)了解了3D編程的基礎(chǔ)。我寫(xiě)篇文章是因?yàn)槲一撕芏鄷r(shí)間來(lái)完成它(指走了彎路了),所以我希望每個(gè)開(kāi)始接觸3D編程的人,能有一個(gè)小小的指南。我的建議是開(kāi)始做一個(gè)小小的游戲,并不斷的完善它。我覺(jué)得這是一個(gè)很好的方式,因?yàn)槿绻皇菃渭兊娜W(xué)習(xí)而看不到實(shí)際的效果的話,積極性不高。

開(kāi)始3D編程不是一件容易完成的任務(wù)。這里有很多新的東西可以發(fā)揮作用,從選擇語(yǔ)言到選擇合適的3d建模軟件。當(dāng)這10個(gè)事情完成時(shí),無(wú)論你選擇何種語(yǔ)言,使用何種建模軟件,你都可以認(rèn)為自己是這方面的半個(gè)專(zhuān)家了。

1:建立自己的圖形初始化函數(shù)

現(xiàn)在有種類(lèi)繁多的3d引擎和平臺(tái),所以這個(gè)任務(wù)一般交給它們來(lái)完成。我還記得以前的事情,你必須使用windows函數(shù)來(lái)初始化OpenGL,并管理窗口句柄和資源的加載。了解事情是如何進(jìn)行內(nèi)部管理的會(huì)讓你更深刻理解你現(xiàn)在在干什么,這是非常有用的。 我建議從NEHE的教程開(kāi)始。在教程的***章中包含了一個(gè)C語(yǔ)言編寫(xiě)的利用Windows API的圖形初始化函數(shù)。如果這里有很多東西需要你控制,你可以試試C++的相對(duì)的函數(shù),或者使用托管語(yǔ)言,像C#、Java或者Python。在網(wǎng)絡(luò)中有很多例子。

2:實(shí)現(xiàn)自己的相機(jī)

您可以從互聯(lián)網(wǎng)上復(fù)制和粘貼攝像頭的代碼,使用它并沒(méi)有大的問(wèn)題, 但它不是自己的相機(jī),直到你從頭開(kāi)始,充分了解一些概念,如向量處理,矩陣變化,角度轉(zhuǎn)換等等。你應(yīng)該先從一個(gè)FPS(***人稱射擊)的攝像頭開(kāi)始,它會(huì)給你需要的一切并讓你為接下來(lái)的學(xué)習(xí)做好準(zhǔn)備。 如果你以后想構(gòu)建自己的游戲,你不能使用它。我建議你閱讀這篇文章,以找出最適合您的需求類(lèi)型的相機(jī)。 

3:了解初級(jí)的3D概念

當(dāng)我開(kāi)始,我就開(kāi)始聽(tīng)到了很多新詞,如抗鋸齒,各向異性過(guò)濾,阻塞測(cè)試,Z-緩沖,alpha測(cè)試,著色器語(yǔ)言,凹凸貼圖等。如果你是一個(gè)玩家,也許你已經(jīng)在配置游戲的圖形設(shè)置時(shí)看過(guò)它們了。請(qǐng)確保你花費(fèi)一些時(shí)間來(lái)閱讀相關(guān)內(nèi)容,因?yàn)檫@將會(huì)給你一個(gè)3D編程的概述。

4:學(xué)習(xí)所有向量和矩陣的知識(shí)

這始終被低估。我強(qiáng)烈建議,為了正確地管理如相機(jī),光線追蹤,地形跟蹤的東西,你應(yīng)該知道關(guān)于這個(gè)的一切。當(dāng)然,你也需要學(xué)會(huì)最基礎(chǔ)的三角知識(shí)?,F(xiàn)在我才明白,如果我愿意花幾分鐘研究這個(gè)問(wèn)題,我的生活本應(yīng)該很輕松。

5:編寫(xiě)你自己的3D模型加載器

我建議從使用OBJ文件或STL文件開(kāi)始,因?yàn)樗麄冇靡粋€(gè)ASCII格式表示。之后你可以遷移到其他根偉復(fù)雜的格式上,比如3DS格式。有了這個(gè),你不僅將了解如何保存3D模型,你還會(huì)理解如何繪制三角形,然后你就會(huì)明白圖形引擎是如何繪制一切的。

6:成功實(shí)現(xiàn)自己的碰撞算法

一個(gè)事情是繪制世界,另外一個(gè)是管理其他中幾何形狀。在一個(gè)虛擬的3D世界中,這里沒(méi)有物理定律,所以你必須創(chuàng)建它們。如果你想要一個(gè)對(duì)象不能穿越墻壁,那么你必須在墻壁中創(chuàng)建一個(gè)幾何圖形并計(jì)算所有東西。有幾種方法來(lái)管理碰撞,我建議從在一個(gè)迷宮項(xiàng)目實(shí)現(xiàn)兩體碰撞開(kāi)始。試試這個(gè)鏈接,了解更多信息。

7:實(shí)現(xiàn)一個(gè)小的粒子引擎

當(dāng)我發(fā)現(xiàn)3D游戲中火焰、煙霧、照明和一些其他令人驚艷的效果是由粒子組成,而那些粒子是由相機(jī)面前的貼圖組成。你添加更多的粒子,效果看起來(lái)更加逼真,但是性能就有所損失了。我的***個(gè)粒子引擎是為火箭的煙霧制作的,而且我這樣做的時(shí)候還沒(méi)有不參看粒子引擎教程。后來(lái)我意識(shí)到了,我已經(jīng)改造了車(chē)輪。通過(guò)實(shí)現(xiàn)這些東西,你會(huì)明白一些諸如粒子發(fā)射器、粒子行為等想法。

8:了解一個(gè)3D建模軟件的基本知識(shí)

為了修改在你的應(yīng)用中使用的3D模型,你應(yīng)該知道基本的操作,比如平移,縮放,旋轉(zhuǎn),變形,導(dǎo)出為其他格式,并制作簡(jiǎn)單的模型。如果你不這樣做,你在制作***個(gè)游戲時(shí)遇到事事依賴別人的情況。我曾用過(guò)幾個(gè)建模軟件,我強(qiáng)烈推薦3D MAX或Maya。

9 :加載和播放動(dòng)畫(huà)

我做過(guò)的最困難的事情是加載并正確播放動(dòng)畫(huà)。我不得不對(duì)3D max的XAF文件進(jìn)行大量的逆向。我不得不學(xué)習(xí)骨骼層次,矩陣插值等東西。在***,看到自己的模型自行移動(dòng)是一件讓人相當(dāng)高興的事情。我建議從一個(gè)機(jī)器人動(dòng)畫(huà)開(kāi)始,因?yàn)閯?dòng)物模型什么的還需要一種名為蒙皮的技術(shù)。

#10 編寫(xiě)2D自定義GUI控件

當(dāng)我開(kāi)始使用XNA時(shí),由于XNA沒(méi)有實(shí)現(xiàn)窗體控件,我不得不構(gòu)建自己的圖形用戶接口。這也導(dǎo)致了兩件事: ***:我有了構(gòu)建自定義的GUI控件的能力。 第二:我懂得了一些重要的概念,如事件控制和事件捕捉。 這不是容易的事,我實(shí)現(xiàn)的最難的一個(gè)控件是listbox,但是一旦做出來(lái)了,就可以在很多地方使用了。

結(jié)論

在這個(gè)過(guò)程中你將會(huì)遇到很多問(wèn)題。你不得不花費(fèi)很多時(shí)間來(lái)使你的代碼可以正常工作,即使你很聰明。但是我可以告訴你的是,從一個(gè)程序猿的角度來(lái)說(shuō),沒(méi)有什么快樂(lè)比的上你看著你的代碼能順利的工作。我仍然不能忘記當(dāng)我***次編出OBJ模塊加載器時(shí)的喜悅。當(dāng)時(shí),我想要加載個(gè)人臉圖像,然后數(shù)個(gè)小時(shí)過(guò)去了,在凌晨3:50時(shí),突然一個(gè)非常詭異的人臉出現(xiàn)在我的屏幕,真是嚇?biāo)赖?,每?dāng)我想起這件事時(shí),就哈哈大笑..

我確信當(dāng)你設(shè)法完成這10件事后,你可以說(shuō)你已經(jīng)了解了3D編程的基礎(chǔ)。我寫(xiě)篇文章是因?yàn)槲一撕芏鄷r(shí)間來(lái)完成它(指走了彎路了),所以我希望每個(gè)開(kāi)始接觸3D編程的人,能有一個(gè)小小的指南。我的建議是開(kāi)始做一個(gè)小小的游戲,并不斷的完善它。我覺(jué)得這是一個(gè)很好的方式,因?yàn)槿绻皇菃渭兊娜W(xué)習(xí)而看不到實(shí)際的效果的話,積極性不高。一段時(shí)間之后,你會(huì)覺(jué)得游戲?qū)δ銇?lái)說(shuō)不一樣了,因?yàn)槟銜?huì)花很多時(shí)間來(lái)想它們是怎么解決你曾經(jīng)碰到的技術(shù)難點(diǎn)的。以上,我試圖使這篇文章結(jié)構(gòu)保持清晰和易懂,如果你喜歡,你可以訪問(wèn)我的 博客來(lái)獲取更多的這方面的內(nèi)容。

英文原文:Ten Things to Achieve When Starting 3D Programming

譯文鏈接:http://www.oschina.net/translate/ten-things-to-achieve-when-starting-3d-programming

責(zé)任編輯:林師授 來(lái)源: OSCHINA編譯
相關(guān)推薦

2025-02-10 08:59:54

2009-05-26 09:48:34

2014-08-12 09:22:05

程序員

2009-04-24 08:17:15

MySpaceCEO社交網(wǎng)站

2010-02-25 11:02:29

JavaScript

2016-12-26 11:34:23

2020-08-10 15:30:24

XDR網(wǎng)絡(luò)安全網(wǎng)絡(luò)威脅

2022-10-28 08:37:03

UbuntuLinux

2010-02-24 11:21:39

2021-07-27 17:34:04

物聯(lián)網(wǎng)設(shè)備物聯(lián)網(wǎng)IOT

2009-12-15 11:02:15

2009-06-26 09:36:06

2012-09-29 10:56:37

Google技術(shù)先驅(qū)

2023-05-18 15:50:59

Arch Linux命令

2013-01-21 09:58:41

vSphere網(wǎng)絡(luò)設(shè)置VMware vSph

2015-10-26 16:34:08

安裝Ubuntu 15.1Linux

2017-05-02 11:36:00

Java

2023-03-29 10:03:59

2025-04-10 07:00:00

GenAIChatGPT人工智能

2015-03-04 14:54:47

DockerIT管理基礎(chǔ)設(shè)施
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)