OpenGL从1.0开始--GLUT菜单

我们现在来学习如何利用GLUT添加弹出式菜单,直接看示例:#include <Gl/glut.h> #include <stdio.h> const GLint pickBuffsize = 32; GLsizei winWidth = 400, winHeight = 4...

2017-11-28 20:34:53

阅读数:195

评论数:0

OpenGL从1.0开始--拾取操作

基本上,拾取操作是通过一个修正观察体来实现的,而这个观察体根据一个指定的拾取窗口形成。我们队一个场景内的对象用整数进行标识。所有与观察体相交的对象的标识符都保存在一个拾取缓冲区数组中。因此,为了使用OpenGL的拾取功能,我们必须在程序中包含以下过程: 1.创建并显示一个场景 2.拾取一个屏幕...

2017-11-28 17:31:04

阅读数:127

评论数:0

OpenGL从1.0开始--交互式输入设备函数

在OpenGL程序中,交互设备输入有GLUT中的子程序处理,GLUT有从标准输入设备(包括鼠标、键盘、数据板、空间球、按钮盒和拨号盘)接受输入的函数。我们来看一个示例。#include <Gl/glut.h> GLsizei winWidth = 400, winHeight = 30...

2017-11-28 14:42:00

阅读数:383

评论数:0

OpenGL从1.0开始--纹理与表面细节

要让绘制对象更加逼真,除了需要添加光照外,另一个重要的因素就是纹理了。,我们先看一个简单的示例。 #include <Gl/glut.h> void init() { glClearColor(1.0, 1.0, 1.0, 0.0); glMatrixMode(GL_...

2017-11-27 20:51:44

阅读数:167

评论数:0

OpenGL从1.0开始--光照和表面绘制函数

对场景的对象进行透视投影,然后再可见面上产生自然光照效果,可以实现场景的真实感显示。多说无益,看一个示例是最直接的方法(示例代码来源于http://blog.csdn.net/timidsmile/article/details/7017197)。 #include <gl/glut.h&...

2017-11-27 16:05:29

阅读数:219

评论数:0

OpenGL从1.0开始--绘制二次曲面

类似规则多面体,GLUT可以绘制球面或其他三维的二次曲面对象,甚至能绘制一个茶壶。同样的这些函数分为两个版本:一个生产线框图,一个把曲面显示为一组填充多边形面片。这两个版本都是将曲面细分成小平面以逼近二次曲面。 主要代码和上一篇相同,我们来看看核心代码段。glutWireSphere(r,nLo...

2017-11-22 20:18:54

阅读数:243

评论数:0

OpenGL从1.0开始--绘制规则多面体

我们之前已经讲解了很多二维图元的绘制,终于我们现在有了基础来绘制三维图元了。 幸运的是,某些标准的形体–五种规则多面体–由GLUT库中的子程序预先定义。这些多面体也称为柏拉图式实体,由它的每一面是一个单位规则多边形来标识。 GLUT中总共有10个函数用来生成这些实体 glutWireTe...

2017-11-22 18:38:36

阅读数:566

评论数:0

OpenGL从1.0开始--计算机动画

在计算机图形学中生成计算机动画的技术有很多,我们现在不想过多地涉猎其中,只简单使用双缓存技术来实现动画效果。 在光栅系统中使用两个刷新缓存生成实时动画的技术称为双缓存。初始状态时,在第一个缓存中创建动画的一帧;然后,当用该缓存中的帧刷新屏幕时,在第二个缓存中创建下一帧;下一帧创建完成后,互换两个...

2017-11-22 16:48:53

阅读数:152

评论数:0

OpenGL从1.0开始--三维观察

我们这一篇文章将二维世界扩展到三维,通过上一篇文章我们已经明白了,几何变换和观察变换本质是一样的,所以暂且忽视三维几何变换,直接进入三维观察的世界。 三维观察流水线包括五个步骤:建模变换、观察变换、投影变换、规范化变换和裁剪、视口变换。物体从模型坐标系转换到世界坐标系的过程叫做建模变换,观察变换...

2017-11-17 16:57:18

阅读数:454

评论数:0

OpenGL从1.0开始--二维观察

正本清源,这一节我们重新来给大家解释下OpenGL如何实现图元在屏幕上的显示功能。#include <Gl/glut.h> class wcPt2D { public: GLfloat x, y; }; void init() { glClearColor(0.0, 0...

2017-11-16 17:43:37

阅读数:263

评论数:0

OpenGL从1.0开始--二维几何变换

在我们在做图形显示时,实际上我们不是对每一个图形都去从头开始绘制,对于形状相同或相似的图案,我们可以运用几何变换函数提高效率。我们看一看一个简单的示例。#include <Gl/glut.h> void init() { glClearColor(0.0, 0.0, 0.0, ...

2017-11-14 21:35:30

阅读数:175

评论数:0

OpenGL从1.0开始--填充区属性

和点属性和线属性一样,OpenGL也提供面的属性,我们称之为填充区属性。 简明扼要,我们先来看一个示例(代码借鉴于http://www.xuebuyuan.com/2205027.html) #include <windows.h> #include <GL/gl.h>...

2017-11-14 20:45:38

阅读数:355

评论数:0

OpenGL从1.0开始--点和线的属性

上一节我们已经讲到了颜色属性,颜色属性是属性的一种,这一节我们从属性对象角度来看看OpenGL如何处理属性信息。 一、点的属性 一般情况下,我们可以设定点的两个属性:颜色和大小。我们看看下面这个示例,一切不言自明。 #include void display(void) { g...

2017-11-07 22:05:32

阅读数:161

评论数:0

OpenGL从1.0开始--颜色调和

一、图元属性任何影响图元显示方法的参数一般称为属性参数。OpenGL将属性选择加入图形软件包的方法是提供一张系统当前属性值表,并使用包含在图形软件包中的独立函数来为属性表设置当前值。维护属性和其他参数当前值表的图形系统称为状态系统或状态机。输出图元的属性和当前帧缓存位置等其他参数称为状态变量或状态...

2017-11-03 21:10:26

阅读数:815

评论数:0

OpenGL从1.0开始--曲线图形

这一些我们继续来实现一些有趣的高级图形,例如蜗形线limacon、心形线cardioid、三叶草threeLeaf、四叶草fourLeaf和螺旋线spiral等漂亮的曲线图形,如下面这些图形所示。 #include <gl/glut.h> #include <st...

2017-11-01 17:01:36

阅读数:315

评论数:0

OpenGL从1.0开始--绘制常用统计图

通过前面几节的学习,我们已经有能力实现一些高级的图形绘制功能。这一节我们给大家示例折线图、直方图和饼状图的绘制程序。 我们先看看要实现的效果。 下面我们默认大家已经掌握了前面的知识,并会把讲解的重点放在高级功能上。#include <gl/glut.h>GLsizei winW...

2017-11-01 16:00:48

阅读数:574

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