精華區beta Emulator 關於我們 聯絡資訊
※ 引述《wyvernlee (廢死不可!)》之銘言: : 3D NES emulator is witchcraft in your browser : http://www.pcgamer.com/3d-nes-emulator-is-witchcraft-in-your-browser-2/ : 這東西很特殊,簡單說是用 3D 的方式來模擬傳統的任天堂遊戲, : 有興趣的可以看一下影片: : https://www.youtube.com/watch?v=Ti2fwroyP2A
我發現這東西酷到應該另起一篇~這傢伙的想法真是天才 開發者想法很有意思~有些部分處理的滿厲害的,比如說他讓原本畫面上的 sprites(拼合動畫)做extruding(長出深度)以達到3D效果,但是程式怎麼判 斷那些要長那些不要長?又長出深度為何?馬力歐醫生的DEMO他特別轉角度 來做示範,除了秀一下3D的驚奇感覺外,其實我們可以看到不是每個物件都 延伸出一樣的高度,一開始的設定畫面就是如此: http://imgur.com/7iLXay6 綠方塊背景長出高度,但標題卻在綠背景長出後再接著長,這邊可以看 到它是用動畫拚合的單位再做判斷的依據,所以膠囊左右的圓弧沒長,可能 因為該格算在綠背景的動畫拼合裡面。 那黑色的部分一律判斷深度為0應該是沒問題的。也就是遇黑就凹。 讓我覺得好奇的是下方馬力歐醫生和病菌的部分,他怎麼知道單單這兩 隻要長成樂高人,而不是直接長深度而已?1 PLAYER或1990這些字就只有長 深度而已,如何讓程式逕自判斷?真是有一套。而我自己的猜想,可能是用 角色和背景的區別讓程式自己去判斷。 FC的限制是,如果是定義成腳色的拼合動畫,那垂直解析度(水平方向) 最多只能有32個像素,像DQ系列他用8*8來定義一個腳色,所以橫向最多就 是站四個人,有第五個人站在一起就開始閃爍,閃爍的意思就是,每一個時 間最多同時顯示四個8*8的單位,所以用大家輪流不顯示達成橫向站五個人 的目標;但定義成背景拼合則不在此列,所以後期很多遊戲出現超巨大角色 就是通通定義成背景角色,缺點是畫面不能再有背景,所以都是全黑的,洛 克人、松鼠大冒險都是這樣做的。 http://imgur.com/Hoq5aje 所以我猜也有可能用這樣的方式讓程式判斷誰該長深度,誰該長成樂高人。 或者用動畫拼合的FRAME數來決定。 不過以上方式誤判的機率都有,這也很符合目前模擬器所展示的結果。 //------------- 接下來這張比較: http://imgur.com/bmmjfUm 我們可以看到他每個物件長的高度其實不一樣,右上的DR.MARIO就長的沒那麼高 還有定義成角色的一樣是樂高人,最好玩的是這作者判斷了某種方式讓某種圖形 被顯示成管狀,如背景的紫圈圈,這功能超妙! http://imgur.com/iC3Pl4c 我一開始以為是連續的pattern會被定義成管狀,但看影片類似的部分,洛克人 的牆壁就沒有,魂斗羅的樹林踏台也沒有,但瑪莉三代的水管有變成管狀,這個 太妙了,正好符合水管的感覺!更棒的是,香菇從管子出來的感覺非常棒! http://imgur.com/8yo8DtH 除了瑪莉以外,惡魔城的地板也是管狀,超怪的~但惡魔城的樓梯長出就很立體! 雖然不知道他是怎樣定義的,但真的非常有趣! 最後該模擬器對於類似雜點或柱狀的判斷還有很大的想像空間~ http://imgur.com/1sYG6UB 由圖可以看見,對於像樹葉、木材、草叢等的判斷,有可能依照該像素的灰 階值來模擬,灰階值最亮(白,R:255 G:255 B:255)的高度,最暗(黑,R、G、B 值均為0),不過FC的灰階只有2^4-10(10個重複)6階而已,所以可能運算起來有6種 高度,關於色階看下圖的色盤會發現一堆重複: http://blog-imgs-36.fc2.com/y/o/j/yojouhankurashi/yychr.jpg
對於利用像素的灰階值來定義3D模型的深度(或高度)也早是個成熟的 作法了,從早期知名的3D地圖、地形軟體Bryce 3D開始,就是輸入一隨意 點陣圖,他依照各像素的灰階值建立一個地形: https://www.youtube.com/watch?v=9K7J4Vw96_0
其他像3D STUDIO MAX也有類似的方法叫Displacement map: https://www.youtube.com/watch?v=sNMYHATzNu8
還有MAYA、Softimage等等軟體也都使用這樣的概念,所以我才會做如此的猜測。 最後,柱子和樹木如果只有單純的長高度,但起來就像牆壁一樣,人類在理解 上總會覺得不自然,但由於牆、柱子、樹木,一個在平面上看起來都一樣的東 西,長成3D應該是圓柱狀抑或是塊狀都是人腦自己憑經驗決定的,對於2D圖來 講那不過是個矩陣圖形而已,所以最後這神奇的模擬器和那天才作者究竟要用 甚麼方法使得程式做更好更自然的表現實在令人期待啊~ 這大概是這陣子最令人興奮的模擬器新聞之一囉! 以上不負責任猜測和大家一起分享~TKS~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.166.72.179 ※ 文章網址: https://www.ptt.cc/bbs/Emulator/M.1457595468.A.D1D.html
rockmanx52: 你要不要乾脆把文章翻成英文直接跟對方討論啊XD 03/10 15:53
msun: 推 03/10 15:54
kashin: 快推免得被發現看不懂 03/10 16:05
erspicu: 以前在LAB有看過單一一張2D照片轉3D的 沒想到應用到 03/10 16:37
erspicu: 遊戲畫面效果還滿不錯的 03/10 16:37
twdvdr: 這樣的3D像是以前沒串接voodoo一代時 用2D顯示卡的模擬3D 03/10 16:38
erspicu: 剛好看到 參考 http://tinyurl.com/hwrhlj8 03/10 16:46
erspicu: 之前看到的是類似這DEMO http://tinyurl.com/2aqtqlu 03/10 16:53
qazxswptt: 所以林克冒險房子跟人疊在一起是什麼問題? 03/10 16:55
oginome: 感謝erspicu大提共的資訊~第一個是提共多視點來滿足3D的 03/10 17:03
oginome: 條件,等於是三視圖重新構建3D的意思,但這裡提共了六視 03/10 17:04
oginome: 圖,所以建構好的3D資料更標準。 03/10 17:05
oginome: 第二個由圖片建3D的原理是要利用兩張不同視點的圖片去求 03/10 17:06
oginome: 出圖片中物件的景深,原理和戴3D眼鏡很像,利用左右眼視 03/10 17:06
oginome: 點的不同可以得到正確的景深,所以理論上獨眼龍是沒有遠 03/10 17:07
oginome: 近感的,能分別出遠近完全是靠生活中的經驗來彌補。 03/10 17:07
oginome: 至於qazxswptt大的問題是,那房子應該往裡面長,而不是外 03/10 17:08
erspicu: 詳細不清楚 但是真的有單一一張圖轉3D化的喔 只是效果 03/10 17:09
oginome: 面,遊戲裡那些房子的景深值都是最低的(最下方的圖層)。 03/10 17:09
erspicu: 當然也有點假假的 03/10 17:10
oginome: 所以理論上房子應該往內長,而不是往外長(往林克方向長) 03/10 17:11
oginome: erspicu大說的是,那個MAKE 3D是這樣寫: 03/10 17:13
oginome: Make3D takes a two-dimensional image and creates a 03/10 17:13
oginome: a three-dimensional fly around model that includes 03/10 17:13
oginome: depth and a range views 03/10 17:14
oginome: 的確是可以由一張2D照片去構建3D的環狀模型,包含景深和 03/10 17:16
oginome: 視點,不過就數學定義來看,因為缺了Z值,所以理論上要 03/10 17:16
oginome: 假設一個預設景深,只要預設值別差實際值太遠,看起來也 03/10 17:17
oginome: 會滿真實的,那個DEMO的影片其實際滿不錯的~ 03/10 17:17
※ 編輯: oginome (218.166.72.179), 03/10/2016 17:17:54
erspicu: two-dimensional image 是指 2D影像不是兩張圖喔 另外 03/10 17:17
oginome: 是啊,two-dimensional只是指2D的意思,我是說要重建一個 03/10 17:18
erspicu: but unlike Microsoft’s more extensive product..... 03/10 17:19
oginome: 正確景深的3D圖,現實上至少要有兩張不同視點的圖才行 03/10 17:19
erspicu: that meshes many images together to create 3D models, 03/10 17:19
erspicu: , Make3D is a one image only service. 03/10 17:19
oginome: 當然,to create 3D model和to create correct 3D models 03/10 17:21
oginome: 還是不一樣的 03/10 17:21
oginome: 這模擬器的作者,目前就碰到這樣的問題啊~ 03/10 17:22
oginome: 但若光建造一個3D模型是可以假設一個Z值來套用,看起來也 03/10 17:23
oginome: 很立體,不過就是會出現景深會有任意假設的問題,不會是 03/10 17:23
oginome: 正確景深,然後遊戲中要做互動就免不了模型會互相穿過去 03/10 17:24
oginome: erspicu大有實作模擬器的寶貴經驗,或許e大可以和他交流 03/10 17:26
oginome: 也替我輩造福啊~大家都等不及這EMU完美問世呢~ 03/10 17:26
erspicu: 他做得東西比我好太多了 加上我英文也很普通 03/10 17:38
erspicu: 交流就算了吧 倒是希望作者以後能有更多說明之類的分享 03/10 17:38
erspicu: http://tructv.bitbucket.org/3dnes/ 我的FIRFOX跑不了 03/10 17:39
erspicu: 有人能順利執行的嗎 回家再用我家電腦跑看看 03/10 17:39
oginome: erspicu大,我家裡、公司兩台用FF都跑不了,不管是他的 03/10 17:42
oginome: ROM還是我自己上傳餵模擬器吃的,都沒辦法動,一片黑 03/10 17:42
oginome: erspicu大,就憑你的實作經驗在板眾間也是大腕級的板友呢 03/10 17:43
qazxswptt: 喔喔,感謝解答回家再研究看看 03/10 17:48
srwcc: push! 03/10 18:34
oginome: 不過他講微軟那段真的很酸... 03/10 19:01
qazxswptt: 看懂了 有些物件長的方向或切換方向的時間不對 03/10 20:13
qazxswptt: 才會造成疊在一起或閃爍的感覺 但已經是很新鮮了 03/10 20:13
popbitch: 感覺有好幾種3D模式可以切換 03/10 21:33