[問題] OpenGL 繪圖加速

看板C_and_CPP (C/C++)作者 (Andy_Yao)時間12年前 (2013/10/18 17:03), 編輯推噓8(8022)
留言30則, 7人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Vc 2012 C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) OpenGL 問題(Question): 目前遇到的問題是只要畫超過200x200x200 的立方體(gltriangle_strip)旋轉就會很LAG 有看到板上的人說 用VBO會很快~ 但由於我會動態切割這個立方體,所以每次畫的都不是一樣的形狀~ 請問VBO 還是可以用嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 42.67.136.159

10/18 18:13, , 1F
會慢是正常的,我個人是覺得不會快多少,你又沒貼材質。
10/18 18:13, 1F

10/18 18:14, , 2F
可以用,會比較快,不然就要用geometry shader吧。
10/18 18:14, 2F

10/18 19:23, , 3F
如果你原本是用古老的 immediate mode,那應該差蠻多的
10/18 19:23, 3F

10/18 19:26, , 4F
immediate mode 的問題描述應該是 "一跑程式就當機..."
10/18 19:26, 4F

10/18 19:29, , 5F
八百萬 polygon 這應該沒救了吧?
10/18 19:29, 5F

10/18 19:38, , 6F
老實說問題描述很模糊耶,搞不好是 12 個 strip 組一個
10/18 19:38, 6F

10/18 19:39, , 7F
立方體。然後在 world coord. 是 200x200x200 大小 XDD
10/18 19:39, 7F

10/18 22:56, , 8F
我沒有說的很清楚~我畫的方式是每個點連接畫成一個立方體
10/18 22:56, 8F

10/18 22:57, , 9F
用triangle_strip方式畫
10/18 22:57, 9F

10/18 23:04, , 10F
九千六百萬 polygon 這應該沒救了吧...
10/18 23:04, 10F

10/18 23:09, , 11F
等等, 你是只畫表面, 還是中間也填滿餡料?
10/18 23:09, 11F

10/18 23:11, , 12F
我都只畫表面喔!~但表面每個點都會填色
10/18 23:11, 12F

10/18 23:12, , 13F
目前我的做法是只有超過300就跳著畫~等於變成100
10/18 23:12, 13F

10/18 23:14, , 14F
等於多大解析度~最後還是100x100x100~但有方法能畫原始的
10/18 23:14, 14F

10/18 23:14, , 15F
解析度嗎?
10/18 23:14, 15F

10/18 23:14, , 16F
那我算錯了, 只有 48 萬個 triangle
10/18 23:14, 16F

10/19 01:28, , 17F
研究看看 minecraft 用了什麼演算法吧,說不定有用 w
10/19 01:28, 17F

10/19 10:23, , 18F
VBO 也可以動態改變啊
10/19 10:23, 18F

10/19 10:24, , 19F
現在 tessellation 都可以一秒畫到兩億以上的三角型了
10/19 10:24, 19F

10/19 12:28, , 20F
說不定人家硬體沒有 tessellation shader 啊
10/19 12:28, 20F

10/19 12:57, , 21F
我的是sandy bridge i5 內顯
10/19 12:57, 21F

10/19 13:02, , 22F
HD Graphics 4000
10/19 13:02, 22F

10/19 13:46, , 23F
看 benchmark 一秒有 3 億個三角型啊, 我之前講得真保守
10/19 13:46, 23F

10/19 13:47, , 24F
相信你改成 VBO 應該會有飛躍式的成長 LOL
10/19 13:47, 24F

10/19 18:18, , 25F
大家一起拋棄immediate mode吧~(被巴)
10/19 18:18, 25F

10/19 18:20, , 26F
不過印象中VBO能不變就不變,印象中就算是DMA還是會慢點
10/19 18:20, 26F

10/19 18:20, , 27F
我覺得可以考慮shader來處理改變的部分?
10/19 18:20, 27F

10/19 20:15, , 28F
vertex shader ?? 請問有DEMO CODE 嗎??
10/19 20:15, 28F

10/20 15:00, , 29F
如果你是說怎麼使用shader的話,可以看書
10/20 15:00, 29F

10/20 19:48, , 30F
OpenGL 3.3 之後才完全拿掉 immediate mode
10/20 19:48, 30F
文章代碼(AID): #1IOFbYC7 (C_and_CPP)
文章代碼(AID): #1IOFbYC7 (C_and_CPP)