citywar Engine TechDemo v1.2
包含功能:
1.cascade shadow + rain 特效 + 50個人物影子 + culling 速度加快
2.一個編輯 rain特效的介面
3.一個 FPS第一人稱的遊戲方式.
citywar techdemo v1.2 下載(29mb)
https://app.box.com/s/qzqrqmezroja55xbvu94
culling 做了2個加速:
1.1本來是對每個obj做culling, 這數量太大, 全部 464個.
camera cull + cascade shadow cull *2(層) +water reflect + rain reflect
總共 5*464 次.
後改用 用每一個group做culling 476減少到 171. cpu 少掉 5*(464-171)=1465次運算.
雖然不夠精確 但是速度提升15張.
1.2. shadow culling 本來就有做.但是有些obj總是在影子裡 根本不用算.
nObjAlways _InShadow, 這有84個obj. 速度也是提升15張.
citywarEngine 1.2 Rain Effect
下禮拜會丟出一個執行檔:demo cascade shadow + rain effect
雨的特效就先這樣了. 能參考的資料太少 又太難寫.
每加一個特效 都要跟原來的整合,整理程式的時間就愈長.
接下來會寫 lighting + cull 這資料就比較多了
雨的特效就先這樣了. 能參考的資料太少 又太難寫.
每加一個特效 都要跟原來的整合,整理程式的時間就愈長.
接下來會寫 lighting + cull 這資料就比較多了
如何用簡單的方法解決複雜的問題?
如何用簡單的方法解決複雜的問題?
這不只在程式方面, 很多方面都可以適用.
原則1: 任何的問題都是複雜的問題. (不要認為有簡單的問題)
原則2:任何複雜的問題 都不可能被完美的解決.(該知道到甚麼地步就該適可而已)
原則3:用複雜的方法只會引起更多的問題.
原則4:要花很長時間想出一個簡單的方法解決複雜的問題.(不要太懶了)
很多時候想到的方法 都是複雜的方法, 因為很快就想出來, 結果花大量的時間在 debug,
最後因為方法太過複雜,導致放棄 .
如何用簡單的方法解決複雜的問題?
1.把問題的重點抓出來, 這需要訓練 長時間訓練的結果 才能看出問題的重點.
2.解決重點問題. 代表就解決 80%以上的問題. 其他的細節就可以簡化了.
3.要解決一個複雜的核心問題, 要從各種角度 就是360度 逼近問題.
不要太死腦袋, 一定要怎麼做才可.
廣泛的閱讀 收集資料, 然後逼近核心.
這不只在程式方面, 很多方面都可以適用.
原則1: 任何的問題都是複雜的問題. (不要認為有簡單的問題)
原則2:任何複雜的問題 都不可能被完美的解決.(該知道到甚麼地步就該適可而已)
原則3:用複雜的方法只會引起更多的問題.
原則4:要花很長時間想出一個簡單的方法解決複雜的問題.(不要太懶了)
很多時候想到的方法 都是複雜的方法, 因為很快就想出來, 結果花大量的時間在 debug,
最後因為方法太過複雜,導致放棄 .
如何用簡單的方法解決複雜的問題?
1.把問題的重點抓出來, 這需要訓練 長時間訓練的結果 才能看出問題的重點.
2.解決重點問題. 代表就解決 80%以上的問題. 其他的細節就可以簡化了.
3.要解決一個複雜的核心問題, 要從各種角度 就是360度 逼近問題.
不要太死腦袋, 一定要怎麼做才可.
廣泛的閱讀 收集資料, 然後逼近核心.
citywar Engine:下一階段目標
預計: citywar engine 1.3版功能
1.Casecade shadow (已做得差不多了, 每增加一層 速度少掉20張. 只做3層而已)
fps總共少掉50張, 換取更好的影子品質, 不大覺得很划算.(在bulr 下去又少掉20張)
所以影子到這裡結束, 最多是做最佳化, 已經花了太多時間了.
2.所以說把影子繼續做好 不如在去寫其他的特效, 少掉50張, 這資源做其他的特效 夠了.
水面特效 只少掉30張.
已確定要做的特效但是不大確定能做出來. 所以無法說明.
3.Cull. 現在發覺, 要增加速度 cull 的效率要提高.
a.人物動態影子 可以從5個提升到10個. 算是意外的收穫.
之前寫在pixel shader, 速度有點慢, 改寫在vertex shader,為了Casecade shadow,
又改在 pixel shader. 速度沒甚麼掉 算是好事.
寫在pixel shader, 當然人物影子數就可提高了.
b.發覺gpu運算方式 好像是暴力演算法, if的處理速度很慢,for的速度很快.
c.2年前寫引擎時, 我的9600gt 材質只支援到 4096x4096,現在已經到8192x8192
還有在hlsl 裡面寫 break, 速度會狂掉, 現在不會了.
所以說 顯示卡廠商 把driver寫好比較實在, 常常會出現很奇怪的問題.
hlsl 裡面要加強 if continue break 的速度 才是重點.
1.Casecade shadow (已做得差不多了, 每增加一層 速度少掉20張. 只做3層而已)
fps總共少掉50張, 換取更好的影子品質, 不大覺得很划算.(在bulr 下去又少掉20張)
所以影子到這裡結束, 最多是做最佳化, 已經花了太多時間了.
2.所以說把影子繼續做好 不如在去寫其他的特效, 少掉50張, 這資源做其他的特效 夠了.
水面特效 只少掉30張.
已確定要做的特效但是不大確定能做出來. 所以無法說明.
3.Cull. 現在發覺, 要增加速度 cull 的效率要提高.
a.人物動態影子 可以從5個提升到10個. 算是意外的收穫.
之前寫在pixel shader, 速度有點慢, 改寫在vertex shader,為了Casecade shadow,
又改在 pixel shader. 速度沒甚麼掉 算是好事.
寫在pixel shader, 當然人物影子數就可提高了.
b.發覺gpu運算方式 好像是暴力演算法, if的處理速度很慢,for的速度很快.
c.2年前寫引擎時, 我的9600gt 材質只支援到 4096x4096,現在已經到8192x8192
還有在hlsl 裡面寫 break, 速度會狂掉, 現在不會了.
所以說 顯示卡廠商 把driver寫好比較實在, 常常會出現很奇怪的問題.
hlsl 裡面要加強 if continue break 的速度 才是重點.
要更好的劃質, 就要拿硬體規格來換
3D畫面 = GPU速度 + 記憶體 + 程式設計
畫面就是由這三種組成.
現在3D已經沒有 速度又快, 畫質又好, 硬體規格又低的.
軟體的比例已經剩下1/3了.(再加上大家用的演算法都差不多)
事實證明記憶體的比例也愈來愈高了,
例如 id的 RAGE, 可以在很低的硬體配備執行出不錯的畫面, 就是用大量的記憶裡來換的.
citywar 3D Engine Editor 1.0 發布
citywar 3D Engine Editor 1.0 發布
也提供販售完整的程式碼 跟技術轉移 e-mail: houpito@gmail.com
秉持 用簡單的方法解決複雜的問題. 所以這是一個看不到編輯畫面的編輯器
就是一次只能做一件事 的編輯器.
編輯器下載:(38mb)
https://app.box.com/s/c3xpcrlbyi4cvhx9jfml
只需要花個5分鐘 看一下 Editor說明.rtf 說明檔, 沒錯 只要5分鐘 就可完全掌握編輯器的功能了.
有任何問題可以在這裡留言
也提供販售完整的程式碼 跟技術轉移 e-mail: houpito@gmail.com
秉持 用簡單的方法解決複雜的問題. 所以這是一個看不到編輯畫面的編輯器
就是一次只能做一件事 的編輯器.
編輯器下載:(38mb)
https://app.box.com/s/c3xpcrlbyi4cvhx9jfml
只需要花個5分鐘 看一下 Editor說明.rtf 說明檔, 沒錯 只要5分鐘 就可完全掌握編輯器的功能了.
有任何問題可以在這裡留言
C++的friend關鍵字實現了軟體工程
很多書本教你的 不要使用 friend, 結果意外的被我發現新方法, 就是大量的使用friend.
因為我不寫繼承的, 所以會有很多class, 之前整理程式碼, 發現閱讀code有些費時,
不知要從哪裡下手.
突然閃過一個念頭, friend 根本是救星.
經過一個多月整理程式碼的心得:
這是程式碼裡的:
class CShadowRole
{
private:
//*** 這裡面有7個變數, 12個函數, 看起來也算蠻大的class ***//
public:
CShadowRole()
{
m_nRole=0; for(int i=0; i<MAX_PLAYER; i++)m_szRole[i].pRole=NULL;
}
friend class CGame;
friend void interface_ShadowRole_AddRole( class CViewFrustum *pCull, class CMyRole *pMyRole, int idModel, BYTE wpn, float time );
};
看到沒有, public 只有一個 初始的, 剩下甚麼都沒有 有兩個 friend.
這樣的class幾乎是沒有用的, 但是那兩個 friend 就是重點了,
沒錯, 這個class CShadowRole 只在 class Game裡面使用 跟那個函數裡使用
其他都不能使用.
這樣不是很清楚嗎? 一看到這個class 的宣告 就一目了然 這個 class的使用方法.
所有要存取 CShadowRole必須來這裡宣告firend 才可以使用.
就很容易看出class 彼此之間的關係.
---------------------------------------------------------------------------------------------------------
但是 上面是理想的狀態, 但是 有一個致命的缺點 就是會有一大串的friend,
這就沒有意義了.
-------------------------------------------------------------------------------------------------
所以C++的對於類別成員的封裝 太爛了 只有兩種 private, 跟 public.
應該再增加一個封裝的關鍵字: 也是取名叫做 friend.
宣告為 friend function 跟 friend class, 可以存取宣告 friend 跟public內的函數或是變數.
這樣 friend 真的就會實現 軟體工程的方法.
因為我不寫繼承的, 所以會有很多class, 之前整理程式碼, 發現閱讀code有些費時,
不知要從哪裡下手.
突然閃過一個念頭, friend 根本是救星.
經過一個多月整理程式碼的心得:
這是程式碼裡的:
class CShadowRole
{
private:
//*** 這裡面有7個變數, 12個函數, 看起來也算蠻大的class ***//
public:
CShadowRole()
{
m_nRole=0; for(int i=0; i<MAX_PLAYER; i++)m_szRole[i].pRole=NULL;
}
friend class CGame;
friend void interface_ShadowRole_AddRole( class CViewFrustum *pCull, class CMyRole *pMyRole, int idModel, BYTE wpn, float time );
};
看到沒有, public 只有一個 初始的, 剩下甚麼都沒有 有兩個 friend.
這樣的class幾乎是沒有用的, 但是那兩個 friend 就是重點了,
沒錯, 這個class CShadowRole 只在 class Game裡面使用 跟那個函數裡使用
其他都不能使用.
這樣不是很清楚嗎? 一看到這個class 的宣告 就一目了然 這個 class的使用方法.
所有要存取 CShadowRole必須來這裡宣告firend 才可以使用.
就很容易看出class 彼此之間的關係.
---------------------------------------------------------------------------------------------------------
但是 上面是理想的狀態, 但是 有一個致命的缺點 就是會有一大串的friend,
這就沒有意義了.
-------------------------------------------------------------------------------------------------
所以C++的對於類別成員的封裝 太爛了 只有兩種 private, 跟 public.
應該再增加一個封裝的關鍵字: 也是取名叫做 friend.
宣告為 friend function 跟 friend class, 可以存取宣告 friend 跟public內的函數或是變數.
這樣 friend 真的就會實現 軟體工程的方法.
citywar 編輯器1.0包含功能
主要是4部分:
1.環境光的調整, 光線顏色強度...影子濃度, 可以輕易庭找出任何氣候的參數
2.物件擺放功能: 最主要就是把物體放在場景裡的功能. 還包含可以隨便指定材質.
3.地形畫圖混色的功能, 理論上任何UV座標在[0,1]內的物體 都可以當作畫布直接畫在材質上
4.decal擺放功能, 加強場景的豐富性.
---------------------
時間還夠的話:
5.地形的高低變化只能由 3ds max外部匯入, 無法編輯地形的變化, 感覺也不是很重要.
6.燈光光源編輯, 這重點不是編輯 而是畫面效果, 花的時間比較長.
7.事件編輯, 其實就在場景裡設些屬性而已, 擺放人物 觸發點..... 蠻簡單.
8.其他圖形特效, 這部分時間就很長了.
1.環境光的調整, 光線顏色強度...影子濃度, 可以輕易庭找出任何氣候的參數
2.物件擺放功能: 最主要就是把物體放在場景裡的功能. 還包含可以隨便指定材質.
3.地形畫圖混色的功能, 理論上任何UV座標在[0,1]內的物體 都可以當作畫布直接畫在材質上
4.decal擺放功能, 加強場景的豐富性.
---------------------
時間還夠的話:
5.地形的高低變化只能由 3ds max外部匯入, 無法編輯地形的變化, 感覺也不是很重要.
6.燈光光源編輯, 這重點不是編輯 而是畫面效果, 花的時間比較長.
7.事件編輯, 其實就在場景裡設些屬性而已, 擺放人物 觸發點..... 蠻簡單.
8.其他圖形特效, 這部分時間就很長了.
3D FPS Source Code 販售計畫
相關介紹
http://pgamerart.blogspot.tw/2012/05/3dall-source-code.html
檔案下載:
程式碼販售, All Source Code. 包含售後一年程式問題解決.
(包含開發流程, 已經完成的圖形 模型 提供美術人員參考)
完全技術轉移, 大幅加快開發速度 減少成本.
email: houpito@gmail.com
下載檔案: <30mb
https://docs.google.com/file/d/0B1ulcCEz0vXTT2d0YVZ4bVRnUW8/edit?usp=sharing
下載CitywarTechDemo.rar
裡面的:TechDemo.exe
PC免費國產的撞球遊戲PoolingBall
國產的撞球遊戲 PoolingBall
【檔案大小】:3.6MB
【檔案格式】:ZIP
【遊戲類型】:撞球遊戲
【檔案語言】:英文
【檔案空間】:appbox
【刪檔天數】:永久
【遊戲說明】:
這是我在app上的撞球遊戲, 已經移植到pc上面.
這是企業贊助版, 但是可以無限試玩
【安裝步驟】
1. 解壓縮
2.開始玩
下載網址
https://app.box.com/s/ygchcav5ny8es1jfjyfv
【檔案大小】:3.6MB
【檔案格式】:ZIP
【遊戲類型】:撞球遊戲
【檔案語言】:英文
【檔案空間】:appbox
【刪檔天數】:永久
【遊戲說明】:
這是我在app上的撞球遊戲, 已經移植到pc上面.
這是企業贊助版, 但是可以無限試玩
【安裝步驟】
1. 解壓縮
2.開始玩
下載網址
https://app.box.com/s/ygchcav5ny8es1jfjyfv
TWReader 繁體中文直式閱讀器
執行 目錄底下的hardware.exe 產生 hardware.txt
這裡面只是主機版的型號.
※ 將這檔案e-mail寄給我, houpito@gmail.com
以e-mail當作購買證明.
價格只要 200元. 會給你匯款帳號. 轉帳完成後. 會寄給你完整的程式.
可以享有免費更新新版本
下載(142k)TwReaderFree1.03(bug fix+標點符號顏色 應該是最終版) https://app.box.com/s/pxwpc02extz9tfn7gbng

