最近动了心思,想要系统的学习一下有关渲染方面的知识,从openGL入手,参考书籍《OpenGL编程指南》原书第九版。
也是一小白,学习过程中记下笔记。
环境:macOS 10.14.4
一、安装xcode IDE
可以直接中App Store中搜索xcode,点击安装
1. 使用XCode创建项目:
OS X -> Command Line Tool -> Next
2. 输入项目名称,语言选择C++,Next
3. 选择项目保存路径
二、导入OpenGL需要的库
选中项目,选择Target -> Build Phases -> Link Binary With Libraries
在Link Binary With Libraries栏中点击下面的加号,搜索OpenGL.framework和GLUT.freamwork这两个库,导入
三、编写第一个HelloWorld
//
// main.cpp
// opengl_01_test
//
// Created by blingbling on 2019/4/27.
// Copyright © 2019 blingbling. All rights reserved.
//
#include <iostream>
#include <GLUT/GLUT.h>
void draw() {
//设置清屏色
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClear(GL_COLOR_BUFFER_BIT);
//设置颜色,红色
glColor3f(1.0f, 0.0f, 0.0f);
//设置绘图时的坐标系统
glOrtho(0.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0f);
//开始渲染
glBegin(GL_POLYGON);
//设置多边形的4个顶点
glVertex3f(0.25f, 0.25f, 0.0f);
glVertex3f(0.75f, 0.25f, 0.0f);
glVertex3f(0.75f, 0.75f, 0.0f);
glVertex3f(0.25f, 0.75f, 0.0f);
//结束渲染
glEnd();
//强制刷新缓冲区,保证绘制命令被执行
glFlush();
}
int main(int argc, const char * argv[]) {
// insert code here...
std::cout << "Hello, World!\n";
//初始化GLUT库
glutInit(&argc, (char**)argv);
//创建一个窗口并制定窗口名
glutCreateWindow("HelloWorld");
//注册一个绘图函数,操作系统在必要时刻就会对窗体进行重新绘制操作
glutDisplayFunc(draw);
//进入GLUT事件处理循环,让所有的与“事件”有关的函数调用无限循环(永生循环)
glutMainLoop();
return 0;
}
四、运行HelloWorld
1. command B编译工程
2. command R运行工程
3. 成功运行后,会看到一个红色窗口弹出,第一个opengl helloworld程序运行成功~~~~
五、后记
1. “is deprecated”的警告由于本人使用的是macOS 10.14.4操作系统,openGL的好多API在XCode中都报了“is deprecated”的警告,虽不影响程序运行,但强迫症患者实难忍受。正规做法肯定是查看报警告的api文档,更新的新的接口,但本人系小白一枚,就索性直接降低项目运行的Deployment Target版本了。
2. 修改项目运行依赖版本
选中项目->TARGETS->General->Deployment Info中,将Deployment Target修改为10.8就OK了~~~。