计算机图像学 | OpenGL编程
文章平均质量分 81
沈子恒
计算机视觉 自然语言处理 推荐系统 架构设计
展开
-
OCR-PIL.Image与Base64 String的互相转换
1. 基本环境py2: python2.7.13 py3: python3.6.2 PIL: pip(2/3) install pillow, PIL库已不再维护,而pillow是PIL的一个分支,如今已超越PIL2.Convert PIL.Image to Base64 Stringpy2 :先使用CStringIO.StringIO把图片内容转为二进制流,再进行base64编码...原创 2019-11-14 10:08:31 · 2477 阅读 · 0 评论 -
欧拉角与四元数
1.欧拉角欧拉角是表达旋转的最简单的一种方式,形式上它是一个三维向量,其值分别代表物体绕坐标系三个轴(x,y,z轴)的旋转角度。 参考坐标系:第一张:pitch,航空领域表示飞机的俯仰角。绕X轴转动结果;第二张:yaw,表示飞机的偏航角,绕Y轴转动结果;第三张:roll,表示飞机的翻滚角,绕Z轴转动结果。2.四元数四元数原创 2017-09-09 11:25:11 · 3445 阅读 · 2 评论 -
OpenGL编程指南14:混合半透明Blend
1.混合2DBlend 混合是将源色和目标色以某种方式混合生成特效的技术。混合常用来绘制透明或半透明的物体。在混合中起关键作用的α值实际上是将源色和目标色按给定比率进行混合,以达到不同程度的透明。α值为0则完全透明,α值为1则完全不透明。混合操作只能在RGBA模式下进行,颜色索引模式下无法指定α值。物体的绘制顺序会影响到OpenGL的混合处理。glEnable( GL_BLEN原创 2017-05-08 16:27:22 · 1522 阅读 · 0 评论 -
VC++下的OpenGL编程
1.值得记住的约定一般情况下,VC++下进行OpenGL应用程序开发步骤如下:1.通过PIXELFORMATDESCRIPTOR结构设置备注描述表DC的像素格式属性。2.创建渲染描述表RC,并与设备描述表DC建立联系。3.使用OpenGL作图4.释放所占用的资源,包括解除DC和RC的联系、删除RC及其关联的DC。在这里,应该先为应用程序添加所需的变量和函数,对相关变量进原创 2017-04-14 00:13:46 · 1562 阅读 · 0 评论 -
OpenGL编程指南9:裁剪平面+glPushMatrix和glPopMatrix矩阵栈顶操作
1.任意裁剪平面Opengl中,除了视景体的立方体裁剪平面之外,另外还可以额外指定多达6个裁剪平面,对视景体做进一步限制。每一个平面都由平面公式定义:Ax+By+Cz+D = 0.裁剪平面的指定通过函数:glClipPlane(GLenum plane,const GLdouble* equation)确定。plane可能值为:GL_CLIP_PLANE0--GL_CLIP_PLANE6。原创 2017-03-27 10:55:33 · 1638 阅读 · 0 评论 -
OpenGL编程指南6:顶点数组
1.前言前面的例子中,我们可以看到,OpenGL需要进行大量的函数调用才能完成对几何图元的渲染。绘制一个20条边的多边形至少需要22个函数调用。首先调用一个glBegin(),然后为每个顶点调用一次函数,最后调用1次glEnd().如果我们还要添加其他的额外信息(如多边形边界标志或表面法线),在每个顶点上还要增加函数调用。这可能会成倍地增加渲染几何物体所需要的函数调用数量。在很多系统中,函原创 2017-03-16 15:48:13 · 1884 阅读 · 0 评论 -
OpenGL编程指南5:学习绘制不同风格的曲线
1.不同风格曲线绘制#include //宏定义;当定义的宏不能用一行表达完整时,可以用"\"表示下一行继续#define drawOneLine(x1,y1,x2,y2) \ glBegin(GL_LINES);\ glVertex2f((x1),(y1));\ glVertex2f((x2),(y2));\ glEnd();void init(void){原创 2017-03-14 16:15:03 · 1294 阅读 · 0 评论 -
OpenGL编程指南13:光源移动
模型视图变换移动光源#include static int spin = 0;void init(void){ glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_SMOOTH); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_DEPTH_TEST);}v原创 2017-03-30 15:26:25 · 2193 阅读 · 0 评论 -
OpenGL编程指南12:光照_渲染真实球体
1.场景中添加光照的步骤1.定义每个物体的每个顶点的法线向量。这个法向量决定了物体相对于光源的方向。2.创建和选择一个或多个光照,并设置他们的位置。3.创建和选择一种光照模型,它定义了全局环境光的层析以及观察点的有效位置(便于进行光照计算)。4.定义场景中物体的材料属性。2.光照球体及分析#include void init(void){//光照参数初始化原创 2017-03-30 10:52:40 · 4181 阅读 · 0 评论 -
OpenGL编程指南8:模型组合变换
1.代码#include void init(void){ glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_FLAT);}void draw_triangle(void){ glBegin(GL_LINE_LOOP); glVertex2f(0.0, 25.0); glVertex2f(25.0, -25.原创 2017-03-23 11:24:53 · 1291 阅读 · 0 评论 -
OpenGL编程指南4:双缓冲实现运行
1.前言绘制一个旋转的方块,主要为了说明glutSwapBuffers()函数的用法。同时也为了学习如何使用GLUT控制输入设备,并打开或关闭空闲处理函数。2.OpenGL编程及程序剖析/**************************************************************** *Rendering a rotating squa原创 2017-03-13 11:30:50 · 4921 阅读 · 0 评论 -
OpenGL编程指南3:GLUT:OpenGL使用工具库
1.前言我们知道的,OpenGL包含了很多的渲染函数,这些函数的设计目的就是独立与任何窗口系统或操作系统。因此,他并没有包含打开窗口或者从键盘或鼠标读取事件的函数。遗憾的是,如果连最基本的打开窗口的功能都没有,那么编写一个完成的图形程序简直就是天方夜谭!GLUT库正可以弥补这个缺陷。该库可以简化打开窗口、检测输入等任务。此外,由于OpenGL函数仅限于生成简单的几何图元(点、直原创 2017-03-12 21:26:25 · 2004 阅读 · 0 评论 -
OpenGL编程指南2:环境搭配与第一个实例剖析
1.环境配置1.1 OpenGL与Windows操作系统有什么关系? OpenGL是一种应用程序编程接口(API),也是一种可以对图形硬件设备特性进行访问的软件库。因而事实上,OpenGL其实与显卡的关系更密切一些,而对于支持OpenGL的显卡才能使用OpenGL库。由于OpenGL与显卡(硬件)有关,因而也与操作系统有关,所以Windows是自带OpenGL的,因此Windo原创 2017-03-12 14:37:43 · 2787 阅读 · 0 评论 -
OpenGL编程指南11:组合运动示例2—创建机器人手臂模型
1.源代码:#include static int shoulder = 0, elbow = 0;void init(void){ glClearColor(0.0,0.0,1.0,0.0); glShadeModel(GL_FLAT);}void display(void){ glClear(GL_COLOR_BUFFER_BIT); glColor3f(1原创 2017-03-28 15:46:45 · 2499 阅读 · 0 评论 -
OpenGL编程指南10:组合运动示例1—创建太阳系模型
1.程序代码:#include static int year =0, day =0;void init(void){ glClearColor(0.0,0.0,1.0,0.0); //清除背景底色 glShadeModel(GL_FLAT);}void display(void){ glClear(GL_COLOR_BUFFER_BIT); glColor3f原创 2017-03-28 14:52:49 · 1552 阅读 · 0 评论 -
OpenGL编程指南7:视图-
1.前言计算机图形学的要点就是创建三维物体的二维图像(图像必须是二维的,因为他是在平面的屏幕上显示的)。但是,当我们决定怎样在屏幕上绘图时,必须使用三维坐标的方式考虑。为了把一个物体的三维坐标变成屏幕上的像素坐标,需要完成以下三个步骤:变换包括模型、视图和投影操作,这是通过矩阵乘法表示的。这些操作包括:旋转、移动、缩放、反射、正投影和透视投影等。一般情况下,在绘制场景时,需原创 2017-03-20 12:06:15 · 1029 阅读 · 0 评论 -
OpenGL编程指南1:OpenGL简介
1.什么是OpenGL?OpenGL对场景中的图像进行渲染时所执行的主要图形操作:根据几何图元创建形状,从而建立物体的数字描述。(OpenGL把点、直线、多边形和位图作为基本的图元)。在三维空间中排列物体,并选择观察复合场景的有利视角。计算所有物体的颜色。颜色可以有应用程序明确指定,可以根据特定的光照条件确定,也可以通过把纹理贴到物体的表面而获得,或者是上述三种的混合产物。原创 2017-02-26 21:02:45 · 1061 阅读 · 0 评论 -
无法解析的外部符号 __imp____glutInitWithExit@12
1.问题描述今天运行程序碰到链接异常如下:1>test.obj : error LNK2019: 无法解析的外部符号 __imp____glutInitWithExit@12,该符号在函数 _glutInit_ATEXIT_HACK@8 中被引用1>test.obj : error LNK2019: 无法解析的外部符号 __imp____glutCreateWindowWithEx原创 2017-02-25 21:14:20 · 4172 阅读 · 0 评论 -
VS2010 + OpenGL 及 第一个实例
1.OpenGL开发环境简介基于OpenGL标准开发的应用程序运行时需有动态链接库OpenGL32.DLL、Glu32.DLL,这两个文件在安装Windows NT时已自动装载到C:\WINDOWS\SYSTEM32目录下(这里假定用户将Windows NT安装在C盘上)。OpenGL的图形库函数封装在动态链接库OpenGL32.DLL中,开发基于OpenGL的应用程序,必须先了解OpenGL原创 2017-02-20 19:32:03 · 1958 阅读 · 0 评论