光栅化渲染器(一)配置glut环境,完成窗体绘制
发表于2018-07-04
现在主流两种渲染方式就是光线跟踪和光栅化了,现代大多数显卡用的都是基于光栅化的渲染方式。下面就和大家介绍光栅化渲染器系列的第一篇,如何去配置glut环境,完成窗体绘制。
第一步:创建工程
文件-》新建项目-》Visual C++ -》控制台应用程序
第二步:导入NuGet包
选择项目-》右键点击-》管理NuGet程序包-》浏览-》输入Nupengl
-》选择第一个安装
第三步:配置环境
// GLEW //#define GLEW_STATIC #include <GL\glew.h> #include <GL/freeglut.h> // GLFW #include <GLFW/glfw3.h> #include <iostream> #include <string> using namespace std; const int SCREEN_WIDTH = 800; const int SCREEN_HEIGHT = 600; const char* SCREEN_TITLE = "光栅渲染器";
头文件引入上述代码
第四步:完成屏幕窗口绘制
//<<<<<<<<<<<<<<<<<<<<<<< myInit >>>>>>>>>>>>>>>>>>>> void myInit(void) { glClearColor(0.0, 0.0, 0.0, 0.0); // 设置背景颜色为亮白 glColor3f(1.0f, 1.0f, 1.0f); // 设置绘制颜色为黑 glPointSize(4.0); //设置点的大小为4*4像素 glMatrixMode(GL_PROJECTION);// 设置合适的投影矩阵-以后解释 glLoadIdentity(); gluOrtho2D(0.0, 640.0, 0.0, 480.0); } //<<<<<<<<<<<<<<<<<<<<<<<< myDisplay >>>>>>>>>>>>>>>>> // 重绘函数 void myDisplay(void) { glClear(GL_COLOR_BUFFER_BIT); // 清屏幕 glPointSize(1); glBegin(GL_POINTS); glVertex2i(300, 300); //DrawTriangle(v5, v6, v7); glEnd(); glFlush(); // 将所有输出到显示屏上 } //<<<<<<<<<<<<<<<<<<<<<<<< main >>>>>>>>>>>>>>>>>>>>>> void main(int argc, char **argv) { glutInit(&argc, argv); // 初始化工具包 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // 设置显式模式 glutInitWindowSize(SCREEN_WIDTH, SCREEN_HEIGHT); // 设置窗口大小 glutInitWindowPosition(100, 150); // 设置窗口位置 glutCreateWindow(SCREEN_TITLE); // 打开屏幕窗口 glutDisplayFunc(myDisplay); // 注册绘制函数 myInit(); glutMainLoop(); // 进入主循环 }
运行代码
结束,可看到2个黑色窗口,其中一个窗口可看到绘制的点
本篇文章只是阐述环境的配置,如果想了解原理,可参考《计算机图形学opengl版》。