Re: [問題] 關於OpenGL貼圖的問題
看板C_and_CPP (C/C++)作者bbbbbbjeff (雲伴風 風隨雲)時間14年前 (2011/02/23 18:25)推噓17(17推 0噓 101→)留言118則, 5人參與討論串2/2 (看更多)
※ 引述《bbbbbbjeff (雲伴風 風隨雲)》之銘言:
: 各位網友好,想請教關於用OpenGL貼圖的問題,
: 目前用VC++ 2010的Windows Form專案寫了一個程式,需要貼
: 很多張圖,目前遇到的問題是所貼的圖其寬高在某些維度程式會爆
: ,某些維度不會??? 看超級手冊第2版第8章貼圖的部分有提
: 到寬高必須是2的冪次方,但我發現只要顯示卡是nVidia的晶
: 片不用2的冪次方也可以貼,而且每張貼圖大小可以不同,例如
: 下面兩張擷圖:
: 1
: http://homepage8.seed.net.tw/web@5/bbbbbb/TemporaryShare/Texture1.jpg
: 在第1張擷圖內共貼3張圖,第1張貼圖的寬高是1000*600,
: 第2張貼圖的寬高是3000*2000
: 在第2張擷圖內,是第1張擷圖沿著y軸轉180度,可以看到第3張貼圖,
: 第3張貼圖的寬高是1920*1200
: 也就是說,3張貼圖的寬高完全不是2的冪次方也可以貼,只要顯示卡是
: nVidia的晶片就ok。(在Intel的顯示卡上就完全不行,變成空白一片)
: 現在我的問題是,3000*2000都可以貼了,若小很多的應該沒問題才是
: ,但我試了以下幾種寬高,有的可以有的不行??
: 999*1000 ==>不行 ???
: 1000*1000 ==>可以
: 537*590 ==>可以
: 199x203 ==>可以
: 1999x2003 ==>不行 ???
: 我有以 glGetIntegerv(GL_MAX_TEXTURE_SIZE, &MaxTextureSize);
: 去測試我的卡可以顯示的最大維是:8192,所以不能貼應該不是太大
: 才對...
: 請問是否有網友知道問題在哪??
抱歉,上一篇文可能說得不夠仔細,我提到的貼某些維度的圖
會程式會爆的意思是,程式就直接寫錯誤,然後就關閉了,以
下是目前我在 GeForce 8600GTS 測試會錯誤的維度:
999*1000 (24Bits bmp檔)
1999x2003 (24Bits jpg檔)
2854x2894 (24Bits jpg檔)
我讀檔的方式主要是用 .NET Framework 提供的 Bitmap 物件,搭配
Bitmap 物件內的 LockBits 函式 將好幾張影像鎖在記憶體內,再取
出RGB三個通道的值,存到三維陣列內。不管是bmp jpg tif ...都是這樣
取出RGB三個通道的值。如果是8bits灰階圖,也是用一樣這個方式讀,
只是我還是將它視為24bits的圖,以三個通道的記憶體去存一張8bits
的圖,三個通道的灰階值設都設為一樣就存到一個三維陣列內就是了。
接著再 new 一個 GLubyte **Pixels,將存到三維陣列內的值轉存到
GLubyte型態的二維陣列內,並且三維的值要存成一維,以符合glTexImage2D()
此函式的規定。以下是我在此函式內的參數:
glTexImage2D(GL_TEXTURE_2D, 0, 3, Images[z]->Width, Images[z]->Height,
0, GL_RGB, GL_UNSIGNED_BYTE, Pixels[z]);
z就代表第z張image。
反覆看了可以貼圖的影像寬高與無法貼圖的影像寬高,還是不懂為什麼
有些可以貼,有些一貼程式就出現錯誤而停??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.82.254
推
02/23 22:21, , 1F
02/23 22:21, 1F
→
02/23 22:22, , 2F
02/23 22:22, 2F
→
02/23 22:22, , 3F
02/23 22:22, 3F
→
02/23 22:23, , 4F
02/23 22:23, 4F
→
02/23 22:25, , 5F
02/23 22:25, 5F
→
02/23 22:27, , 6F
02/23 22:27, 6F
→
02/23 22:40, , 7F
02/23 22:40, 7F
推
02/23 23:47, , 8F
02/23 23:47, 8F
→
02/23 23:48, , 9F
02/23 23:48, 9F
→
02/23 23:48, , 10F
02/23 23:48, 10F
→
02/23 23:49, , 11F
02/23 23:49, 11F
→
02/23 23:50, , 12F
02/23 23:50, 12F
→
02/23 23:51, , 13F
02/23 23:51, 13F
→
02/23 23:51, , 14F
02/23 23:51, 14F
→
02/23 23:52, , 15F
02/23 23:52, 15F
→
02/23 23:52, , 16F
02/23 23:52, 16F
推
02/23 23:58, , 17F
02/23 23:58, 17F
→
02/23 23:59, , 18F
02/23 23:59, 18F
→
02/23 23:59, , 19F
02/23 23:59, 19F
→
02/24 00:00, , 20F
02/24 00:00, 20F
→
02/24 00:00, , 21F
02/24 00:00, 21F
→
02/24 00:03, , 22F
02/24 00:03, 22F
→
02/24 00:05, , 23F
02/24 00:05, 23F
→
02/24 00:06, , 24F
02/24 00:06, 24F
→
02/24 00:07, , 25F
02/24 00:07, 25F
推
02/24 00:07, , 26F
02/24 00:07, 26F
→
02/24 00:08, , 27F
02/24 00:08, 27F
→
02/24 00:09, , 28F
02/24 00:09, 28F
→
02/24 00:09, , 29F
02/24 00:09, 29F
→
02/24 00:09, , 30F
02/24 00:09, 30F
→
02/24 00:09, , 31F
02/24 00:09, 31F
→
02/24 00:10, , 32F
02/24 00:10, 32F
→
02/24 00:10, , 33F
02/24 00:10, 33F
→
02/24 00:13, , 34F
02/24 00:13, 34F
→
02/24 00:15, , 35F
02/24 00:15, 35F
推
02/24 00:18, , 36F
02/24 00:18, 36F
→
02/24 00:19, , 37F
02/24 00:19, 37F
→
02/24 00:21, , 38F
02/24 00:21, 38F
→
02/24 00:21, , 39F
02/24 00:21, 39F
還有 39 則推文
推
02/24 02:06, , 79F
02/24 02:06, 79F
→
02/24 02:07, , 80F
02/24 02:07, 80F
→
02/24 02:08, , 81F
02/24 02:08, 81F
→
02/24 02:10, , 82F
02/24 02:10, 82F
→
02/24 02:10, , 83F
02/24 02:10, 83F
→
02/24 02:11, , 84F
02/24 02:11, 84F
→
02/24 02:13, , 85F
02/24 02:13, 85F
→
02/24 02:13, , 86F
02/24 02:13, 86F
→
02/24 02:22, , 87F
02/24 02:22, 87F
推
02/24 02:35, , 88F
02/24 02:35, 88F
→
02/24 02:37, , 89F
02/24 02:37, 89F
→
02/24 02:38, , 90F
02/24 02:38, 90F
→
02/24 02:39, , 91F
02/24 02:39, 91F
→
02/24 02:40, , 92F
02/24 02:40, 92F
→
02/24 02:40, , 93F
02/24 02:40, 93F
→
02/24 02:41, , 94F
02/24 02:41, 94F
→
02/24 02:42, , 95F
02/24 02:42, 95F
→
02/24 02:42, , 96F
02/24 02:42, 96F
→
02/24 02:43, , 97F
02/24 02:43, 97F
→
02/24 02:43, , 98F
02/24 02:43, 98F
→
02/24 02:44, , 99F
02/24 02:44, 99F
→
02/24 02:44, , 100F
02/24 02:44, 100F
→
02/24 02:45, , 101F
02/24 02:45, 101F
推
02/24 09:00, , 102F
02/24 09:00, 102F
→
02/24 09:01, , 103F
02/24 09:01, 103F
推
02/24 09:08, , 104F
02/24 09:08, 104F
→
02/24 09:08, , 105F
02/24 09:08, 105F
→
02/24 09:09, , 106F
02/24 09:09, 106F
→
02/24 09:10, , 107F
02/24 09:10, 107F
→
02/24 09:10, , 108F
02/24 09:10, 108F
→
02/24 09:11, , 109F
02/24 09:11, 109F
→
02/24 23:32, , 110F
02/24 23:32, 110F
→
02/24 23:34, , 111F
02/24 23:34, 111F
→
02/24 23:35, , 112F
02/24 23:35, 112F
→
02/24 23:37, , 113F
02/24 23:37, 113F
→
02/24 23:39, , 114F
02/24 23:39, 114F
→
02/24 23:40, , 115F
02/24 23:40, 115F
→
02/24 23:42, , 116F
02/24 23:42, 116F
推
02/24 23:52, , 117F
02/24 23:52, 117F
→
02/25 02:25, , 118F
02/25 02:25, 118F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章