OpenGL 文字
“OpenGL 文字”相关的资料有哪些?“OpenGL 文字”相关的范文有哪些?怎么写?下面是小编为您精心整理的“OpenGL 文字”相关范文大全或资料大全,欢迎大家分享。
第七章opengl文字显示
OpenGL文字显示
(一)显示英文
OpenGL并没有直接提供显示文字的功能,并且,OpenGL也没有自带专门的字库。因此,要显示文字,就必须依赖操作系统所提供的功能了。
各种流行的图形操作系统,例如Windows系统和Linux系统,都提供了一些功能,以便能够在OpenGL程序中方便的显示文字。
最常见的方法就是,我们给出一个字符,给出一个显示列表编号,然后操作系统由把绘制这个字符的OpenGL命令装到指定的显示列表中。当需要绘制字符的时候,我们只需要调用这个显示列表即可。假如我们要显示的文字全部是ASCII字符,则总共只有0到127这128种可能,因此可以预先把所有的字符分别装到对应的显示列表中,然后在需要时调用这些显示列表。
Windows系统中,可以使用wglUseFontBitmaps函数来批量的产生显示字符用的显示列表。函数有四个参数:
第一个参数是HDC,这是Windows GDI的里的东西,调用wglGetCurrentDC函数,就可以得到一个HDC了。
第二个参数表示第一个要产生的字符,因为我们要产生0到127的字符的显示列表,所以这里填0。
第三个参数表示要产生字符的总个数,因为我们要产生0到127的字符的显示列表,总
第七章opengl文字显示
OpenGL文字显示
(一)显示英文
OpenGL并没有直接提供显示文字的功能,并且,OpenGL也没有自带专门的字库。因此,要显示文字,就必须依赖操作系统所提供的功能了。
各种流行的图形操作系统,例如Windows系统和Linux系统,都提供了一些功能,以便能够在OpenGL程序中方便的显示文字。
最常见的方法就是,我们给出一个字符,给出一个显示列表编号,然后操作系统由把绘制这个字符的OpenGL命令装到指定的显示列表中。当需要绘制字符的时候,我们只需要调用这个显示列表即可。假如我们要显示的文字全部是ASCII字符,则总共只有0到127这128种可能,因此可以预先把所有的字符分别装到对应的显示列表中,然后在需要时调用这些显示列表。
Windows系统中,可以使用wglUseFontBitmaps函数来批量的产生显示字符用的显示列表。函数有四个参数:
第一个参数是HDC,这是Windows GDI的里的东西,调用wglGetCurrentDC函数,就可以得到一个HDC了。
第二个参数表示第一个要产生的字符,因为我们要产生0到127的字符的显示列表,所以这里填0。
第三个参数表示要产生字符的总个数,因为我们要产生0到127的字符的显示列表,总
opengl笔记
转:OpenGL基本概念入门1——OpenGL 工作机制
2009-05-02 22:40
1 OpenGL中3D物体的表示
在3D空间中,场景是物体或模型的集合。在3D图形渲染中,所有的物体都是由三角形构成的这是因为一个三角形可以表示一个平面,而3D物体就是由一个或多个平面构成的。比如下图表示一个非常复杂的3D地形,它门也不过是由许许多多三角形表示的。
渲染后的地形面貌 复杂的地形也是由三角形构成的 (图片来自 本站 Terrian Editor)
因此,在OpenGL中,我们只要指定一个或多个三角形,就可以表示任意3D物体。那么如何指定角形呢?OpenGL提供三种指定三角形的方法:即单个三角形、三角条形和三角扇形。
指定单个三角形。这是最简单,最直接的方法。即调用特定的OpenGL函数,传入三个顶点坐标指定一个三角形。如下图: 传入三个顶点(V1,V2,V3),指定一个三角形 三角条形。这种方式适合于同时绘制多个三角形,且这些三角形之间至少存在一条公共边。一三角条形是在单个三角形的基础上,再指定一个或多个顶点。这些顶点按照次序同上一顶点一起构一个新的三角形。下图演示了这种推进过程。
指定三个顶点,确定第一个三
深入理解OpenGL拾取模式(OpenGL Picking)
深入理解OpenGL拾取模式(OpenGL Picking)
在用OpenGL进行图形编程的时候,通常要用鼠标进行交互操作,比如用鼠标点选择画面中的物体,我们称之为拾取(Picking),在网上看了很多OpenGL拾取的文章,但大多是只是介绍在OpenGL中如何拾取,如何利用OpenGL提供的一系列函数来完成拾取,最多再简单介绍下OpenGL的名字栈(Name stack),拾取矩阵(Picking Matrix)等等,但是拾取真正的原理确没有提到。所以,我在这里为大家详细介绍下OpenGL中拾取是怎样实现的,以及其背后的真正原理。
OpenGL中的拾取是对OpenGL图形管线的一个应用。所以OpenGL中的拾取并不是像D3D一样采用射线交叉测试来判断是否选中一个目标,而是在图形管线的投影变换(Projection Transformation)阶段利用拾取矩阵来实现的。为了理解这个过程,先来复习一下OpenGL的图形管线。
总的来说,OpenGL图形管线大体分为上面的五个阶段。在编程的时候使用glMatrixMode(GL_MODELVIEW),或者 glMatrixMode(GL_PROJECTION)就是
OpenGL颜色
OpenGL颜色
几乎所有OpenGL应用目的都是在屏幕窗口内绘制彩色图形,所以颜色在OpenGL编程中占有很重要的地位。这里的颜色与绘画中的颜色概念不一样,它属于RGB颜色空间,只在监视器屏幕上显示。另外,屏幕窗口坐标是以象素为单位,因此组成图形的每个象素都有自己 的颜色,而这种颜色值是通过对一系列OpenGL函数命令的处理最终计算出来的。本章将讲述计算机颜色的概念以及OpenGL的颜色模式、颜色定义和两种模式应用场合等内容,若掌握好颜色的应用,你就能走进缤纷绚丽的色彩世界,从中享受无穷的乐趣。 9.1、计算机颜色 9.1.1 颜色生成原理
计算机颜色不同于绘画或印刷中的颜色,显示于计算机屏幕上每一个点的颜色都是由监视器内部的电子枪激发的三束不同颜色的光(红、绿、蓝)混合而成,因此,计算机颜色通 常用R(Red)、G(Green)、B(Blue)三个值来表示,这三个值又称为颜色分量。颜色生成原理 示意图见图9-1所示。
图9-1 计算机颜色生成原理
9.1.2 RGB色立体(RGB Color Cube)
所有监视器屏幕的颜色都属于RGB颜色空间,如果用一个立方体形象地表示RGB颜色组成关系,那么就称这个立方体为RGB色立
OPENGL开题报告
OPENGL开题报告
毕业论文(设计)材料 题 目: 基于opengl飘动国旗的设计 学生姓名: 程 亮 学生学号: 0808010105 系 别: 计算机与信息工程 专 业: 计算机科学与技术
openGL构造教室
虚拟现实与数据可视化课程作业董元 22011207
基于openGL的虚拟教室
——虚拟现实与数据可视化课程作业
董元22011207 指导老师:孙立博老师 仪器科学与工程学院
2013年12月16日
1 / 40
虚拟现实与数据可视化课程作业董元 22011207
一、 作业要求
用openGL制作一个虚拟教室。要求视角可变化,教室里的物品不少于五件。
二、 完成情况
我的openGL虚拟教室完成情况如下:
1、 绘制出的教室里的基本物体:黑板、讲台、投影仪、空调、门窗、音响、九张桌子、
九张凳子等。虚拟教室整体看上去接近真实生活中的教室。
2、 添加了灯光和纹理效果:门窗以及空调均是用纹理贴出来的。使教室看起来更加生
动形象。
3、 为教室加上了可用键盘控制的动态效果:可控制灯光亮灭、投影仪收起放下、六块
黑板的上下滑动以及音响的开关。
4、 引用FMOD音乐引擎,为教室加上可控背景音效(即3中的音响开关)。 5、 在输出窗口添加操作提示信息,使界面更加人性化。
三、 成果演示
1、整体效果图
2 / 40
虚拟现实与数据可视化课程作业董元 22011207
2、改变视角效果
3 / 40
虚拟现实与数据可视化课程作业董元 22011207
opengl学习资料收集
OpenGL学习:第一课
先了解一下OpenGL中对数据类型的定义,对后面使用一些库函数会有所帮助的。 打开gl.h文件,就可以看到OpenGL定义的一些基本数据类型,如下所示: typedef unsigned int GLenum;
typedef unsigned char GLboolean; typedef unsigned int GLbitfield; typedef signed char GLbyte; typedef short GLshort; typedef int GLint; typedef int GLsizei;
typedef unsigned char GLubyte; typedef unsigned short GLushort; typedef unsigned int GLuint; typedef float GLfloat; typedef float GLclampf; typedef double GLdouble; typedef double GLclampd; typedef void GLvoid; 先从最简单的学习。
点是OpenGL中最基本最简单的图元,它不像数学中的点是要无穷
opengl学习资料收集
OpenGL学习:第一课
先了解一下OpenGL中对数据类型的定义,对后面使用一些库函数会有所帮助的。 打开gl.h文件,就可以看到OpenGL定义的一些基本数据类型,如下所示: typedef unsigned int GLenum;
typedef unsigned char GLboolean; typedef unsigned int GLbitfield; typedef signed char GLbyte; typedef short GLshort; typedef int GLint; typedef int GLsizei;
typedef unsigned char GLubyte; typedef unsigned short GLushort; typedef unsigned int GLuint; typedef float GLfloat; typedef float GLclampf; typedef double GLdouble; typedef double GLclampd; typedef void GLvoid; 先从最简单的学习。
点是OpenGL中最基本最简单的图元,它不像数学中的点是要无穷
openGL画直线、圆、椭圆
使用openGl画直线(DDA算法)、画圆、椭圆(Bresenham算法)
#include<stdlib.h>
#include<iostream.h>
#include <GL/glut.h>
/* initialization: */
void myinit(void)
{
/* attributes */
glClearColor(1.0, 1.0, 1.0, 0.0); /* white background */
glColor3f(1.0, 0.0, 0.0); /* draw in red */
/* set up viewing: */
/* 500 x 500 window with origin lower left */
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0, 500.0, 0.0, 500.0);
glMatrixMode(GL_MODELVIEW);
}
void plot_circle_points(int xc,int yc,int x,int y)//画圆
{
glBegin(GL_POINTS);
glVertex3f(xc