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