▶ OpenGL 的环境配置与第一个程序
● CUDA 中自带 OpenGL 需要的头文件和库,直接拉进项目里边去就行
● VS项目属性右键,属性,C/C++ 目录,包含目录,添加 CUDA 的头文件目录,我的是 "C:Program FilesNVIDIA GPU Computing ToolkitCUDAv9.1extrasCUPTIinclude" ,一般代码中使用 #inlcude <CL/cl.h> 来包含头文件。
● VS项目属性右键,属性,C/C++ 目录,库目录,添加 CUDA 的库目录,注意 32 位和 64 位工程是不同的,64位 "C:ProgramDataNVIDIA CorporationCUDA Samplesv9.1commonlibx64",从外边随便找来一个 glut32.lib 也放进去(64 位 glut 依赖 32 位的文件)
● 找来 “C:ProgramDataNVIDIA CorporationCUDA Samplesv9.1inwin64Debug” 下的 freeglut.dll,放进可执行文件目录(懒得配置了)
▶ 第一个程序,画一条线
● 代码
1 #include <stdio.h> 2 #include <GLglut.h> 3 4 void lineSegment() // 线对象描述 5 { 6 glClear(GL_COLOR_BUFFER_BIT); // 清理显示窗口 7 8 glColor3f(1.0, 1.0, 0.0); // 线的颜色 9 10 glBegin(GL_LINES); // 对象描述 11 glVertex2i(100, 30); // 两个端点 12 glVertex2i(50, 100); 13 glEnd(); 14 15 glFlush(); // 刷新缓冲区 16 } 17 18 int main(int argc, char ** argv) 19 { 20 glutInit(&argc, argv); // 初始化 GL 21 22 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // 设定窗口缓存和颜色模型 23 glutInitWindowPosition(400, 200); // 设定窗口位置、大小、标题、背景颜色 24 glutInitWindowSize(400, 300); 25 glutCreateWindow("Example"); 26 glClearColor(0.0, 0.0, 0.3, 1.0); 27 28 glMatrixMode(GL_PROJECTION); // 使用正投影将世界坐标系微微矩阵区域的内容映射到屏幕上 29 gluOrtho2D(0.0, 200.0, 0.0, 150.0); // 坐标范围 30 glutDisplayFunc(lineSegment); // 将图形输送到显示窗口 31 glutMainLoop(); // 现实所有对象并等待 32 33 return 0; 34 }
● 输出结果