黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

2.5D游戲開(kāi)發(fā)入門(mén)

系統(tǒng) 2005 0
通常的概念中,2D也就是所謂的二維,也就是平面圖形——即由X與Y坐標(biāo)構(gòu)成的圖形,其內(nèi)容由水平的X軸向與垂直的Y軸描繪確定,也就是由長(zhǎng)和高的形成所謂的二維平面。

而所謂3D,也稱之為三維。其圖形內(nèi)容除了有水平的X軸向與垂直的Y軸向外還有進(jìn)深的Z軸,故稱三維(XYZ),也就是由長(zhǎng)、寬、高三項(xiàng)要素形成所謂的三維立體。

2D與3D的主要區(qū)別在于,3D可以包含360度的信息,能從各個(gè)角度去表現(xiàn),構(gòu)成近似于現(xiàn)實(shí)空間的有質(zhì)感視角;而2D通常只能表現(xiàn)如表格、棋盤(pán)版的平面數(shù)據(jù)。 3D的立體感、光景效果要比二維平面圖形要好的多,因?yàn)樗牧Ⅲw、光線、陰影都是相對(duì)真實(shí)存在的,而2D顯然不具備這些優(yōu)勢(shì)。高擬真度、高自由度使得3D圖形大受歡迎。

所以漸漸的3D圖形開(kāi)始成為主流,充斥于電影、電視乃至游戲的各個(gè)角落。但是,由于3D技術(shù)實(shí)現(xiàn)的復(fù)雜性及對(duì)用戶環(huán)境的高要求,在所有領(lǐng)域都完全使用3D構(gòu)圖還并不現(xiàn)實(shí),由此引發(fā)了另一種圖形表現(xiàn)形式的出現(xiàn)——2.5D圖形。

所謂的2.5D,介乎于模真的3D與完全平面的2D之間。即模擬了3D的空間感,也兼具2D的靈動(dòng)簡(jiǎn)單,是一種“優(yōu)勢(shì)”的綜合體。就我個(gè)人認(rèn)為,誠(chéng)然2.5D最早的出現(xiàn)動(dòng)機(jī)只是為了2D到3D間過(guò)渡。但就其應(yīng)用而講,好的2.5D圖形即有3D的自由度與質(zhì)感,又能利用2D圖形將漫畫(huà)式人物塑造得惟妙惟肖,使其擁有純3D還無(wú)法做到的優(yōu)勢(shì)。因此2.5D在現(xiàn)在乃至未來(lái)的一段較長(zhǎng)時(shí)間里還會(huì)和3D并存,直到3D圖形的開(kāi)發(fā)效率及表現(xiàn)形式能徹底取代2.5D為止。

目前2.5D有兩種大方向的實(shí)現(xiàn)思路:
一、純2D模擬實(shí)現(xiàn),是由2D人物及2D模擬3D場(chǎng)景:比較常見(jiàn)的如《神奇?zhèn)髡f(shuō)》、《皇家騎士團(tuán)》、《超時(shí)空英雄傳說(shuō)》(PS:我從1開(kāi)始玩的,也由此和宇峻游戲結(jié)緣,雖然我不是游戲開(kāi)發(fā)人員,但遙想當(dāng)年宇峻科技剛開(kāi)張時(shí),李玉山一個(gè)人寫(xiě)出超時(shí)空英雄傳說(shuō)1所有程序代碼[雖然有部分是國(guó)外引擎改的]的功力我至今望塵莫及,其不愧為我等程序員之楷模)《魔力寶貝online》等,利用近大遠(yuǎn)小的視覺(jué)差模擬3D物體,令用戶產(chǎn)生在使用3D圖形的錯(cuò)覺(jué),通常為一個(gè)左或右偏的45度角,當(dāng)然也有偏55度或其他不同的角度可供選擇。

二、2D+3D實(shí)現(xiàn),是由3D場(chǎng)景加2D人物貼圖:比如《MU奇跡online》、《RO仙境傳說(shuō)online》(PS:在RO中我練的高INT創(chuàng)造者,愛(ài)好是城戰(zhàn)丟硫酸瓶毀對(duì)方裝備……),由于場(chǎng)景采用3D繪制,可以360度自由旋轉(zhuǎn)視角,真實(shí)感較強(qiáng)。純2D的角色與遮擋關(guān)系處理簡(jiǎn)單。相對(duì)于純3D來(lái)說(shuō)代碼量少且簡(jiǎn)單。美術(shù)方面工作量較少。比之純3D占用系統(tǒng)資源也更少。

