• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            3D FPS

            1234567890

              C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              57 Posts :: 2 Stories :: 57 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(10)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            版權歸 FK .ctd FK_jims

            0.3d fps (第一人稱射擊游戲) 

            簡述:

            當今游戲業的發展最為風光獨好的莫過于MMORPG(大型多人在線游戲了),這類游戲往往投入巨大,然而收益也是非常巨大。最好的例子就是當今最為流行的網游,暴雪公司出品的魔獸世界,一個巨大的4維世界:3D空間+時間維度。而這些游戲的前面卻是現在不起眼的單機3D FPS游戲。(從編程角度看)。 

            3D FPS起源跟圖形處理芯片有莫大的關系:ID soft公司的John kamark起用一篇60年代的數學論文架構一個BSP樹的3D視圖加速程序在PC機上運行3D視角圖形開始成行3D射擊游戲風氣。經歷到現在,3D FPS游戲已經是一個相對成熟的制作產業。代表作有孤島危機,

            使命召喚4,使用成熟的3D game engine制作,效果非常逼真。 

            而現代一個普通3D FPS 游戲的制作基本上是使用成熟的3D game engine制作的了。3D ga me engine目前市場上有好多,各種各樣,開源,免費,收費都有,收費的有高價的也有低價的,相差也比較遠。目前出名的有unreal game engine && ID Tech game engine 當然游戲還要其他策劃,美工,劇本的非程序員角色。 

            原理上game engine就是3D graphics + physics + audio + input + script (圖形+物理+聲音+輸入+腳本)5大組件組成, 下面我將一個一個講解下,并尋找如何組合它們的方法: 
             

            1.3D 視圖渲染世界: 

            概述:游戲的圖形當然的用圖形庫,兩大主流:DirectX && OpenGL. 目前基于windows平臺的游戲居多。所以DirectX占優。我想介紹的是DirectX. 為什么不直接用引擎,因為引擎封裝的是也是DirectX,道理一樣。明白DirectX就可以對引擎的了解達到一種相當的程度。 

            1.1DirectX 簡單概述: 

            XXXXXX 

            1.2DirectX的數學3D世界 

            XXXXXX 

            1.3DirectX的基礎 

            XXXXXX 

            1.4實用DirectX 

            XXXXXX 

            1.5GPU編程 

            XXXXXX 
             

            2.物理世界(碰撞檢測) 

            2.1AABB 
             
             
             
             

            3.聲音世界 
             
             
             

            4.一個簡單的游戲

            4.0 簡述:

                  簡單的游戲,在一個盒子里實現到有目標人物的射擊;

            4.1 DXUT engine 

               4.1.1DirectX SDK 里面包含了一個簡單的封裝D3D常用功用的類的一個庫;架構如下: 

               您的瀏覽器可能不支持顯示此圖像。 

               各文件大概解析:

               1.DXUT 是管理windows窗口的,還有一些線程的內存任務的管理

               2.DXUTEnum是管理設備的也就是顯卡,

               3.DXUTgui是一個簡單的用戶界面庫

                 DXUTsettingDlg就是一個已經格式化的一個管理顯示設備的對話框

                     一個架構圖:

                           您的瀏覽器可能不支持顯示此圖像。 

               4.DUXTmesh3D網格文件的管理

               5.DXUTTexture是管理紋理的

               6.DXUTmis是一個雜類,有管理數據結構體的,有時間器的,有攝象機的,有方向管制的。

                     您的瀏覽器可能不支持顯示此圖像。 

               其中的CFirstPersonCamera 就是第一人稱視角攝象機,用起來很方便 

               7.DUXTSound是聲音 
             

               4.1.2sample DXUT 

               您的瀏覽器可能不支持顯示此圖像。 
             
             

            4.2 一個盒子的世界 

                  meshCell 
             

            4.3增加一個東西

                  4.3.1 射擊球:ammo

                        struct AMMO_STATE

                 {

                   4元數世界坐標轉化  

                 標志是否活動

                  位置

                   速度 

                   顏色

                   創建時間

                   生命周期

                   透明

                  }

                 

                 應該就是這些的了 
               

                 4.3.2 怪物:droid 

                        struct DROID_STATE

            {

                4元數世界坐標轉化  

                 標志是否活動

                 標志是否被擊中

                  位置

                  速度 

                   顏色

                   創建時間

                   生命周期

                   透明 

                              離camaer有多遠

                              動作狀態

            }; 

            4.4 游戲壯態:

                   一個游戲應該有個場景管理的結構體,表明當前玩家處于游戲的什么狀態,例如,玩家處在設置游戲的顯示設置時,那么游戲玩的其他資源就應該不那么快創建;

                     按照我設想。。就是一個標志位:玩時為1,設置其他東西為2,結束為3. 

            4.5運動起來

                     當創建怪物與球體后,就應該初始化它們存在的狀態參數,然后根據物理定律把握住它們的狀態(速度,位置,重量。。。)進行運算再返回結果給它們。 

                     適當的物理參數設置:

                     由于是簡單游戲,所以基本上設置一下世界引力系數,再加上一些碰撞后的缺失,磨擦系數就可以了 

            4.5UI

                     用微軟提供的DXUT庫里面的就基本上足夠了。 
             
             

            4.6 基本程序架構 

             面向對象與全局變量? 

                  基本上整體的結構是使用面向對象思想的。

                        像攝象機,封裝好一個類(DXUT庫提供)網格也是。 

                  然而大局里是用全局變量來設計的

                        全局的數組儲存球體信息與怪物信息;

                        全局的結構體儲存要渲染的資源。 

               理由

                        因為要考慮到全局變量可以減少函數參數堆棧出入帶來的時間損失!(3D是每秒楨楨循環,調用函數頻繁)

                        當然還有檢索怪物跟球體,把握它們的句柄是相當迅速的 

            4.7全局整體架構解析

              總有來說就是依靠在DXUT庫上做個簡單的程序 

                  您的瀏覽器可能不支持顯示此圖像。


            源代碼是Directx sdk中的XACTgame。。。本人自信有能力做,不過時間緊了,要交論文了

            時間08年3.31號!
            估計以后要增加一下函數的解析
            DXUT里面sample里的運行機制
            兩個球體帶速度在3D里碰撞的數學問題
            球體與面的碰撞問題
            還有GPU里的FX文件的一些VS,PS的解析

            posted on 2008-03-31 12:16 DK_jims 閱讀(781) 評論(4)  編輯 收藏 引用

            Feedback

            # re: 3D FPS 論文 正式版 1 2008-03-31 12:22 DK_jims
            人氣太差,自己回一個。
            可恥的自我!其實是做不出!不是時間緊!
            大學生一篇論文就是這樣一晚功夫就可以完成,畫幾張圖,吹牛幾句~
            自己BS自己,又不得不陰敬一下自己!  回復  更多評論
              

            # re: 3D FPS 論文 正式版 1 2008-03-31 12:29 DK_jims
            配錯最后一張圖,遲一個星期改,注 最后一個圖搞錯了  回復  更多評論
              

            # re: 3D FPS 論文 正式版 1 2008-03-31 22:44 hakuci
            看不懂!!太高深了  回復  更多評論
              

            # re: 3D FPS 論文 正式版 1 2009-03-06 09:41 nn
            .........  回復  更多評論
              

            91久久精品视频| 99久久99久久精品国产| 中文成人久久久久影院免费观看| 久久久久久国产精品无码下载| 亚洲国产成人精品女人久久久| 国产成人精品综合久久久| 色婷婷综合久久久久中文| 精品久久久无码中文字幕| 亚洲综合伊人久久综合| 国内精品久久久久影院网站| 热re99久久精品国99热| 久久综合精品国产一区二区三区| 亚洲精品乱码久久久久久蜜桃图片| 大美女久久久久久j久久| 无码精品久久久天天影视| 久久精品国产一区二区| 久久精品中文騷妇女内射| 一本色道久久88综合日韩精品| 久久se精品一区精品二区| 99精品国产99久久久久久97| 久久综合五月丁香久久激情| 久久精品国产亚洲综合色| 亚洲va中文字幕无码久久| 亚洲人成无码网站久久99热国产| 久久综合丝袜日本网| 久久久久人妻一区精品色| 国产免费久久精品99re丫y| 国产福利电影一区二区三区,免费久久久久久久精 | 国产精品一区二区久久精品| 久久婷婷色综合一区二区| 久久精品女人天堂AV麻| 国产精品综合久久第一页| 久久不射电影网| 久久无码av三级| 91精品免费久久久久久久久| 久久99国产精品久久99果冻传媒| 国产情侣久久久久aⅴ免费| 久久国产色AV免费看| 69久久夜色精品国产69| 久久综合久久综合久久| 热99re久久国超精品首页|