OpenGL入门学习笔记02
来源:互联网 发布:合同软件 编辑:程序博客网 时间:2024/06/01 09:00
多边形
1,多边形的两面和绘制
这是一个三维的概念,一个多边形有正面和反面,我们可以设置正面和反面的绘制方式
glPolygonMode(GL_FRONT,GL_POINT) 正面,只绘制顶点
GL_BACK 反面 GL_FRONT_AND_BACK正面和反面
GL_FILL填充的绘制方式 GL_LINE绘制边缘的线
2,反转
多边形有正面和反面,比如默认逆时针绘制的为正面,在一张透明纸上逆时针画一个矩形,那么面对我们的画的这个面就是正面,反过来的那个面就是反面,我们可以改变正面和反面的概念,把顺时针的变成正面。
glFrontFace(GL_CCW) 逆时针正面,CCW即counterclockwise
glFrontFace(GL_CW) 顺时针正面,CW即clockwise
3,剔除多边形表面
glEnable(GL_CULL_FACE) 开启剔除 glDisable(GL_CULL_FACE)关闭剔除
glCullFace(GL_FRONT) 剔除正面 GL_BACK反面 GL_FRONT_AND_BACK 正面和反面
4,镂空多边形
glEnable(GL_POLYGON_STIPPLE) 开启镂空
glPolygonStipple(Mask) Mask是一个128指向128字节的空间,表示32*32的矩形该如何镂空,顺序是从左下开始,1表示不镂空,0表示镂空。
void myDisplay(void)
{
GLuByte* Mask[128] = {
0x00,0x11,0x00,0x11,
//一共128个值
0x00,0x11,0x00,0x11,
};
glClear(GL_COLOR_BUFFER_BIT);
glEnable(GL_POLYGON_STIPPLE);
glPolygonStipple(Mask);
glRectf(-0.5f,-0.5f,0.5f,0.5f);
glFlush();
}
Mask也可以用画图工具,编辑一个32*32的图片,然后保存为单色位图Mask.bmp,然后读出里面的数据再使用就可以了
#include <stdio.h>
File* fb = fopen("Mask.bmp","rb");
if (!fb)
exit(0);
if (fseek(fb,-(int)sizeof(Mask),SEEK_END))
exit(0);
if (!fread(Mask,sizeof(Mask),1,fb))
exit(0);
学习过程中还了解到了一个新的东西 “莫比乌斯带” 只有一个面,感觉很神奇,有兴趣自己去百度看看,过山车就用到这个原理来节省了空间,个人理解。
- OpenGL入门学习笔记02
- OpenGL入门学习笔记一
- OpenGL入门学习笔记01
- OpenGl 学习笔记 02
- OpenGL入门学习笔记(一)
- OpenGL入门学习笔记(一)
- OpenGL入门学习笔记(二)
- OpenGL入门学习笔记(三)
- OpenGL入门笔记
- openGl代码入门笔记
- OpenGL入门笔记
- OpenGL入门学习[十一 02]OPENGL的纹理续
- OpenGL入门学习
- OpenGL入门学习
- OpenGL入门学习
- OpenGL入门学习【转载】
- OpenGL入门学习二
- OpenGL 入门学习
- Mybatis中oracle、mysql、db2、sql server的like模糊查询 及Oracle对时间得处理
- ThinkPHP中where()方法的使用
- LeetCode 410. Split Array Largest Sum
- C# Excel数据导入和导出简单方案
- 通过jdbc实现Oracle备份到Mysql
- OpenGL入门学习笔记02
- Python自动encoding
- windows上的tail指令使用
- Servlet 访问WEB资源的方式
- static
- Hadoop
- 主成分分析(PCA)原理总结
- canvas绘图基础
- Android SurfaceView 绘图覆盖刷新及脏矩形刷新方法