看板 GameDesign 關於我們 聯絡資訊
※ 引述《Achillean (山豬元年革命志士)》之銘言: : 請問一下 : 對polygon作patten有glPolygonStipple : 對線有glLineStipple : 有沒有對全畫面影像作patten的函式? : 不然就是要把畫面read到buffer作,在write回去 : 感覺這樣作效能會降低很多 : 謝謝 問題: why不是從左下-1.-1貼齊? 結果: http://tinyurl.com/3yowgm4 程式: void display(void) //繪圖 - new { //Left Eye--------------------------------------- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt( -fEye_D/2,fEye_Y,fEye_Z, fFocus_X, fFocus_Y, fFocus_Z, 0,1,0); //Draw Object drawObjects(); glFlush(); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glReadPixels( 0,0,nWinWidth,nWinHeight, GL_RGB,GL_UNSIGNED_BYTE,pRGB_L); //Right Eye--------------------------------------- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt( fEye_D/2,fEye_Y,fEye_Z, fFocus_X, fFocus_Y, fFocus_Z, 0,1,0); //Draw Object drawObjects(); glFlush(); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glReadPixels( 0,0,nWinWidth,nWinHeight, GL_RGB,GL_UNSIGNED_BYTE,pRGB_R); //3D Imagbe--------------------------------------- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); LR2Interval(); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt( 0,fEye_Y,fEye_Z, fFocus_X, fFocus_Y, fFocus_Z, 0,1,0); glRasterPos2f(-1.0,-1.0); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glDrawPixels(nWinWidth,nWinHeight, GL_RGB, GL_UNSIGNED_BYTE, pRGB_3D); glutSwapBuffers(); } 問題: Q0: why圖是貼歪的,沒有對齊視窗左下角? Q1: glFlush()有其必要性?目前看不出差異 Q2:glPixelStorei函式似乎沒發揮作用 當視窗resize非四倍數時候,貼圖會整各歪斜錯位 Q3:承Q2,glPixelStorei是否呼叫一次即可,是否會放在init相關函式設定 Q4:drawObjects()是畫球、畫方塊等等程式碼 是否必須要呼叫兩次分別for Left and Right Eye繪圖 謝謝,小弟是初學,抱著紅皮書在k 語無倫次,誠惶誠恐 還希前輩不吝賜教 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.40.135 ※ 編輯: Achillean 來自: 114.32.40.135 (08/19 11:11)
NDark:Q3 glPixelStorei 是 . 只要你沒有不斷改變設定. 08/19 20:05
NDark:Q2 glPixelStorei 用來設定 資料的排列 tinyurl.com/2gyqv9h 08/19 20:06
NDark:Q1 glFlush 是用來強制gl馬上執行命令.看不出來不同是正常的 08/19 20:08
NDark:Q4 清過之後當然要重畫.更何況你是畫完之後再取回資料 08/19 20:09
NDark:可以試看看 不用 glRasterPos2f ,會差多少.就知道 -1 是多少 08/19 20:15