OpenGL课堂随记

2010年12月21日OpenGL课堂笔记
  第二章图形绘制
GL_POLYGON没有S,虚线的使能和模式,
面的绘制:
012,123,345初次绘制三角形,四面体内部不用画,使用“绕法”进行判断内外,这个和法向量什么关系?面的填充分反正操作:从正面看是面,反面看的wire。
属于颜色模式,flat(平面模式)模式,即情况利用当前的颜色绘制,而smooth模式,使用颜色差值。(画三角形出现颜色渐变的原因)
纠正观念,面得正反面是有差别。
“glPolygonMode(Glenum face,Glenum mode);
其中,参数face指定多边形的哪一面受模式改变的影响——GL_FRONT,GL_BACK或GL_FRONT_AND_BACK。参数mode用于指定新的绘图模式。
  GL_FILL是默认值,生成填充的多边形;
  GL_LINE生成多边形的轮廓;而GL_POINT只画出顶点。
  GL_LINE和GL_POINT绘制的点和线受glEdgeFlag所设置边缘标记的影响。”
程序分析:
菜单建立不走
创建一个子菜单:
句柄nModeMenuglut=glutCreatMenue(Processmenue);
添加菜单项,有几个菜单项就调用几次,考虑使用队列
glutAddMenueEntry("string",传递给回调函数值);//原理是利用返回值附属于当前句柄
增加一个子菜单
主函数中创建主菜单
nMainmenu
glutAddSubMenue(string,子菜单句柄)
主菜单也有自己的菜单项。
将菜单与动作相连
glutAttachMenu(mask);//GLUT_RIGHT_BUTTON
设备初始化
进入循环
重点内容:
chagesize将剪切后的模型显示到设备什么位置
{
glViewport(0,0,w,h);制定绘图位置glutortho大地坐标系下那部分要显示
glutMatrix
}
 
SetupRC这个名潮!
glRotate(旋转度数,旋转轴)
if(bWinding)//BOOL
glFrontFace(GL_CW);制定怎么绕时是正面,因为点的位置是固定的,走点的顺序:123,还是321确定的方向是正
else
glFrontFace(GL_CCW);
glBegin(GL_TRAINGLES)//程序运行时顺时针为正,
glColor3f();
glVertex();
void ProcessMenue(传递的值)
{
case 1:
glPolygon(GL_BACK,GL_POINT)正面点模式,与glFrontFace配合使用
break;
case2:
glShadeMode(GL_FLAT)阴影的显示模式
}
RenderSence这个名潮
重要概念:深度
问题的提出:覆盖,正四面体各个面的颜色填充
测试:点到观察者的距离,即z坐标
1.启动深度测试
2.深度缓存初始化,GL_DEPTH_BUFFER_BIT
问题:不要每个点都比较,看不到的面进行剔除,就直接除掉该面(层)了
问题:正面的问题,OpenGL画点的顺序是固定的吗?
问题:glut实质??
其实所有面都被堆在一起了,点的不同顺序的组合就形成了面,实质上还是二维(产生深度,剔除等概念就是因为这点,设备是二维的,骗人的眼睛而已)
第四个面你画的时候就掌握以下顺序(千万注意每个面都有两层,面的方向就是让你清楚你能看到哪层,而OpenGL得所有操作都是对层的)

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值