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

iPhone 游戲開發(fā)教程 游戲引擎 (2)

移動(dòng)開發(fā) iOS 游戲開發(fā)
本文講解的是iPhone 游戲開發(fā)教程 游戲引擎,手機(jī)游戲開發(fā)已經(jīng)成為了一種主流趨勢(shì),先來看內(nèi)容詳解。

iPhone 游戲開發(fā)教程 游戲引擎 (2)是本文要介紹的內(nèi)容,繼續(xù)上一章的內(nèi)容繼續(xù)了解,想要深入了解的話,請(qǐng)關(guān)注末尾。本節(jié)主要介紹了游戲開發(fā)過程中用的一些元素,先來看內(nèi)容。

圖像引擎

圖像引擎負(fù)責(zé)視覺輸出,包括用戶借以交互的圖形用戶界面(GUI)對(duì)象,2D精靈動(dòng)畫或3D模型動(dòng)畫,并渲染的背景與特效。

雖然渲染2D與3D圖片的技術(shù)不盡相同,但他們都完成相同的一組圖形任務(wù),包括紋理和動(dòng)畫,它們的復(fù)雜度是遞增的。

紋理

對(duì)于顯示圖片,紋理是中心。2D時(shí),一個(gè)平面圖片是以像素為單位顯示在屏幕上,而在3D時(shí),一組三角行(或者被稱為網(wǎng)格)在數(shù)學(xué)魔法作用下產(chǎn)生平面圖片并顯示在屏幕上。這以后,一切都變得復(fù)雜。

像素、紋理與圖片

當(dāng)進(jìn)行屏幕描繪時(shí),基本單位是像素。每個(gè)像素都可以被分解為紅、綠、藍(lán)色值和我們馬上要討論的Alpha值。

紋理是一組關(guān)于渲染一組像素的數(shù)據(jù)。它包含每個(gè)像素的顏色數(shù)據(jù)。

圖片是一個(gè)更高層的概念,它并非與一組特殊的像素與紋理相關(guān)聯(lián)。當(dāng)一個(gè)人看到一組像素,他的大腦會(huì)將它們組合成一幅圖片,例如,如果像素以正確的順序表示,他可能會(huì)看到一幅長頸鹿的畫像。

保持以上這些概念獨(dú)立是非常必要的。紋理可能包含構(gòu)成長頸鹿圖片的像素:它可能包含足夠的像素來構(gòu)成一只長頸鹿的多幅圖片,或者僅包含構(gòu)成一幅長頸鹿圖片的像素。紋理本身只是一組像素的集合,它并不固有的知道它包含的是一幅圖片。

透明度

在任一刻,你的游戲會(huì)有幾個(gè)或者多個(gè)物體渲染在屏幕上,其中一些會(huì)與另外一個(gè)重疊。問題是,如何知道哪個(gè)物體的哪個(gè)像素應(yīng)該被渲染出來呢?

如果在最上層的紋理(在其他紋理之后被描畫)是完全不透明的,它的像素將會(huì)被顯示。但是,對(duì)于游戲物體,可能是非矩形圖形和部分透明物體,結(jié)果會(huì)導(dǎo)致兩種紋理的結(jié)合。

2D圖片中最常用的混合方式是完全透明。假如我們想畫一幅考拉(圖2-3)在爬在桉樹頂上(圖2-4)的的圖片??祭膱D片以矩形紋理的方式存儲(chǔ)在內(nèi)存中,但是我們不想畫出整個(gè)矩形,我們只想畫出考拉身體的像素。我們必須決定紋理中的每個(gè)像素是否應(yīng)該顯示。

iPhone 游戲開發(fā)教程 游戲引擎

圖2-3 考拉紋理

iPhone 游戲開發(fā)教程 游戲引擎

圖2-4 桉樹紋理

有些圖片系統(tǒng)通過添加一層遮罩來達(dá)到目的。想象我們?cè)趦?nèi)存中有一幅與考拉紋理大小一樣的另外一份紋理,它只包含白色和黑色的像素。遮罩中每個(gè)白色的像素代表考拉應(yīng)該被描畫出來的一個(gè)像素,遮罩中的黑色像素則代表不應(yīng)該被描畫的像素。如果當(dāng)我們將考拉描畫到屏幕上時(shí),有這樣的一個(gè)遮罩層,我們就可以檢查考拉對(duì)應(yīng)的像素并僅將需要描畫的像素表示出來。如果每個(gè)像素有允許有一組范圍值而不是二進(jìn)制黑/白值,那么它還可以支持部分透明(參見圖2-5)。

iPhone 游戲開發(fā)教程 游戲引擎

圖2-5 考拉遮罩紋理

紋理混合

為紋理而準(zhǔn)備的存儲(chǔ)容量大到足以支持每個(gè)像素都有一個(gè)范圍值。典型的是,一個(gè)Alpha值占一個(gè)字節(jié),即允許0-255之間的值。通過合并兩個(gè)像素可以表現(xiàn)出有趣的視覺效果。這種效果通常用于部分透明化,例如部分或完全看透物體(圖2-6)。