PoolingBall IAP Source Code
ALL Source Code.
In App Purchase + Universal app + 95% c/c++ +opengles
License Type: Full Transfer of All Rights and Code
並提供1個月售後source code 服務
有興趣請來信﹔ houpito@gmail.com
價格 price: 3000 USD 美金.
上架以來4天每天都有4000~5000人次下載
運動纇 Top Free 200
https://itunes.apple.com/app/id599492640
會寫程式沒什麼, 會賣軟體 才是賺錢的關鍵
bill gates光是靠賣dos(還是買來的) 就成為首富
看看誰有銷售管道, 可以幫忙銷售 source code.
可以一起合作. 我可以接受3,7分.
(只要你可以幫忙賣出 這個source code , 銷售的利潤 你可以分到3成, 其他的售後服務 還是我提供)
(看是ebay 還是其他網站 可以賣 code........)
我還有其他一大堆賣不出去的 source code
In App Purchase + Universal app + 95% c/c++ +opengles
License Type: Full Transfer of All Rights and Code
並提供1個月售後source code 服務
有興趣請來信﹔ houpito@gmail.com
價格 price: 3000 USD 美金.
上架以來4天每天都有4000~5000人次下載
運動纇 Top Free 200
https://itunes.apple.com/app/id599492640
會寫程式沒什麼, 會賣軟體 才是賺錢的關鍵
bill gates光是靠賣dos(還是買來的) 就成為首富
看看誰有銷售管道, 可以幫忙銷售 source code.
可以一起合作. 我可以接受3,7分.
(只要你可以幫忙賣出 這個source code , 銷售的利潤 你可以分到3成, 其他的售後服務 還是我提供)
(看是ebay 還是其他網站 可以賣 code........)
我還有其他一大堆賣不出去的 source code
訂閱:
文章 (Atom)

























