我最近在學虛幻大學里面的directx c++游戲開發的教程,
除錯的時候發現像素點一旦變多幀數就降得特別低,不知道為什么
我電腦配置按理說是沒問題的
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
點的數目多了,幀率當然會下降…… 再好的電腦也是如此。使用Vertex array object 和Vertex buffer object等技術可以有效提高渲染效率,但是也1000w以上的點也會讓電腦卡到爆炸。uj5u.com熱心網友回復:
邏輯寫得有問題吧。。。。。。。首先你得有幀率的基準
真的,碰到你這種問題的同事,我首先不要問怎么解決
我首先真的問你的幀率是怎么算的
(大部分程式問題,基于問題的判斷,有BUG,還是機器問題,最后發現還是程式員一開始的程式邏輯錯了)
你懂我意思嘛,要是你幀率算錯了,可能只是你檢測放在回圈里,回圈多了,自己幀率的爆了,實際上機器還是跑得好好的,還是很有效率的
(也可能,不排除你很有程式經驗)
但是1)你這么從頭寫3D,就像我做商業游戲前走的彎路一樣,
2)你沒有用比較主流的商業引擎
所以判斷你可能只是一個學生
例如我現在在用這個unity3d引擎,里面有一個profiler,是做幀率檢測,不但檢查幀率幾乎所有影響3D引擎的因素都監控的,而且更吊的是,完全資料可視化,可以暫停(profiler和editor的互動)
這樣除錯起來,我也花了一個月,也只是調了點皮毛,不過會好起來的
http://blog.csdn.net/avi9111/article/details/72848905
uj5u.com熱心網友回復:
其實你也做的比我好了我之前拿到XX熊貓手游的商業原始碼
但是客戶端是蝸牛自家引擎
人家也是基于directx,甚至還是裸的, 我編譯客戶端的,基本上連dir的sdk都裝不上
起碼你能裝上并跑起來,,,不錯的了
還有那個什么鬼opengl
uj5u.com熱心網友回復:
像素點少的時候幀數正常,多一點點就開始出問題了,不知道是不是驅動不兼容的問題uj5u.com熱心網友回復:
具體要看你判斷幀率的代碼在哪里?起碼你在論壇要貼出來,目測你并沒有,人家unity3d框架很穩定,每一幀都會呼叫這個方法(當然也會呼叫很多其他方法)void OnGUI()
{
Pixcel* p = new Pixcel;//邏輯1,用了點C++寫法,實際不會這樣寫C#
p->load();
Debug.log(Time.deltaTime);//框架封裝好的實用方法,能知道上一幀的時間,可以判斷邏輯1還是邏輯2造成的卡頓
p->drawcall(1,2);//邏輯2
}
//重要的是,還有profilter這個工具,將這些效能可視化,框架還能擴展還很多人寫第三方組件,我自己也想寫一個,專門FOR 特效測驗或者模型測驗。。。。。。。。
//還有更重要的是,你只是說了directx 很卡,你是架構師么?我做了這么多年我也還自稱是程式猿,是個程式猿就貼些程式出來吧,藏著掖著沒意思(碰過一個285高校出來的同事,他的代碼我是真不想看,但是要成長總有個程序的,我巴不得我的代碼有人看,給點意見,但當時甚至連網路都沒有,只能每天偷1點時間看CSDN上面的人怎么寫,現在這里那些人都不在了,而且現在原始碼,框架滿地都是,怎么就不去學學捏)
uj5u.com熱心網友回復:
貼代碼也不需要貼太多,你把問題講清楚了,貼1,2句就行了,大家都是內行人uj5u.com熱心網友回復:
我這2天想用Dicuz做一個網站,但是實在官網會有很多坑,按官網做出來的也不是自己想要的,不實用,(你用directx做也是類似的情況的),問題也是應該能解決的,就是我不想花太多時間在上面,求大牛指點成熟Dicuz框架和工具uj5u.com熱心網友回復:
個人覺得,DX入門的最好教程還是DX12龍書《Introduction to 3D Game Programming with DirectX》轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/60019.html
標籤:其它游戲引擎
