上次已经搭好了OpenGL编程的环境.已经成功运行了第一个程序.可只是照搬书上的代码,并没弄懂其中的原理.这次通过一个小程序来解释使用GLUT库编写OpenGL程序的过程. 程序的入口 与其他程序一样main()函数是程序的入口,由(window)操作系统调用,然后我们把需要实现的代码在main()函数里调用. 设置初始显示模式 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);定义窗口的显示模式.其中有颜色的模式和缓冲区的模式等.如果设置多种模式,中间使用…
这一节教程的内容会比较少,我们仅仅是对上一节教程中的代码进行扩展,在窗口中渲染一个三角形出来. 本节我们以下图所示正方形来讲解OpenGl中的坐标系统.当沿着Z轴负方向看时,可见顶点的坐标必须在这个正方形内,这样视口变换才可以將它们映射到窗口中的可见区域. 点(-1.0,-1.0)对应窗口的左下角,(-1.0,1.0)对应窗口的左上角,依此类推.如果指定一个顶点在这个正方形之外,构成的三角形在这个正方形之外的部分会被裁剪掉,将会看不到这部分. 显示三角形代码 /* Copyright 2010…
一.OpenGL简介 众所周知,OpenGL原先是Silicon Graphics Incorporated(SGI公司)在他们的图形工作站上开发高质量图像的接口.但最近几年它成为一个非常优秀的开放式三维图形接口.实际上它是图形软件和硬件的接口,它包括有120多个图形函数,"GL"是"GRAPHIC LIBRARY"的缩写,意思是“图形库”.OpenGL的出现使大多数的程序员能够在PC机上用C语言开发复杂的三维图形.微软在Visual C++ 7中已提供了三个Ope…
//http://blog.csdn.net/longhuihu/article/details/7701874 1.绘图基础 清除窗口 glClearColor(0.0, 0.0, 0.0, 0.0);glClear(GL_COLOR_BUFFER_BIT); 第一句代码设置”清除颜色“,第二句代码将当前颜色缓冲区重置为“清除颜色”. 图形硬件除了color buffer(颜色缓冲区.对应屏幕上的像素颜色),还有其他缓冲区,比如Depth,Stencil,Accumulation,设置这些缓冲…
转自://http://blog.csdn.net/longhuihu/article/details/8477614 纹理(texture)是一块矩形数据序列,存储的数据为颜色.亮度.alpha值.纹理数据的每个单位叫做texel,纹理数据可以被映射到任何几何形状的表面. 1.纹理映射基础 使用纹理是一个相对复杂的操作,一般需要以下几个步骤:1.创建texture对象,并指定数据:纹理数据可以是二维的图像,也可以是一维或三维的: 2.指定texture将被以何种方式与像素进行映射:有四种函数可…
http://blog.csdn.net/vagrxie/article/details/4602961 Win32 OpenGL 编程( 1 ) Win32 下的 OpenGL 编程必须步骤 write by 九天雁翎 (JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 一.    前言 人生在于折腾,继续折腾吧. OpenGL 编程的红宝书< OpenGL Programming Guide>在举例子的时候为了平台无关,使用的都是 GLUT 来管理窗…
一.OpenGL OpenGL,是一套绘制3D图形的API,当然它也可以用来绘制2D的物体.OpenGL有一大套可以用来操作模型和图片的函数,通常编写OpenGL库的人是显卡的制造者.我们买的显卡都支持特定版本的OpenGL. 下图是用OpenGL做的旋转的立方体. 二.渲染原理 2.1 渲染管道 在OpenGL中,所有东西都在一个3D的空间里,而我们的屏幕和窗口都是2D的,所以OpenGL需要将3D的坐标转换成2D的坐标,做这件事的是OpenGL中的渲染管道(graphics pipeline…
1.OpenGL使用的是RGB颜色空间,例如三个颜色分量各占8位,那么就说这个颜色值色深24,能够表示2^24中颜色. 2.多重采样是基于采样的抗锯齿技术,有OGAA(ordered grid anti-sliasing).SGAA(sparse grid anti-aliasing).MSAA(multi-sampling anti-aliasing).CSAA(coverage sampling anti-aliasing)等众多实现方式.fragment shader中有gl_Sample…
OpenGL编程指南(第七版) 转自:http://blog.csdn.net/w540982016044/article/details/21287645 在接触OpenGL中,配置显得相当麻烦,特别是在VS2012下配置时,存在许多问题,而网上的很多方法仅仅适用于VS2008,甚至仅适用于VC6.0,笔者经过自身的实践,参考了许多网上的资料,总结了一下配置的方法,当然这仅仅是笔者的个人理解,笔者个人水平有限,因此未必是万能的,如果解说存在错误或者不明白的地方,还望读者原谅和更正,谢谢. 一.…
概要 在之前的教程中,我们建立了一个最小的Direct3D 11的应用程序,它用来在窗口上输出一个单一颜色.在本次教程中,我们将扩展这个应用程序,在屏幕上渲染出一个单一颜色的三角形.我们将通过设置数据机构的过程关联到三角形. 这个教程的输出结果是在窗口中央渲染出一个三角形. 资源目录 (SDK root)\Samples\C++\Direct3D11\Tutorials\Tutorial02 Github-LearnDirectX-DX3D11 tutorial02 (源码已上传至Github)…