Re: [問題] XNA 透鏡效果以及一些其他繪圖問題?
※ 引述《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
04/21 22:05, 2F
→
04/21 22:05, , 3F
04/21 22:05, 3F
→
04/21 22:05, , 4F
04/21 22:05, 4F
→
04/21 22:06, , 5F
04/21 22:06, 5F
→
04/21 22:08, , 6F
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
04/21 22:26, 9F
→
04/21 22:27, , 10F
04/21 22:27, 10F
→
04/21 22:27, , 11F
04/21 22:27, 11F
推
04/21 22:29, , 12F
04/21 22:29, 12F
→
04/21 22:30, , 13F
04/21 22:30, 13F
→
04/21 22:31, , 14F
04/21 22:31, 14F
→
04/21 22:31, , 15F
04/21 22:31, 15F
→
04/21 22:31, , 16F
04/21 22:31, 16F
推
04/22 11:42, , 17F
04/22 11:42, 17F
→
04/22 12:41, , 18F
04/22 12:41, 18F
推
04/24 15:35, , 19F
04/24 15:35, 19F
→
04/24 15:38, , 20F
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
04/24 17:57, 25F
→
04/24 17:57, , 26F
04/24 17:57, 26F
→
04/24 19:32, , 27F
04/24 19:32, 27F
→
04/24 19:33, , 28F
04/24 19:33, 28F
→
04/24 19:33, , 29F
04/24 19:33, 29F
→
04/24 19:34, , 30F
04/24 19:34, 30F
→
04/24 19:35, , 31F
04/24 19:35, 31F
→
04/24 19:35, , 32F
04/24 19:35, 32F
→
04/24 19:35, , 33F
04/24 19:35, 33F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章
9
12