平心而論,個(gè)人比較推崇2D+3D哪種類RO的表現(xiàn)方式,但由于吾輩是Java程序員且非游戲開(kāi)發(fā)人員并不熟悉Java3D的關(guān)系,只能采用Java2D來(lái)進(jìn)行演示。

在當(dāng)采用2D模擬3D實(shí)現(xiàn)2.5D(斜視角)時(shí),我認(rèn)為難點(diǎn)只有兩個(gè):

1.你要有美工幫你做好斜視的tile及role

2.你要轉(zhuǎn)換2D坐標(biāo)為2.5D坐標(biāo)

對(duì)于第一點(diǎn),神仙都愛(ài)莫能助……沒(méi)有美工就自己畫(huà)吧……

而對(duì)于第二點(diǎn),也就是斜視圖的坐標(biāo)變換,大多數(shù)人最直接的想法可能就是利用三角函數(shù)。是的,從某種意義上說(shuō),俯視角度與正斜視角度的變化就是三角函數(shù)的應(yīng)用,我也見(jiàn)過(guò)這類的45度斜視用例。但是,利用cos在Java中進(jìn)行三角函數(shù)的運(yùn)算,首先速度不能達(dá)到要求,其次圖像銜接度結(jié)果并不理想,結(jié)果可能令圖像有鋸齒狀偏移,所以我并不推薦使用。

對(duì)于如 類的菱形斜視圖像,我們可以利用一個(gè)簡(jiǎn)單的行列運(yùn)算獲得俯視角度地磚的繪制坐標(biāo)與斜視角度地磚的繪制坐標(biāo)的變換,公式如下:

X:2.5D圖形中X軸位置=(目標(biāo)圖像Width/2)*(2D圖形中X-2D圖形中Y)

Y:2.5D圖形中Y軸位置=(目標(biāo)圖像Height/2)*(2D圖形中X+2D圖形中Y)/2

當(dāng)然,這個(gè)公式并不是絕對(duì)的,尤其是在圖像數(shù)據(jù)有所偏移時(shí)。比如斜視角的地磚的寬與高的比例理論上應(yīng)該是2:1的關(guān)系,即如果高度是12的話,那么物體寬度就應(yīng)該是24,這個(gè)在數(shù)學(xué)上講和繪制地圖上的時(shí)候是沒(méi)有錯(cuò)的。但是問(wèn)題出現(xiàn)在美工可能做不出來(lái)這么一個(gè)圖(比如我,做了三個(gè)演示用圖基準(zhǔn)線全不一樣|||)。

因?yàn)槊拦ぴ诋?huà)圖的時(shí)候,肯定是要找一個(gè)基準(zhǔn)線(一般是水平方向上的中分線,因?yàn)檫@個(gè)方向是高度,而高度的比例是單位1),然后對(duì)稱的畫(huà)圖的,在開(kāi)始的時(shí)候問(wèn)題不會(huì)出現(xiàn),但是在畫(huà)到后面的時(shí)候就會(huì)發(fā)現(xiàn),無(wú)論如何都沒(méi)有辦法把另一個(gè)方向上的頂點(diǎn)畫(huà)出來(lái),總是沒(méi)有辦法在指定的范圍內(nèi)相交。這是因?yàn)橛?jì)算機(jī)的繪圖是按照像素點(diǎn)一個(gè)個(gè)繪制出來(lái)的,總是沒(méi)0.5個(gè)像素的時(shí)候,所以就出現(xiàn)了這個(gè)情況。于是,美工一般為了在指定的范圍劃出來(lái)一個(gè)菱形往往會(huì)畫(huà)花2個(gè)像素,也就是24*12的圖像很有可能會(huì)被畫(huà)成22*12……

此時(shí)這是我們就需要增或者減公式中的數(shù)值,令基準(zhǔn)線和圖形的實(shí)際保持一致,大家可以自己推導(dǎo)。

2.5D游戲開(kāi)發(fā)入門(mén)

演算后圖形表現(xiàn)應(yīng)如上圖所示。

2.5D游戲開(kāi)發(fā)入門(mén)
最后,再給大家上一張2.5D的實(shí)際效果圖。

2.5D游戲開(kāi)發(fā)入門(mén)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論