OpenGL2.0学习笔记【四】——(第二章)点线矩形

(1)void WINAPI glPointSize(GLfloat size);

作用:指定栅格化点的直径,也就是指定点的大小。

注意:1、要在glBegin前,或者再画东西之前。
           2、glBegin的参数一定要是GL_POINTS或GL_POINT,GL_LINE是不行的。

           3、使用 1.0 以外的点大小有不同的效果取决于是否启用了点消除锯齿。 通过调用 glEnable 和 glDisable GL_POINT_SMOOTH 参数控制点消除锯齿。

#include <windows.h>   //这个必不可少   
#include <glut.h>  

void Display( void );
  
int main( int argc, char** argv )
{
    glutInit( &argc, argv );//初始化GULT库
	glutCreateWindow( "Rect_Draw" );//创建一个顶级窗口,窗口名Rect_Draw
	glutDisplayFunc( Display );//用于注册一个绘图函数,这样操作系统在必要时刻就会调用这个显示函数对窗体进行重新绘制操作。
	glutMainLoop();//进入GLUT事件处理循环。在一个GLUT程序中,这个例程被调用一次 。一旦被调用,这个程序将永远不会返回 。它将调用必要的任何已注册的回调。
}

void Display( void )
{
	glClear( GL_COLOR_BUFFER_BIT );//窗口清除

	glPointSize( 15.0 );//设置点的大小

	glBegin( GL_POINTS );//

	glVertex2f( -0.5, -0.5 );//
	glVertex2f( -0.5, 0.5 );
	glVertex2f( 0.5, 0.5 );
	glVertex2f( 0.5, -0.5 );

	glEnd();

	glFlush();//强制刷新缓冲
}
(2)void glLineWidth( GLfloat width )

作用:设置显示线宽,单位为像素,默认值是1.0

(3)void glLineStipple( GLint factor, GLushort pattern )

作用:指定线的点画绘制模板。

参数:

      factor指定点画绘制模板中每个二进制位的重复次数。如参数factor是3,则模板中相应的二进制位置重复使用3次后才使用下一位。参数factor的取值范围是[1,256],默认为1。

      pattern指定一个16位整数。他的二进制位模板决定在线段光栅化时线段中哪个片断将被绘制出。首先使用零位。模板的默认值全是1。在这个二进制模板中表示不画点,1表示画点。

注意:绘制点划线时,首先必须使用glLineStipple()函数定义线型,然后用glEnable()函数使该线型生效

(4)void glEnable(GLenum cap);

作用:启用各种功能。具体功能由参数决定。与glDisable相对应。glDisable用以关闭各项功能。

cap参数表

GL_ALPHA_TEST

根据函数glAlphaFunc的条件要求来决定图形透明的层度是否显示。具体参见glAlphaFunc 
GL_AUTO_NORMAL

执行后,图形能把光反射到各个方向 
GL_BLEND

启用颜色混合。例如实现半透明效果 
GL_CLIP_PLANE0 ~ GL_CLIP_PLANE5 

根据函数glClipPlane的条件要求启用图形切割管道。这里指六种缓存管道 
GL_COLOR_LOGIC_OP

启用每一像素的色彩为位逻辑运算 
GL_COLOR_MATERIAL 

执行后,图形(材料)将根据光线的照耀进行反射。反射要求由函数glColorMaterial进行设定。 
GL_CULL_FACE

根据函数glCullFace要求启用隐藏图形材料的面。 
GL_DEPTH_TEST

启用深度测试。根据坐标的远近自动隐藏被遮住的图形(材料) 
GL_DITHER 

启用抖动 
GL_FOG 

雾化效果例如距离越远越模糊 
GL_INDEX_LOGIC_OP

逻辑操作 
GL_LIGHT0 ~ GL_LIGHT7 

启用0号灯到7号灯(光源)光源要求由函数glLight函数来完成 
GL_LIGHTING 

启用灯源 
GL_LINE_SMOOTH 

执行后,过虑线段的锯齿 
GL_LINE_STIPPLE 

执行后,画虚线 
GL_LOGIC_OP 

逻辑操作 
GL_MAP1_COLOR_4

根据函数Map1对贝赛尔曲线的设置,启用glEvalCoord1,glEvalMesh1,glEvalPoint1生成RGBA曲线 
GL_MAP1_INDEX

根据函数Map1对贝赛尔曲线的设置,启用glEvalCoord1,glEvalMesh1,glEvalPoint1生成颜色索引曲线 
GL_MAP1_NORMAL 

根据函数Map1对贝赛尔曲线的设置,启用glEvalCoord1,glEvalMesh1,glEvalPoint1生成法线 
GL_MAP1_TEXTURE_COORD_1 

