粒子的
實現一個粒子效果或系統,在Dx里要有如下幾個步驟。
1.定義粒子頂點格式
2.定義粒子屬性
3.定義發射器
4.實現發射器的渲染函數
5.實現發射器的更新函數
6.使發射器可動態修改
實現了這幾個步驟后,再配合一個可視化的編輯器就是基本的粒子編輯器和系統了。這里給出整體步驟,具體細節你大可以分步的學習,相信不同的人學起來會有不同的結果。收獲也大不相同,但學了就是會有收獲的。
粒子入門的參考書籍等
《BeginningDirectX9》簡單入門 - 一個最簡單的類似爆炸的粒子效果介紹粒子。
《Introductionto3DGameProgrammingwithDirectX9.0》稍有深入 -
《DirectX9Graphics-The DefinitiveGuidetoDir》簡單介紹
《SpecialEffectsgameProgrammingwithDirectX》較詳細介紹
甚至是最酷的粒子系統如果你不能配置使用的話,就要自己寫粒子編輯器了。
Chindogu和問題為什么做編輯器?
Chindogu是一個日本美術師,form invented by Kenji Kawakami,設計師。 I don't do it justice here in just a few sentences,但是實際上,Chindogu 是富有靈感和精細的設計。
不久經常的,我看到開發者的粒子很好,很成功,但是使用復雜,chunk of software.所以總是為什么我 要編寫代碼?真的需要嗎?那用什么做?
所以為什么制作編輯器?粒子系統編輯器,特定的保存和加載函數,我們將寫我們的粒子類,允許我們分離代碼的改變。沒有這些函數,你將需要核心代碼粒子屬性,你想直接放到游戲中。這意味者每次你想改變屬性,你必須重新編譯。如果你是游戲美術過分追求粒子的外觀,你也許找到自己花時間來改變核心代碼的屬性,重新編譯發布。這不是玩小。
將這些粒子的屬性放到文本文件(游戲讀取時,解決問題。現在你的藝術舒可以不重新編譯就改變粒子系統屬性。不幸的是,它仍然不能非常理想,因為它們必須運行游戲才能看到結果。理想的方式是創建一個所見即所得粒子編輯器。這樣,你的美術師改變粒子系統屬性和看到不同效果。這最后使美術師很高興,將讓游戲美術更好。
理解窗體函數
現在你決定制作一個粒子編輯器,下一步是你打算花多長時間完成它。你可以狂熱些,但是我建議你保持簡單-在個窗口上運行使用Win32API來做。僅僅通過大部分基本的函數。焦點是制作工具,而不是做的很酷,也就是說不要把工具做的很漂亮,我們是要用它。當然,它可以很華麗,它也許需要發布給玩家-但是優雅的完成它是關鍵;它主要使用鼠標。
你將說人們使用你的編輯器(lone wolfs can talk to themselves).詢問它們喜歡的特性,讓它可以支持添加新特性。我談論關于軟件開發過程,自從許多人寫了許多大型書籍的話題,我們just leave it at that-它們告訴你需要開發。
保存和加載粒子屬性
設計已經說的夠多了-讓我們寫代碼。前進從Ch18p2_ParticleProps例子程序開發。
粒子編輯器的靈魂和心臟是保存和加載粒子系統屬性。幸運的,thisi if fairly simple stuff.根據你喜歡的格式輸出每個屬性。我建議制作人們可理解的,所以甚至如果他們沒有你的粒子編輯器,你進入團隊后可以使用粒子編輯器。注意。我更喜歡讀寫一些int文件,但是其他的選擇像XML也很好。總之,int the end it comes down to what your requirements are,what you've worked with before,and just in genenral,what you like.
我不打算討論過多的保存函數,因為你你可以自己去理解。實質的,它調用fprintf寫輸出一個INI文件。
加載方法更有趣。這個方法可正確的閱讀和解析屬性文件,根據請求處理文本的操作。實質上,有兩步,我們讀整個文件到STL map.我們使用屬性名字(to the left of the equal sign)和它們的關系值(to the right of the equal sign).一次我們有map,我們查找特定的屬性名。我們使用我們找到的值在系統中。我們檢查更多的細節。
創建圖map
搜索圖和設置屬性
加載代碼Wrap-Up
渲染GUI
創建工具窗口(Really Just a 非模態對象誆)
瘋狂的消息處理
初始化最初值到GUI
添加功能-設置通用對話框
GUI簡介
編輯器簡介
轉載于:https://www.cnblogs.com/microsoftxiao/archive/2006/04/15/375981.html
總結
- 上一篇: SOA 设计原则和 Web 服务中的数据
- 下一篇: 黄山之美