|
|

楼主 |
发表于 2005-12-7 20:36:00
|
显示全部楼层
Re:请问OpenGL的投影平面--
我靠,搞了半天不就是坐标变换么,modelview变换---投影变换---视口变换就可以得到3维空间某个点在屏幕上的位置.
vec4 pos=gl_ModeViewMatrix*gl_ProjectionMatrix*gl_Vertex;
这里gl_ModelViewMatrix是modelview矩阵,gl_projectionMatrix是投影矩阵,gl_vertex是顶点坐标
然后vec2 tmp=vec2(pos.x,pos.y)/pos.w
则tmp.x,tmp.y在-1到1之间
然后根据屏幕大小width和height,进行视口变换可以得到:
screenx=((tmp.x+1)/2)*width;screeny=((1-tmp.y)/2)*height;
这里假定视口函数是glViewPort(0,0,width,height)
---------------------------------------------------------------------------------------------------------
我计算出来的gl_ModelView_Matrix为单位矩阵,gl_Projection_Matrix的最后一个元素为0,
glVertex=(0,0,0,1);结果计算出的pos.w=0;
这个怎么拿来做除法? |
|