Re: [問題] openGL載入貼圖連續顯示
這邊很有問題
: Display()//call back
: {
: glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
: glClearColor(1.0, 1.0, 1.0, 1.0); //背景white
: glMatrixMode(GL_MODELVIEW);
: glLoadIdentity();
這邊才是設定使用貼圖的地方
畫之前啟用,就作用在你之後畫得物體上
glBindTexture(GL_TEXTURE_2D, id);
glEnable(GL_TEXTURE_2D); //你少了這個,除非你用shader就可以無視這行
因為沒有enable貼圖
所以畫出來自然會是白色的
: glBegin(GL_QUADS);
: glTexCoord2f(0,0); glVertex3f(-11,-11,0);
: glTexCoord2f(1,0); glVertex3f(11,-11,0);
: glTexCoord2f(1,1); glVertex3f(11,11,0);
如果是QUARDS,應該還需要第四個頂點
glEnd();
畫完之後看情況可以決定要不要取消貼圖
如果需要就呼叫這兩行
glDisable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, 0);
下面這四行應該要拿掉
不應該出現在display
reshape和display重新註冊callback函數還不會有事情
但是mainloop卻是一個永久迴圈
裡面又會去呼叫display
call stack遲早會炸掉
: glBindTexture(GL_TEXTURE_2D, textures[0]);
: glutReshapeFunc(WindowSize);
: //glutKeyboardFunc(Keyboard);
: glutDisplayFunc(Display);
: glutMainLoop();
: }
: 目前只先印第一張texture
: 我在每一次Display()執行時便會printf一次訊息
: 結果只print兩次
: 畫面都全白
: 請前輩指點迷津,謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.251.45
※ 編輯: iamstudent 來自: 140.113.251.45 (04/29 03:10)
推
04/29 03:23, , 1F
04/29 03:23, 1F
推
04/29 09:42, , 2F
04/29 09:42, 2F
→
04/29 09:44, , 3F
04/29 09:44, 3F
→
04/29 09:44, , 4F
04/29 09:44, 4F
→
04/29 10:31, , 5F
04/29 10:31, 5F
→
04/29 10:32, , 6F
04/29 10:32, 6F
→
04/29 10:33, , 7F
04/29 10:33, 7F
推
04/29 14:34, , 8F
04/29 14:34, 8F
→
04/29 14:44, , 9F
04/29 14:44, 9F
→
04/29 17:37, , 10F
04/29 17:37, 10F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章