[問題] OpenGL的VBO
遇到的問題: (題意請描述清楚)
在我的程式中,存在數個獨立的物件要繪出來
是不是代表要畫多少物件就要有多少個vertex buffer??
也就是說應該要這樣
GLuint g_VertexBufferID[K];
GLuint g_IndexBufferID[K];
glGenBuffersARB( ANI_TYPE_COUNT, g_VertexBufferID);
glGenBuffersARB( ANI_TYPE_COUNT, g_IndexBufferID);
還是只要宣告一個就好
GLuint g_VertexBufferID;
GLuint g_IndexBufferID;
glGenBuffersARB( 1, &g_VertexBufferID);
glGenBuffersARB( 1, &g_IndexBufferID);
另外 因為物件每個影格的點座標都會改變
所以是否存在更快的寫法來取代我現在的版本?
(事實上應該說 我不知道我寫的流程是不是對的 各個function的呼叫順序是否正確)
繪製的行為如下:
for( i = 0 ; i < K ; ++i ){
glBindBufferARB( GL_ARRAY_BUFFER_ARB, g_VertexBufferID[i]);
glBufferDataARB( GL_ARRAY_BUFFER_ARB, vsize[i],
vertex[i], GL_STREAM_DRAW);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
glVertexPointer(3, GL_FLOAT, sizeof(VERTEX), 0);
glNormalPointer( GL_FLOAT, sizeof(VERTEX), (void *)noffset);
glBindBufferARB( GL_ELEMENT_ARRAY_BUFFER_ARB, g_IndexBufferID[i]);
glBufferDataARB( GL_ELEMENT_ARRAY_BUFFER_ARB,
tsize[i], triangle[i], GL_STATIC_DRAW );
for( int j = 0 ; j < 10 ; ++j ){
//每個畫10次
glPushMatrix();
//先作位移 旋轉 等等
glDrawElements( GL_TRIANGLES, triangle_no, GL_UNSIGNED_SHORT,0);
glPopMatrix();
}
glBindBufferARB( GL_ARRAY_BUFFER_ARB, 0 );
glBindBufferARB( GL_ELEMENT_ARRAY_BUFFER_ARB, 0 );
}
最後 我使用了VidMemWatcher3這個工具想要看我程式有沒有用到硬體的支援
以及是否有善用video memory
結果幾乎沒有 只用不到10MB
但是許多簡單的範例(範例是靜態物件)
用VidMemWatcher3看 使用video memory的量都比較多
導致我沒有辦法知道目前寫出來的程式問題在哪邊
或是說 存在更好的工具可以讓我profile哪邊還可以改進的更快...
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
VC++ 6.0
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.134.30.224
※ 編輯: windkey 來自: 220.134.30.224 (04/01 01:22)
推
04/01 01:35, , 1F
04/01 01:35, 1F
→
04/01 01:35, , 2F
04/01 01:35, 2F
推
04/01 01:36, , 3F
04/01 01:36, 3F
→
04/01 01:37, , 4F
04/01 01:37, 4F
→
04/01 01:37, , 5F
04/01 01:37, 5F
→
04/01 01:37, , 6F
04/01 01:37, 6F
→
04/01 01:37, , 7F
04/01 01:37, 7F
→
04/01 01:38, , 8F
04/01 01:38, 8F
→
04/01 01:38, , 9F
04/01 01:38, 9F
→
04/01 01:40, , 10F
04/01 01:40, 10F
推
04/01 01:42, , 11F
04/01 01:42, 11F
→
04/01 01:42, , 12F
04/01 01:42, 12F
推
04/01 01:42, , 13F
04/01 01:42, 13F
→
04/01 01:42, , 14F
04/01 01:42, 14F
→
04/01 01:43, , 15F
04/01 01:43, 15F
→
04/01 01:45, , 16F
04/01 01:45, 16F
→
04/01 01:46, , 17F
04/01 01:46, 17F
推
04/01 01:46, , 18F
04/01 01:46, 18F
→
04/01 01:47, , 19F
04/01 01:47, 19F
→
04/01 01:47, , 20F
04/01 01:47, 20F
→
04/01 01:48, , 21F
04/01 01:48, 21F
→
04/01 01:48, , 22F
04/01 01:48, 22F
→
04/01 01:48, , 23F
04/01 01:48, 23F
推
04/01 01:49, , 24F
04/01 01:49, 24F
→
04/01 01:49, , 25F
04/01 01:49, 25F
→
04/01 01:49, , 26F
04/01 01:49, 26F
→
04/01 01:49, , 27F
04/01 01:49, 27F
→
04/01 01:50, , 28F
04/01 01:50, 28F
→
04/01 01:51, , 29F
04/01 01:51, 29F
→
04/01 01:51, , 30F
04/01 01:51, 30F
→
04/01 01:51, , 31F
04/01 01:51, 31F
推
04/01 01:53, , 32F
04/01 01:53, 32F
→
04/01 01:53, , 33F
04/01 01:53, 33F
→
04/01 01:54, , 34F
04/01 01:54, 34F
→
04/01 01:55, , 35F
04/01 01:55, 35F
→
04/01 01:56, , 36F
04/01 01:56, 36F
→
04/01 01:57, , 37F
04/01 01:57, 37F
→
04/01 01:57, , 38F
04/01 01:57, 38F
推
04/01 01:57, , 39F
04/01 01:57, 39F
推
04/01 01:58, , 40F
04/01 01:58, 40F
→
04/01 01:58, , 41F
04/01 01:58, 41F
→
04/01 01:58, , 42F
04/01 01:58, 42F
→
04/01 01:59, , 43F
04/01 01:59, 43F
推
04/01 02:00, , 44F
04/01 02:00, 44F
→
04/01 02:00, , 45F
04/01 02:00, 45F
→
04/01 02:00, , 46F
04/01 02:00, 46F
→
04/01 02:01, , 47F
04/01 02:01, 47F
→
04/01 02:01, , 48F
04/01 02:01, 48F
→
04/01 02:02, , 49F
04/01 02:02, 49F
→
04/01 02:02, , 50F
04/01 02:02, 50F
→
04/01 02:02, , 51F
04/01 02:02, 51F
→
04/01 02:03, , 52F
04/01 02:03, 52F
→
04/01 02:03, , 53F
04/01 02:03, 53F
→
04/01 02:03, , 54F
04/01 02:03, 54F
推
04/01 02:04, , 55F
04/01 02:04, 55F
→
04/01 02:04, , 56F
04/01 02:04, 56F
→
04/01 02:04, , 57F
04/01 02:04, 57F
→
04/01 02:05, , 58F
04/01 02:05, 58F
→
04/01 02:05, , 59F
04/01 02:05, 59F
→
04/01 02:05, , 60F
04/01 02:05, 60F
→
04/01 02:05, , 61F
04/01 02:05, 61F
→
04/01 02:05, , 62F
04/01 02:05, 62F
→
04/01 02:06, , 63F
04/01 02:06, 63F
→
04/01 02:06, , 64F
04/01 02:06, 64F
→
04/01 02:06, , 65F
04/01 02:06, 65F
→
04/01 02:07, , 66F
04/01 02:07, 66F
→
04/01 02:07, , 67F
04/01 02:07, 67F
推
04/01 02:09, , 68F
04/01 02:09, 68F
→
04/01 02:09, , 69F
04/01 02:09, 69F
→
04/01 02:09, , 70F
04/01 02:09, 70F
→
04/01 02:10, , 71F
04/01 02:10, 71F
→
04/01 02:11, , 72F
04/01 02:11, 72F
→
04/01 02:12, , 73F
04/01 02:12, 73F
→
04/01 02:12, , 74F
04/01 02:12, 74F
推
04/01 02:13, , 75F
04/01 02:13, 75F
→
04/01 02:13, , 76F
04/01 02:13, 76F
→
04/01 02:13, , 77F
04/01 02:13, 77F
→
04/01 02:16, , 78F
04/01 02:16, 78F
→
04/01 02:16, , 79F
04/01 02:16, 79F
推
04/01 02:17, , 80F
04/01 02:17, 80F
→
04/01 02:17, , 81F
04/01 02:17, 81F
→
04/01 02:19, , 82F
04/01 02:19, 82F
推
04/01 02:23, , 83F
04/01 02:23, 83F
→
04/01 02:23, , 84F
04/01 02:23, 84F
→
04/01 02:24, , 85F
04/01 02:24, 85F
推
04/01 02:27, , 86F
04/01 02:27, 86F
→
04/01 02:28, , 87F
04/01 02:28, 87F
→
04/01 02:30, , 88F
04/01 02:30, 88F
推
04/01 12:15, , 89F
04/01 12:15, 89F
→
04/01 12:16, , 90F
04/01 12:16, 90F
→
04/01 12:16, , 91F
04/01 12:16, 91F
推
04/01 12:30, , 92F
04/01 12:30, 92F
推
04/01 12:30, , 93F
04/01 12:30, 93F
→
04/01 12:31, , 94F
04/01 12:31, 94F
→
04/01 12:32, , 95F
04/01 12:32, 95F
→
04/01 12:33, , 96F
04/01 12:33, 96F