- 博客(7)
- 资源 (3)
- 收藏
- 关注
原创 OpenGL--shader入门
理论基础实例代码//源程序#include "GLTools.h"#include "GLShaderManager.h"#ifdef __APPLE__#include #else#define FREEGLUT_STATIC#include #endifGLuint v, f, f2,p;GLint loc;//文件读取(将本地shader文
2015-03-31 17:05:12 4547
原创 OpenGL--3D世界(视图变换,模型变换,投影变换,视口变换)
理论基础 1,OpenGL渲染3D物体到屏幕上的过程其实类似我们平时用照相机拍照的过程,这个步骤大致如下:一,把照相机固定在三脚架并让它对准场景(视图变换)二,把场景中的物体调整摆放好(模型变换)三,选择照相机的镜头,并调整放大倍数(投影变换)四,确定最终照片的大小(视口变换)。其中视图变换必须要在模型变换之前,其它可以在任何时候。 2,视图变换:设置摄像机的位置,gluLookAt(摄像机位置
2015-03-25 13:59:55 12192 1
原创 OpenGL--顶点数组与缓冲区中使用顶点数组
理论基础法线向量:简称法线,是一条垂直于某个表面的方向向量。opengl中除了顶点之外,不能为多边形的其他地方分配法线。法线的作用是定义了物体的表面在空间中的方向,具体地说就是,定义了它相对于光源的方向。opengl就是使用法线向量来确定这个物体的各个顶点所接收的光照。(glNormal*()设置顶点法线)顶点数组:就是把一些顶点数据保存到数组中储存,这些数据包括:顶点坐标,表面法线,RG
2015-03-21 17:43:55 3895
原创 OpenGL--图元
基础概念 1,图元:组成3D物体最小的单位,包括:点,直线,多边形。就和化学里所有物体都是由原子组成的一样。 2,点:数学上的点,只有位置,没有大小。但在计算机中,无论计算精度如何提高,始终不能表示一个无穷小的点。另一方面,无论图形输出设备(例如,显示器)如何精确,始终不能输出一个无穷小的点。默认情况下,OpenGL中的点将被画成单个的像素,虽然它可能足够小,但并不会是无穷小。同一像素上,Ope
2015-03-18 17:20:42 2870
原创 OpenGL--双缓冲
双缓冲 就是先将图片绘制到后台缓冲区,然后再交换到前台缓冲区显示。为什么要这么做?一种解释是我们的渲染一般是多线程处理,如果直接绘制到屏幕显示,有可能会出现一张图片还只绘制一部分而下一张又来了的情况,使屏幕看上去在抖动的感觉。所以增加一个后台缓冲区,先绘制到后台,然后直接整张完整的图交换到前台,这样就可以流畅的显示了。实例代码#include "GLTools.h"#include "GLS
2015-03-17 16:16:30 3609
原创 opengl入门
基本概念1,OpenGL:是图形硬件的一种软件接口。通俗点讲就是一套API,调用接口而已,用于图像的渲染。与微软的Direct类似,不过它是跨平台的。 2,OpenGL渲染管线:是指从调用OpenGL图形程序到图形最终渲染到屏幕的实现过程。其实就是OpenGL底层代码执行的一个流程。具体流程是这样的:它首先是一个CS的架构模式,它的程序允许通过网络运行,运行图形程序并发出绘图命令的计算机称为客户机
2015-03-17 11:36:09 3084
原创 Xcode上创建openGL项目
创建opengl项目步骤1,创建一个Cocoa的项目。 2,将项目中的AppDelegate.h,AppDelegate.m,MainMenu.xib文件删除。然后将main.m文件删除,改为main.cpp文件。 3,将include文件(OpenGL超级宝典5版源码里有这个文件)和libGLTools.a(mac上的动态库)导入到项目里。 4,在项目设置,Build Phases下的Lin
2015-03-16 17:33:46 4356 4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人