根据函数Map1对贝赛尔曲线的设置,启用glEvalCoord1,glEvalMesh1,glEvalPoint1生成文理坐标 
GL_MAP1_TEXTURE_COORD_2 

根据函数Map1对贝赛尔曲线的设置,启用glEvalCoord1,glEvalMesh1,glEvalPoint1生成文理坐标 
GL_MAP1_TEXTURE_COORD_3 

根据函数Map1对贝赛尔曲线的设置,启用glEvalCoord1,glEvalMesh1,glEvalPoint1生成文理坐标 
GL_MAP1_TEXTURE_COORD_4 

根据函数Map1对贝赛尔曲线的设置,启用glEvalCoord1,glEvalMesh1,glEvalPoint1生成文理坐标 
GL_MAP1_VERTEX_3 

根据函数Map1对贝赛尔曲线的设置,启用glEvalCoord1,glEvalMesh1,glEvalPoint1在三维空间里生成曲线 
GL_MAP1_VERTEX_4 

根据函数Map1对贝赛尔曲线的设置,启用glEvalCoord1,glEvalMesh1,glEvalPoint1在四维空间里生成法线 
GL_MAP2_COLOR_4 

根据函数Map2对贝赛尔曲线的设置,启用glEvalCoord2,glEvalMesh2,glEvalPoint2生成RGBA曲线 
GL_MAP2_INDEX 

根据函数Map2对贝赛尔曲线的设置,启用glEvalCoord2,glEvalMesh2,glEvalPoint2生成颜色索引 
GL_MAP2_NORMAL 

根据函数Map2对贝赛尔曲线的设置,启用glEvalCoord2,glEvalMesh2,glEvalPoint2生成法线 
GL_MAP2_TEXTURE_COORD_1 

根据函数Map2对贝赛尔曲线的设置,启用glEvalCoord2,glEvalMesh2,glEvalPoint2生成纹理坐标 
GL_MAP2_TEXTURE_COORD_2 

根据函数Map2对贝赛尔曲线的设置,启用glEvalCoord2,glEvalMesh2,glEvalPoint2生成纹理坐标 
GL_MAP2_TEXTURE_COORD_3 

根据函数Map2对贝赛尔曲线的设置,启用glEvalCoord2,glEvalMesh2,glEvalPoint2生成纹理坐标 
GL_MAP2_TEXTURE_COORD_4 

根据函数Map2对贝赛尔曲线的设置,启用glEvalCoord2,glEvalMesh2,glEvalPoint2生成纹理坐标 
GL_MAP2_VERTEX_3 

根据函数Map2对贝赛尔曲线的设置,启用glEvalCoord2,glEvalMesh2,glEvalPoint2在三维空间里生成曲线 

GL_MAP2_VERTEX_4 

根据函数Map2对贝赛尔曲线的设置,启用glEvalCoord2,glEvalMesh2,glEvalPoint2在三维空间里生成曲线 
GL_NORMALIZE 

根据函数glNormal的设置条件,启用法向量 
GL_POINT_SMOOTH 

执行后,过虑线点的锯齿 
GL_POLYGON_OFFSET_FILL 

根据函数glPolygonOffset的设置,启用面的深度偏移 
GL_POLYGON_OFFSET_LINE 

根据函数glPolygonOffset的设置,启用线的深度偏移 
GL_POLYGON_OFFSET_POINT 

根据函数glPolygonOffset的设置,启用点的深度偏移 
GL_POLYGON_SMOOTH 

过虑图形(多边形)的锯齿 
GL_POLYGON_STIPPLE 

执行后,多边形为矢量画图 
GL_SCISSOR_TEST 

根据函数glScissor设置,启用图形剪切 
GL_STENCIL_TEST 

开启使用模板测试并且更新模版缓存。参见glStencilFunc和glStencilOp. 
GL_TEXTURE_1D 

启用一维文理 
GL_TEXTURE_2D 

启用二维文理 
GL_TEXTURE_GEN_Q 

根据函数glTexGen,启用纹理处理 
GL_TEXTURE_GEN_R 

根据函数glTexGen,启用纹理处理 
GL_TEXTURE_GEN_S 

根据函数glTexGen,启用纹理处理 
GL_TEXTURE_GEN_T 

根据函数glTexGen,启用纹理处理 

(5)void glViewport(GLint x,GLint y,GLsizei width,GLsizei height)

参数:

X,Y:以像素为单位,指定了视口的左下角(在第一象限内,以(0,0)为原点的)位置。
width,height:表示这个视口矩形的宽度和高度,根据窗口的实时变化重绘窗口







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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值