歡迎來到培訓無憂網(wǎng)!

全國切換

咨詢熱線 400-001-5729

位置:培訓無憂網(wǎng) > 新聞資訊 > 青少兒培訓 > 少兒編程 >  怎樣用scratch實現(xiàn)3d

怎樣用scratch實現(xiàn)3d

來源:培訓無憂網(wǎng) 發(fā)布人:裴裴

2022-11-21 20:29:03|已瀏覽:1294次

怎樣用scratch實現(xiàn)3d

怎樣用scratch實現(xiàn)3d?相信大家應該都接觸過3D游戲和3D動畫,那些栩栩如生的畫面,其實它們并不是照片,而是通過編程讓計算機實時畫(計算)出來的。下面就來說說怎樣用scratch實現(xiàn)3d,大家千萬別錯過。

怎樣用scratch實現(xiàn)3d

基本思路

首先必須明確,3D這種東西不論那個平臺的實現(xiàn)(已有的3D引擎不算,我指自己編寫一個新的3D引擎)都是需要一定的數(shù)學基礎的。如果你沒有過多的去研究數(shù)學的話,我建議初二(含初二)以下的吧友不要闖3D領域,你會覺得無從下手。對于3D的研究最適合高中的吧友們,這時候不僅可以增長編程水平,而且對你的高中數(shù)學的學習也有極大的幫助。

對于3D的實現(xiàn),最重要的是思路,公式及圖像的形成原理大家都懂,我就不普及這種基礎知識了。實現(xiàn)的思路有很多,這篇文章我會給你們提供我實現(xiàn)3D時使用的思路,并不會教你們那里怎么做哪里怎么做(這樣我不如直接放源碼出來),只是給你們一個可行的探索方向。

接著我們來看下一個3D實現(xiàn)的基礎思路,我的這個思路很像計算機成像的思路:

用戶腳本-->運算-->成像;

是不是很類似于計算機成像;

二進制欲顯示圖像-->GPU處理-->顯示器發(fā)光.

沒錯,就是這樣的。也就是這是我們3D成像主攻的3大塊:用戶腳本、運算、成像。我看過我們吧友的一些3D實現(xiàn)方法,他們都犯了一個大錯:將這3大塊揉和在了一起。這是大錯特錯的,這三大塊應該是可以分別從你的腳本中獨立出來的(也就是3個角色)。 這樣有利于對腳本的維護,學過高級語言的吧友們就知道了,這樣“塊”狀的腳本是特別利于開發(fā)的。

對于這3大塊的開發(fā)順序應該是先開發(fā)運算、再成像、最后用戶腳本。為何這么說,拿計算機成像來看,目前的顯示器只支持GPU輸出的圖像,所以你得先研發(fā)GPU,然后GPU研發(fā)完了顯示器就順理成章了,接著在于CPU配對接受二進制,不然的話先給你二進制顯示不出來有何意義?對于3D實現(xiàn)同理。如果你直接開發(fā)成像你會發(fā)現(xiàn)你在不知不覺中也開發(fā)了運算,然而這樣開發(fā)出來的運算是和成像揉在一起的,違反了我們的開發(fā)原則。

第一階段

我們開發(fā)的第一階段運算是最難啃的,這個階段的開發(fā)猶如混水摸魚。你并不知道你的運算結(jié)果是什么,你看不到圖像,只知道運算而得到的數(shù)字。這要求對各類函數(shù)的確切掌握。那我們?nèi)绾慰焖龠M階呢?這個就很像矢量圖了,大家可以在此處參考矢量圖的實現(xiàn)。那我們要得到些什么數(shù)字?首先對于3D我們肯定得拋棄Scratch原有的二維坐標系統(tǒng)(xy),要自行再開發(fā)一個三位坐標系統(tǒng)(xyz),這個系統(tǒng)里要有長度單位、以及三維基本的三個軸。你3D里的每一個實體,都需要一個確切的坐標以及長寬高。這是第一步。第二步,你要確定一個視界與被觀察實體的相對位置及相對距離,注意實體的坐標是固定的,但是視界不是固定的,所以我們需要一個實時相對位置與相對距離算法,通過這個算法得知一些數(shù)據(jù)(至于是什么數(shù)據(jù),就看你數(shù)學學怎么樣了)以測算角度來成像。

例如p1(作圖抽象,請自行想象)里的正方體是實體,長方體是你的可視范圍,那么紅線延長出去的就是視界。接下來就要介入成像了。

第二階段

在成像方面,我比較推崇位圖式與矢量式結(jié)合的思路。矢量式描繪實體邊框,位圖式給一個面填色。矢量方面并不難,你只要運算出了關鍵數(shù)據(jù),一根線(剛開始不要介入曲線)的長度、大小、位置、角度自然都是可以通過公式測算的出來的。假設p2(作圖抽象,請自行想象)是我們看到的圖像,那么我們需要確定圖上幾個關鍵性的紅點把他們連起來,如何確定這些紅點可以參考紅線(我稱之基準線),確定這些在成像時沒有基準線就是運算要做的,這些基準線必須從視界的一個角出發(fā)其終點就是我們要的關鍵點。成像難在位圖式(建議大家不要馬上研究位圖式這一塊),你需要研究在Scratch里實現(xiàn)MS-Paint里油漆桶的方式,研究出了這個,也就沒什么難的了。但是實現(xiàn)個看似簡單的油漆桶并不簡單。

第三階段

啃完了兩塊大難關,接著用戶腳本的研究自然就特別簡單了。我們只要自定義函數(shù)后提交到運算創(chuàng)建實體,然后給成像模塊提供運算結(jié)果成像就完成了。

      注:尊重原創(chuàng)文章,轉(zhuǎn)載請注明出處和鏈接 http://elsolbar.com/news-id-70034.html 違者必究!部分文章來源于網(wǎng)絡由培訓無憂網(wǎng)編輯部人員整理發(fā)布,內(nèi)容真實性請自行核實或聯(lián)系我們,了解更多相關資訊請關注少兒編程頻道查看更多,了解相關專業(yè)課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050

留下你的信息,課程顧問老師會一對一幫助你規(guī)劃更適合你的專業(yè)課程!
  • 姓名:

  • 手機:

  • 地區(qū):

  • 想學什么:

  • 培訓無憂網(wǎng)
免 費 申 請 試 聽
提交申請,《培訓無憂網(wǎng)》課程顧問老師會一對一幫助你規(guī)劃更適合你的專業(yè)課程!