亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

【J2me3D系列學習文章之二】(立即模式)構造我

系統 2049 0


本文源地址: http://blog.csdn.net/xiaominghimi/archive/2010/12/07/6059650.aspx

Himi 原創, 轉載請注明! 謝謝。

為什么要先構造一個立方體的例子,其實 在論證概念時,立方體是一種極好的示例,當然它并不是復雜的 3D 設計的里程碑。

首先介紹構造一個3D立方體需要的步驟:(大概步驟哦)

第一:構造一個立方體的空間頂點

第二:構造一個立方體的各個面這里會用到三角形帶 ,詳細三角形帶的解釋看 @備注1

第三:構造一個攝像機

第四:綁定畫筆

第五:渲染.

那么下面先上代碼,都有注釋的,相信都能看懂!一些備注 下文有解釋!

模擬器截圖:

【J2me3D系列學習文章之二】(立即模式)構造我們3D世界中的第一個立方體!

備注1 : 這里要詳細講解下三角形帶,下面引用一張圖a,大家根據圖示來看這個頂點數組就應該明白了!

【J2me3D系列學習文章之二】(立即模式)構造我們3D世界中的第一個立方體!

大家看我們一開始定義的以三角帶形式的頂點數組

VERTEX_POSITIONS = {-1, -1, 1, 1, -1, 1, -1,1, 1, 1, 1, 1, -1, -1, -1, 1, -1, -1, -1, 1, -1, 1, 1, -1 };

我們以立方體的中心為{0, 0,0},那么如果 頂點 0 坐標就是( -1, -1, 1 ) 那么頂點2是不是 {-1,1,1}了,肯定是!

這里坐標的三個點其實就是代表就是X軸 Y軸 Z軸

也就是說兩個頂點0和頂點2這兩個頂點都有共同的-1, 1 ,而三角形帶形式就是這種重復利用重復點的形式來標識了所有的立方體的頂點!

備注2:這里咱們定義了一個偏差數組float pc[] = { 0, 0, 1 }; 為什么要以數組形式呢?其實你換種形式看看,其實是一個坐標點,

畢竟這是3D世界了 娃哈哈,其實意思就是 X軸+=0,Y軸+=0,Z軸+=1,當我們把這個偏差點傳入setPositions()這個方法里以后,

也就是代表將這個立方體中心點從{0,0,0}變成了{0,0,1}這一點,如果你運行此項目當按下左右按鍵對其立方體進行旋轉的時候,

發現立方體旋轉不是圍繞中心點進行的旋轉了,而是以{0,0,1}這一點做的旋轉;所以setPositions()其實也是對中心點的一個偏差處理。

有些同學該說為什么中心點就是{0,0,0}這一點呢,其實沒人規定而是咱們一開始定義立方體數組頂點的時候就自己在心里定下了一個規定,

以{0,0,0}為中心點了。如果你一開始定義VERTEX_POSITIONS 的時候不以{0,0,0}為中心點,而是以頂點0 坐標為中心點的話,

那么頂點2這時候的頂點坐標就成了{0,2,0} ,頂點3就成了{0,2,2}那么也能寫成一個三角形帶形式,但是要注意你后面的顏色數組和

定義三角形帶數組的時候也要以為頂點0為中心點來寫噢,這點別忘了,要一一對應!

備注3:camera.setPerspective(30, (float) this.getWidth()/ (float) this.getHeight(), 1, 1000);

第一個參數指的是透視的角度!不是高度!第二個指的是屏幕寬高比例,第三個是可視范圍min和max

其實這里常用還有一個方法是:camera.setParallel() 這兩個方法以及備注5在后續文章

《深度緩沖與投影》 的時候再向大家講解。

備注4:Transform transform = new Transform(); 這里咱們定義了一個變換對象,其實咱們一開始定義的成員變量里也有一個

private Transform tf;但是這里要注意,transform 是為了設置攝像機的時候同時設定了相機的位置而定義的,而tf則是對渲染立方體的

候做反轉、縮放、平移等操作定義的一個變化對象,等后續文章會對渲染時這個變化對象加以說明。一定要注意這兩個Transform 區別!

備注5:備注3已經說明了 ,等后續文章學習 《深度緩沖與投影》 的時候再向大家講解。

備注6:這里就是為了強調與備注4的Transform兩個對象的區別!

備注7:這里 調用 releaseTarget() 意思是終止渲染,大家會發現g3d.releaseTarget();這一句被寫在了try catch塊里,其實原因是因為

許多 Graphics3D 的方法都會拋出不可控異常,但絕大多數錯誤都是不可恢復的, 所以不管是否出現異常都要保證能終止渲染!

備注8:這里是對按鍵的操作,按鍵處理和對立方體操作(縮放、平移、旋轉)會在后續學習文章中詳細解釋的。

最后給大家放出源碼,希望大家一起相互交流。所有文章都是原創,很多地方可能存在錯誤希望大家多多指點。謝謝!

源碼下載地址:http://download.csdn.net/source/2887681

希望大家支持下,雖然源碼需要一資源分,我相信大家不會吝嗇吧,大半夜的給大家分享 ,娃哈哈~

(推薦大家訂閱本博客,因為咱的更新速度可是很快的~娃哈哈)

2010/12/7 02:30

【J2me3D系列學習文章之二】(立即模式)構造我們3D世界中的第一個立方體!


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美色黄毛片 | 亚洲欧美日韩国产vr在线观 | 九七97影院理论片手机在线观看 | 亚洲一区二区三区日本久久九 | 色优久久| 99久久精品免费 | 99热久久这里只有精品6国产网 | 精品伊人久久大香线蕉网站 | 午夜国产精品理论片久久影院 | 久久99国产综合精品 | 日韩精品一区在线观看 | 午夜私人影院在线观看 | 国产精品全国探花泡良大师 | 精品午夜久久影视 | 深夜福利剧场 | 久久久国产乱子伦精品 | 久久国产乱子伦精品免费一 | 色综合久久夜色精品国产 | 亚洲欧美日韩国产精品久久 | 成人影院午夜久久影院 | 国产深夜视频 | 欧美一级毛片免费高清的 | 日本精品久久久一区二区三区 | 天天干天天谢 | 免费观看成人羞羞视频网站观看 | 波多野结衣在线观看3人 | snh48欧洲大片在线观看 | 桃色视频在线观看 | 99在线精品日韩一区免费国产 | 色女人综合 | 免费福利影院 | 国产成人亚洲综合一区 | av天天看 | 黄色毛片毛茸茸 | 精品四虎免费观看国产高清午夜 | 五月天婷婷一区二区三区久久 | 国产精品第一页爽爽影院 | 成年黄页免费大全网站 | 深夜福利国产福利视频 | 国产精品视频一区二区三区不卡 | 欧美亚洲另类视频 |