iPhone 游戲開發(fā)教程 游戲引擎

圖2-6 部分透明的綠色矩形

我們可以為每個(gè)像素來設(shè)定Alpha以決定它們?nèi)绾伪换旌?。如果一個(gè)像素允許的范圍值為0-25***lpha的范圍值也同樣應(yīng)當(dāng)為0-255。盡管紅色值為0表示當(dāng)描畫時(shí)不應(yīng)該使用紅色,但Alpha值為0則表示該像素根本不應(yīng)該被描畫。同樣,128的紅色值表示描畫時(shí)應(yīng)該使用***紅色值的一半,128的Alpha值表示當(dāng)與另外一個(gè)像素混合時(shí),應(yīng)該使用該像素的一半顏色值。

當(dāng)混合物體時(shí),正確的排列物體順序是非常重要的。因?yàn)槊總€(gè)混合渲染動(dòng)作都只會(huì)渲染源物體與目標(biāo)物體,首先被描畫的物體不會(huì)與后描畫的物體發(fā)生混合。盡管這在2D圖片中很容易控制,但是在3D圖片中變得非常復(fù)雜。

旋轉(zhuǎn)
  
在2D圖片中,大部分的紋理都會(huì)被直接渲染到目標(biāo)上而不需要旋轉(zhuǎn)。這是因?yàn)闃?biāo)準(zhǔn)硬件不具備旋轉(zhuǎn)功能,所以旋轉(zhuǎn)必須在軟件中計(jì)算完成。這是一個(gè)很慢的過程,而且容易產(chǎn)商低質(zhì)量的圖片。

通常,游戲開發(fā)人員會(huì)通過預(yù)先渲染好物體在各個(gè)方向的圖片,并當(dāng)物體某個(gè)方向上時(shí),為其在屏幕上描畫正確的圖片來避免以上問題的發(fā)生。

在3D圖片中,旋轉(zhuǎn)的計(jì)算方式與照明相同,是硬件渲染處理過程中的一部分。

剪貼

由于某些在后面章節(jié)解釋的原因,紋理的另外一個(gè)重要方面是剪貼。盡管我們目前的例子都是將源紋理直接描畫到目標(biāo)紋理上,但是經(jīng)常會(huì)出現(xiàn)的情況是,需要將部分源紋理描畫到目標(biāo)紋理的有限的一部分上。

例如,如果你的源紋理是在一個(gè)文件中含有多幅圖片,裁剪允許你僅將希望描畫的部分渲染出來。

剪貼同樣允許你進(jìn)行描畫限制到目標(biāo)紋理的一小部分上。它可以幫你通過紋理映射以3D方式渲染物體,將紋理鋪蓋到三角形組成的任意形狀的網(wǎng)格上。例如,一個(gè)紋理可以表示衣服或動(dòng)物的毛皮,而且當(dāng)3D角色穿著它移動(dòng)的死后可能產(chǎn)生褶皺。這時(shí)候的紋理通常被稱作皮膚。

小結(jié):iPhone 游戲開發(fā)教程 游戲引擎 (2)的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!想要深入了解游戲引擎的更多內(nèi)容,請(qǐng)參考以下幾篇文章:

iPhone 游戲開發(fā)教程 游戲引擎 (1)

iPhone 游戲開發(fā)教程 游戲引擎 (3)

iPhone 游戲開發(fā)教程 游戲引擎 (4)

iPhone 游戲開發(fā)教程 游戲引擎 (5)

iPhone 游戲開發(fā)教程 游戲引擎 (6)

責(zé)任編輯:zhaolei 來源: CSDN博客
相關(guān)推薦

2011-07-18 10:53:09

2011-07-18 12:29:10

2011-07-18 11:39:58

iPhone 游戲 引擎

2011-07-18 11:23:29

iPhone 游戲 動(dòng)畫

2011-07-21 16:48:19

iPhone 游戲

2011-07-27 13:57:36

iPhone 游戲 Cocos2d

2015-07-08 16:38:10

Cocos游戲引擎

2015-07-06 17:12:31

游戲開發(fā)引擎cocos游戲引擎

2015-07-06 17:36:17

Cocos游戲開發(fā)引擎

2011-08-04 17:01:16

iPhone游戲開發(fā) Cocos2d

2011-08-11 14:22:47

iPhone游戲Cocos2D

2011-12-12 13:58:11

TinyCoiOSAndroid

2013-04-19 01:42:02

2011-08-11 14:32:04

iPhone游戲Cocos2dActions

2013-12-04 16:07:27

Android游戲引擎libgdx教程

2012-03-06 10:56:32

HTML 5

2023-09-14 11:45:11

Godot項(xiàng)目游戲

2012-06-23 20:06:21

jQuery

2013-12-04 16:28:29

Android游戲引擎libgdx教程

2013-12-06 09:59:53

Android游戲引擎libgdx教程
點(diǎn)贊
收藏

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