一:搭建前的准备
Xcode 搭建 OpenGL 开发需要的资源如下:
1:libGLTool.a
2:GLTools
3:glew
资源下载地址 链接: https://pan.baidu.com/s/1hZt_tE1Tf57t2FkW_Bt4_w提取码: gwwr
二:搭建开始
1:创建工程

2:选择项目类型

3:添加系统依赖库

4:拖入资源文件
资源包里有 include 和libGLTools.a文件,拖入到指定位置,一个在项目中,一个在frameworks里

5:配置资源检索路径
配置检索路径有两种方式: 1.绝对路径,可以将项目中的文件直接拖到终端,获取文件绝对路径.
2.相对路径, 用$符号获取,ruby语法显示即刻.


6:添加项目入口文件main.cpp. 并且删除多余的AppDelegate.h、AppDelegate.m、main.m、ViewController.h 和 ViewController.m, 注意去掉勾选头文件的选项.

7:运行测试代码验证
intmain(intargc,char* argv[])
{
//设置当前目录
gltSetWorkingDirectory(argv[0]);
//初始化GLUT库
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA|GLUT_DEPTH|GLUT_STENCIL);
glutInitWindowSize(800, 600);
glutCreateWindow("TRIANGLE");
glutReshapeFunc(ChangeSize);
glutDisplayFunc(RenderScene);
GLenumerr =glewInit();
if(GLEW_OK!=err) {
fprintf(stderr,"glew error:%s\n",glewGetErrorString(err));
return1;
}
//调用SetupRC
SetupRC();
glutMainLoop();
return0;
}
//窗口大小 其中0,0代表窗口中视口的左下角坐标,w,h代表像素
voidChangeSize(intw,int h)
{
glViewport(0,0, w, h);
}
void SetupRC()
{
//设置颜色背景
glClearColor(0,0,1,1);
//初始化着色管理器
shaderManager.InitializeStockShaders();
//设置三角形,其中数组vVert包含所有3个顶点的X,Y,笛卡尔坐标
GLfloatvVerts[] = {
-0.5f,0.0f,0.0f,
0.5f,0.0f,0.0f,
0.0f,0.5f,0.0f,
};
//批次处理
triangBatch.Begin(GL_TRIANGLES, 3);
triangBatch.CopyVertexData3f(vVerts);
triangBatch.End();
}
//开始渲染
void RenderScene (void)
{
//清除一个或一组特定的缓存区
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT);
GLfloatvRed[] = {1.0f,0.0f,0.0f,1.0f};
//传递到存储着色器 ,即GLT_SHADER_IDENTITY 着色器
shaderManager.UseStockShader(GLT_SHADER_IDENTITY,vRed);
triangBatch.Draw();
glutSwapBuffers();
}
8:运行结果
在widow 中开启一个视口 显示红色三角形.

网友评论