opengl
kandyer
程序员.
展开
-
opengl顶点数组
当我们人为的绘制形状时,首先想到是是坐标点,而不是api,如要绘制一条直线,首先将两个点的坐标存在一起,则更加容易理解,OpenGL的顶点数组就是这样的作用. 首先来回顾下之前画直线的函数 示例1 void drawOneLine(GLfloat x1,GLfloat y1,GLfloat x2,GLfloat y2) { glBegin(GL_LINES); glVer转载 2013-10-07 12:54:25 · 478 阅读 · 0 评论 -
OpenGL变换
OpenGL变换是本篇的重点内容,它包括计算机图形学中最基本的三维变换,即几何变换、投影变换、裁剪变换、视口变换,以及针对OpenGL的特殊变换概念理解和用法,如相机模拟、矩阵堆栈等。学好了这章,才开始真正走进三维世界。 1、从三维空间到二维平面 1.1 相机模拟 在真实世界里,所有的物体都是三维的。但是,这些三维物体在计算机世界中却必须以二维平面物体的形式表现出来。那么,这些物体是转载 2013-10-08 20:09:33 · 2555 阅读 · 0 评论 -
求逆矩阵
#include using namespace std; int const M=3; int const N =2*M; int main() { int i,j,k; double a[M][M]={1,2,3,2,2,1,3,4,3}; double result[M][M]; double转载 2013-10-08 18:07:37 · 574 阅读 · 0 评论 -
OpenGl 坐标转换
原文地址:http://blog.csdn.net/zhulinpptor/article/details/5897102 1. OpenGL 渲染管线 OpenGL渲染管线分为两大部分,模型观测变换(ModelView Transformation)和投影变换(Projection Transformation)。做个比喻,计算机图形开发就像我们照相一样,目的就是把真实的场景在一张照转载 2013-10-08 19:44:48 · 1759 阅读 · 0 评论 -
纹理坐标
当我们绘制一个三角形时,只需要指定三个顶点的颜色。三角形中其它各点的颜色不需要我们指定,这些点的颜色是OpenGL自己通过计算得到的。在我们学习OpneGL光照时,法线向量、材质的指定,都是只需要在顶点处指定一下就可以了,其它地方的法线向量和材质都是OpenGL自己通过计算去获得。纹理的使用方法也与此类似。只要指定每一个顶点在纹理图象中所对应的像素位置,OpenGL就会自动计算顶点以外的其它点在纹转载 2013-10-08 20:01:55 · 587 阅读 · 0 评论 -
OpenGL 的渲染流水线
一、渲染:计算机根据模型创建图象。模型(或物体)是由几何图元构成的,而几何图元是通过顶点来指定的。最终渲染的图象由屏幕像素组成。像素(pixel)是显示硬件能够放置到屏幕上的最小的可视元素。有关像素的信息(如颜色)在系统内存中被组织为位面(bitplane)。位面构成了帧缓存(包含图形显示设备为控制屏幕上所有像素的颜色和亮度所需的信息)。 1、使用几何图元建立模型,从而得到物体的数学描述。(O转载 2013-10-08 19:46:29 · 688 阅读 · 0 评论 -
OpenGL 渲染管线理论
学习着色器,并理解着色器的工作机制,就要对OpenGL的固定功能管线有深入的了解。 首先要知道几个OpenGL的术语 渲染(rendering):计算机根据模型(model)创建图像的过程。 模型(model):根据几何图元创建的物体(object)。 几何图元:包括点、直线和多边形等,它是通过顶点(vertex)指定的。 最终完成了渲染的图像是由在屏幕上绘制的像素组成的。在内存中,转载 2013-10-08 19:47:15 · 640 阅读 · 0 评论 -
c++只能指针
智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。每次创建类的新对象时,初始化指针并将引用计数置为1;当对象作为另一对象的副本而创建时,拷贝构造函数拷转载 2013-10-08 20:05:33 · 519 阅读 · 0 评论 -
opengl 投影矩阵的构造
参考: http://www.songho.ca/opengl/gl_projectionmatrix.html 3D空间中的对象,最终显示在屏幕上,需要进行一系列的矩阵变化,将其从世界空间,转化到屏幕上。 坐标的具体转化过程是: 世界坐标world---->视坐标eye-----》不同的投影方法(平行投影,透视投影)投影面上坐标--->正则坐标(将转载 2013-10-08 20:38:08 · 626 阅读 · 0 评论 -
opengl基本图元
任何复杂的三维模型都是由基本的几何图元:点、线段和多边形组成的,有了这些图元,就可以建立比较复杂的模型。因此这部分内容是学习OpenGL编程的基础。 一、基本图元的描述及定义 OpenGL图元是抽象的几何概念,不是真实世界中的物体,因此须用相关的数学模型来描述。所有的图元都是由一系列有顺序的顶点集合来描述的。OpenGL中绘制几何图元,必须使用glBegain()和glEnd()这一对转载 2013-10-08 19:53:04 · 591 阅读 · 0 评论 -
opengl 工作流程
OpenGL处理流水线(pipe line): 1.几何顶点(vertexs) 2.图元(primitives) 3.片元(fragments) 4.象素数据(pixels) 具体过程: 1 几何顶点(vertexs) 1)输入数据 OpenGL流水线必须提供如下的输入数据类型 几何顶点(Vertices)——几何顶点描述了几何物体的形状。 指定几何顶点要用glV转载 2013-10-08 19:51:18 · 536 阅读 · 0 评论 -
理解OpenGL中的模型视图矩阵变换
对于学习OpenGL,或者其他的API,基础的矩阵变换是最重要的。矩阵变换是重中之重。 下面就拿红皮书上的最简单的demo:cube.c来说。 调用函数 glMatrixMode (GL_MODELVIEW);指定修改模型视图矩阵,以后调用glLoadIdentity (); 将当前的矩阵置为单位矩阵,有利于后面的运算。 下面我们假设将对创建的模型glutWireCube (1转载 2013-10-07 13:15:50 · 724 阅读 · 0 评论 -
OpenGL中的矩阵相乘的顺序
1,在OpenGL中所有的视图变换,模型变换 都是4×4矩阵,每个后续的glMultiMatrix*(N),或者变换函数,glTranslate*(),glRotate*(),等都是把一个新的4×4矩阵与当前的矩阵M相乘,不同的是:变换函数glTranslate*(),glRotate*()等会根据函数参数构造一个4×4矩阵,也设为N,两种情况产生相同的结果:M×N。注意这里的顺序,后续的矩阵是右转载 2013-10-07 13:24:10 · 1363 阅读 · 0 评论 -
OpenGL中glVertex2f函数与gluOrtho2D的参数的对应关系,以及常见函数的对应坐标系
两个函数的函数原型如下: glVertex(GLfloat x, GLfloat y); gluOrtho2D(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top); 简单的说前者的两个参数所代表的坐标点,必须落在后者参数所形成的坐标系内,不然该点就在viewport之外。 举个例子: void d转载 2013-10-07 15:13:25 · 1199 阅读 · 0 评论 -
opengl基础
1.OpenGL概念: OpenGL可以说是一个图形软件开发包,一套函数库,或者一套API.它提供了100多个图形操作函数. 2.OpenGL工作流程: OpenGL独立于硬件,以流水线的工作方式.输入OpenGL的可以是图像或者几何元,最终结果都是光栅化后的图像. 对于图像,OpenGL首先通过像素解包把其像素格式转换成OpenGL内部格式,然后通过像素操作直转载 2013-10-07 15:23:32 · 573 阅读 · 0 评论 -
glViewport和glOrtho.【转】
在OpenGL中有两个比较重要的投影变换函数,glViewport和glOrtho. glOrtho 是创建一个正交平行的视景体。一般用于物体不会因为离屏幕的远近而产生大小的变换的情况。比如,常用的工程中的制图等。需要比较精确的显示。 而作为它的对立情况, glFrustum则产生一个透视投影。这是一种模拟真是生活中,人们视野观测物体的真实情况。例如:观察两条平行的火车到,在过了很远之后,这两条转载 2013-10-07 15:08:43 · 548 阅读 · 0 评论 -
opengl 坐标变换
本系列教程是自己学习OpenGL时的一些笔记,分享出来希望对大家有所帮助。因为本人是学数学出身,内容侧重于理论推导。 1. 坐标变换序列 对于OpenGL来说,从物体的世界坐标系到显示器的屏幕坐标,需要经过四个变换阶段,如下图所示。 首先通过Model-View Matrix将Obect Coordinates变换为Eye Coordinates(以观察者为原转载 2013-10-07 23:01:51 · 579 阅读 · 0 评论 -
opengl的转换矩阵
矩阵真的是一个很神奇的数学工具, 虽然单纯从数学上看, 它并没有什么特别的意义, 但一旦用到空间中的坐标变换,它就“一遇风云便成龙”, 大显神威了。简单的工具实现了复杂的功能,便预示着要理解它我们还是要花上点功夫的。下面就简单介绍一下OpenGL中的转换矩阵。 1 转换矩阵的原理 OpenGL中的转换矩阵是这样定义的: [Xx, Yx, Zx, Tx]转载 2013-10-07 23:35:18 · 403 阅读 · 0 评论 -
投影矩阵的推导 (OpenGL D3D)
OpenGL矩阵推导——模型视图变化 在三维编程中,模型视图变换是从三维世界到二维屏幕中一个很重要的变换,但是这个变换往往很多人都不太理解,要么是事而非。而这方面的文章不是太少就是讲的太浅没有真正的理解模型视图变换,本人在这个过程中曾经走过很多歪路,不过好在最终在自己的不懈努力下终于降伏了这只猛虎。本人就以自己的理解,通过矩阵推导过程一步一步来了解模型视图变化,最后通过两个OpenGl的程序转载 2013-10-08 20:42:03 · 2713 阅读 · 0 评论