为什么我的多边形正反面不对?

神仙难救 2015-04-14 01:40:09
理论上我的画出来的正方形,看到的面应该是填充的,而不是线框的。
GLsizei windowWidth = 800, windowHeight = 600;

GLfloat xEye = 0, yEye = 2048, zEye = -2048; // eye(0,2048,-2048)
GLfloat xCenter = 0, yCenter = 0, zCenter = 0;
GLfloat xUp = 0, yUp = 1, zUp = 0;

GLfloat fovy = 45, aspect = windowWidth / windowHeight, zNear = 512, zFar = 4096;

void init()
{
glClearColor(1,1,1,0);

glMatrixMode(GL_MODELVIEW);
gluLookAt(xEye, yEye, zEye, xCenter, yCenter, zCenter, xUp, yUp, zUp);

glMatrixMode(GL_PROJECTION);
gluPerspective(fovy, aspect, zNear, zFar);
}

void displayFunc()
{
glClear(GL_COLOR_BUFFER_BIT);

glFrontFace(GL_CCW);

//Test Rectangle
glColor3f(1, 0, 0);
glPolygonMode(GL_FRONT, GL_FILL);
glPolygonMode(GL_BACK, GL_LINE);
glBegin(GL_POLYGON);
{
glVertex3f(512, 0, 512);
glVertex3f(-512, 0, 512);
glVertex3f(-512, 0, -512);
glVertex3f(512, 0, -512);
}
glEnd();

glutSwapBuffers();
glFlush();
}

但是运行出来却是
...全文
171 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-04-15
  • 打赏
  • 举报
回复
引用 9 楼 shaonanxin 的回复:
glFrontFace(GL_CCW); 逆时针绘制为正面 glPolygonMode(GL_FRONT,GL_FILL); 正面填充 glPolygonMode(GL_BACK,GL_LINE); 背面画线 绘制部分是顺时针画的,也就是画的是背面,所以出来的是线。 解决方法: 1.GL_CCW改为GL_CW; 2.改变绘制顺序
没跑出3楼划定的范围吧。
meet_fisher 2015-04-15
  • 打赏
  • 举报
回复
glFrontFace(GL_CCW); 逆时针绘制为正面 glPolygonMode(GL_FRONT,GL_FILL); 正面填充 glPolygonMode(GL_BACK,GL_LINE); 背面画线 绘制部分是顺时针画的,也就是画的是背面,所以出来的是线。 解决方法: 1.GL_CCW改为GL_CW; 2.改变绘制顺序
fly_dragon_fly 2015-04-14
  • 打赏
  • 举报
回复
glFrontFace(GL_CCW); 前面设置的逆时针,顶点序是顺时针,如果不能确定,三个顶点连成矢量作一个叉乘
赵4老师 2015-04-14
  • 打赏
  • 举报
回复
反反得正试试。 不需要钻牛角尖。
神仙难救 2015-04-14
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
求人不如求己, 别人嚼过的剩饭味道就那么好吃?
在自己想不通时,求助别人不失为一种可行的方法。 不然何苦要搭建论坛来交流呢?
神仙难救 2015-04-14
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
左手坐标系/右手坐标系? 节点顺序顺时针/逆时针? 渲染模式线框/表面? 材质类型线框/贴图? 怀疑反了,反反得正试试。
正是因为我按照标准的坐标系和顶点顺序得出了相反的结果才出来问的。 代码里也并没有涉及材质之类的东西。
赵4老师 2015-04-14
  • 打赏
  • 举报
回复
求人不如求己, 别人嚼过的剩饭味道就那么好吃?
赵4老师 2015-04-14
  • 打赏
  • 举报
回复
左手坐标系/右手坐标系? 节点顺序顺时针/逆时针? 渲染模式线框/表面? 材质类型线框/贴图? 怀疑反了,反反得正试试。
神仙难救 2015-04-14
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
搜网络教程“学OpenGL编3D游戏”。
赵老师强力推荐的这一本我已经看过了。 我现在只想单纯地寻求本帖问题的答案。
赵4老师 2015-04-14
  • 打赏
  • 举报
回复
搜网络教程“学OpenGL编3D游戏”。

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