Re: [問題] XNA 透鏡效果以及一些其他繪圖問題?

看板GameDesign (遊戲設計)作者 (獃獃)時間15年前 (2010/04/21 21:30), 編輯推噓7(7026)
留言33則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《F23ko (純潔)》之銘言: : 但我不知道XNA有沒有現成的函式可以用 : 如果有現成的函式的話,希望望能獲得關鍵字 : 如果沒有的話,希望能提示該從哪個方向下手 : 另外,我在兩本書上看到的繪圖方式 : 2D方面都是貼圖上去 : 3D則是畫三角形拼出形狀,再貼圖上去 : 似乎沒看到直接畫出圖形的辦法 : 像是WindoesFrom的System.Drawing.FillEllipse()之類的..... : 換句話說,如果我想畫出圓形之類的簡單圖形,那就得畫出一堆頂點 : 再透過投影矩陣換算後才會出現在螢幕上 : 那,若我要製作一個選單,甚至HP條之類的東西 (就是幾個長方形的簡單圖形) : 該不會都要經過投影或是貼圖吧? : 有沒有2D狀況下可以直接在螢幕上繪圖的辦法? 1. 針對於RTT的部分... XNA有一個物件叫做RenderTarger2D,宣告完畢以後初始化它 EX: RenderTarget2D renderRT; ..... renderRT = new RenderTarget2D(GraphicsDevice, width, height, 1, Surface Format.Color); 第1-3的參數我就不說明了 第四個印象中沒記錯的好像是用來建立一些filter 圖層,至於SurfaceFormat這邊,可以參照XNA MSDN... 因為用途不同所需要的就不一樣~(這很重要~~!) 接下來就是在Draw的函數 GraphicsDevice.SetRenderTarget(0, renderRT); // 畫東西~~~ GraphicsDevice.SetRenderTarget(0, null); 如果你想要知道他畫了哪些東西在RT裡面,你可以用spriteBatch + RT所提供 的getTexture() 方法 EX: spriteBatch(); spriteBatch.Draw(renderRT.getTexture(), Vector.Zero, Color.White); spriteEnd(); 至於你有這些texture以後,你接下來做的事情就是影像處理... 你可以把他銳化或做一些而外效果 不過這邊就是HLSL的地方(建議用HLSL去做,你用CPU去算這個...-.-) http://www.neatware.com/lbstudio/web/hlsl.html 上面有些HLSL在影像處理的運用範例,不過網路上還有更多,可以GOO看看 RenderTarget蠻不錯用的像是可以用來做Deferred shading~ 至於你說的第二個問題 HP顯示,你有兩個做法 1. 自己畫Quad然後指定貼圖座標,就把他當作texture mapping一樣來做 (這方面可以好好研究) 2. 使用XNA的spriteBatch來畫... (2D這邊我應該不用講很多,不過spriteBatch.begin這邊有個參數要注意 就是第三個,我有點忘記了名字了,不過就是選擇要saveState) (原因是因為spriteBatch呼叫以後,他會去變動一些graphicsDevice的設定 ,網路上面有說用saveState的方式,執行效能會降低,建議手動調整) http://0rz.tw/pfpA8 可以參考看看 以上僅供參考 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.110.189.43

04/21 22:01, , 1F
感謝先 我需要花一點消化一下內容
04/21 22:01, 1F

04/21 22:05, , 2F
等等.... 看到一個關鍵字 XNA MSDN? 有這個東西喔?
04/21 22:05, 2F

04/21 22:05, , 3F
我知道微軟的msdn....
04/21 22:05, 3F

04/21 22:05, , 4F

04/21 22:06, , 5F
還在想說在上面都找不到xna的組件說明很麻煩....
04/21 22:06, 5F

04/21 22:08, , 6F
英文還OK的畫建議看英文的 XNA這邊我記得沒錯沒有中文版
04/21 22:08, 6F

04/21 22:24, , 7F
04/21 22:24, 7F

04/21 22:25, , 8F
直接把函式、物件名稱打進去,找不到這裡面的東西 @@
04/21 22:25, 8F

04/21 22:26, , 9F
我的英文很糟糕 還需要把快顯註解的xaml掏出來翻譯才能看的
04/21 22:26, 9F

04/21 22:27, , 10F
懂 = =
04/21 22:27, 10F

04/21 22:27, , 11F
http://ppt.cc/Oy1y 沒錯~沒有中文版~恨!
04/21 22:27, 11F

04/21 22:29, , 12F
=口=||| 我xna3.1還沒學熟熟 4.0就出了!?
04/21 22:29, 12F

04/21 22:30, , 13F
是上面的沒錯XD 不過有些東西 你還是要多看才去找函數
04/21 22:30, 13F

04/21 22:31, , 14F
這樣才比較好...
04/21 22:31, 14F

04/21 22:31, , 15F
4.0 Content比較麻煩... 不過4.0最大改變就是多了WP7
04/21 22:31, 15F

04/21 22:31, , 16F
所以現在可以做WP7上面的遊戲 (window phone 7)
04/21 22:31, 16F

04/22 11:42, , 17F
RenderTarget2D 借問一下第三個參數的意義是類似圖層嗎?
04/22 11:42, 17F

04/22 12:41, , 18F
我印象中0是說建mipmap的層次
04/22 12:41, 18F

04/24 15:35, , 19F
請問樓上XNA裡的InputSequencExample如何使用在3D遊戲裡
04/24 15:35, 19F

04/24 15:38, , 20F
我要使用double jump人物要跳起來程式碼是要加在哪個地方
04/24 15:38, 20F

04/24 15:41, , 21F
有沒有像惡魔獵人那種輸入方式可以實作的?或有甚麼演算法
04/24 15:41, 21F

04/24 17:26, , 22F
這部分我沒有設計過,不過直覺想的話,就是把他放在控制
04/24 17:26, 22F

04/24 17:26, , 23F
控制腳色操作的地方應該就可以了...(那個範例我沒特別去看)
04/24 17:26, 23F

04/24 17:27, , 24F
不過我有看到他的說明文件裡面有說要怎麼使用
04/24 17:27, 24F

04/24 17:57, , 25F
有關他的MOVE.CS裡 有一段game might add PerformMove()
04/24 17:57, 25F

04/24 17:57, , 26F
他的意思是甚麼?
04/24 17:57, 26F

04/24 19:32, , 27F
現在有個很重要的問題是 我並沒有trace這個CODE 所以這部分
04/24 19:32, 27F

04/24 19:33, , 28F
的問題我比較沒有辦法回答你,如果真的很急需要答案
04/24 19:33, 28F

04/24 19:33, , 29F
你可以到creator club問一下會比較快
04/24 19:33, 29F

04/24 19:34, , 30F
不過猜 剛剛看了一下game.cs 他裡面有一個move相關的初始化
04/24 19:34, 30F

04/24 19:35, , 31F
我再想會是他要你可以自己寫一個函數,來去做這些Move相關
04/24 19:35, 31F

04/24 19:35, , 32F
的事情!? 像是一些操作,會是設定等等 我目前推測是這樣
04/24 19:35, 32F

04/24 19:35, , 33F
他下面update那邊有很多檢查,所以我才這樣猜
04/24 19:35, 33F
文章代碼(AID): #1Bplto54 (GameDesign)
文章代碼(AID): #1Bplto54 (GameDesign)