作者Achillean (山豬元年革命志士)
看板GameDesign
標題Re: [請益] Opengl對全畫面作stipple處理的函式
時間Thu Aug 19 11:07:25 2010
※ 引述《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