[問題] OPGL裡的Timefunction

看板Programming作者 (龜~66.6%是水~)時間17年前 (2009/04/19 15:57), 編輯推噓2(205)
留言7則, 2人參與, 最新討論串1/1
小弟在繪.STL的3D時想要先把點畫出來 在一條線一條線畫來看他點資料的順序 所以想用glut的Timer 可是怎麼用都沒有反應 而且測試了一下OPGL超級手冊光碟裡的檔案 他再第三章的檔裡有一個Bounce的檔是有用到 glutTimerFunc()的 (就是書上P.59的彈跳方塊) 發現這個擋我的連.exe按下去都只有一個藍色的背幕而已 請問這樣是發生了什麼事? 順便問一下...PTT有OPGL的專門板嗎? 附上寫的Timer部份 void DrowLines(int lNum) { glBegin(GL_LINE_STRIP); glColor3f(1.0f, 0.0f, 0.0f); glVertex3f(triArray[lNum].a[0],triArray[lNum].a[1],triArray[lNum].a[2]); glVertex3f(triArray[lNum].b[0],triArray[lNum].b[1],triArray[lNum].b[2]); glVertex3f(triArray[lNum].c[0],triArray[lNum].c[1],triArray[lNum].c[2]); glEnd(); glutPostRedisplay(); glutTimerFunc(1000,DrowLines,++lNum); } void RenderScene(void) { // Clear the window glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Save matrix state and do the rotation glPushMatrix(); glRotatef(xRot, 1.0f, 0.0f, 0.0f); glRotatef(yRot, 0.0f, 1.0f, 0.0f); glTranslatef(-cent[0], -cent[1], -cent[2]); // Restore transformations glPointSize(5); glBegin(GL_POINTS); glColor3f(1.0f, 2.0f, 0.0f); for(int pNum=0;pNum<nTriangles;pNum++) { glVertex3f(triArray[pNum].a[0],triArray[pNum].a[1],triArray[pNum].a[2]); glVertex3f(triArray[pNum].b[0],triArray[pNum].b[1],triArray[pNum].b[2]); glVertex3f(triArray[pNum].c[0],triArray[pNum].c[1],triArray[pNum].c[2]); } glEnd(); glutTimerFunc(1000,DrowLines,0); //Flush drawing commands //glFlush(); glutSwapBuffers(); glPopMatrix(); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 編輯: koujason 來自: 218.171.137.21 (04/19 15:58)

04/19 16:12, , 1F
你這做法沒有意義.renderscene會一直執行.
04/19 16:12, 1F

04/19 16:13, , 2F
你只要用全域變數依順序畫你要的點即可.
04/19 16:13, 2F

04/19 16:17, , 3F
我是要讓點一直出現沒錯喔!是說線出不來
04/19 16:17, 3F

04/19 16:17, , 4F
我的點已經全部都出來了...可是線沒下文
04/19 16:17, 4F

04/19 16:18, , 5F
renderscene就是你的timer function
04/19 16:18, 5F

04/19 16:18, , 6F
不用另外再註冊一個
04/19 16:18, 6F

04/19 16:31, , 7F
喔喔!了解!
04/19 16:31, 7F
文章代碼(AID): #19wjbjVk (Programming)
文章代碼(AID): #19wjbjVk (Programming)