▶ OpenGL 的环境配置与第一个程序

● CUDA 中自带 OpenGL 需要的头文件和库,直接拉进项目里边去就行

● VS项目属性右键,属性,C/C++ 目录,包含目录,添加 CUDA 的头文件目录,我的是 "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\extras\CUPTI\include" ,一般代码中使用  #inlcude <CL/cl.h>  来包含头文件。

● VS项目属性右键,属性,C/C++ 目录,库目录,添加 CUDA 的库目录,注意 32 位和 64 位工程是不同的,64位 "C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.1\common\lib\x64",从外边随便找来一个 glut32.lib 也放进去(64 位 glut 依赖 32 位的文件)

● 找来 “C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.1\bin\win64\Debug” 下的 freeglut.dll,放进可执行文件目录(懒得配置了)

▶ 第一个程序,画一条线

● 代码

 #include <stdio.h>
#include <GL\glut.h> void lineSegment() // 线对象描述
{
glClear(GL_COLOR_BUFFER_BIT); // 清理显示窗口 glColor3f(1.0, 1.0, 0.0); // 线的颜色 glBegin(GL_LINES); // 对象描述
glVertex2i(, ); // 两个端点
glVertex2i(, );
glEnd(); glFlush(); // 刷新缓冲区
} int main(int argc, char ** argv)
{
glutInit(&argc, argv); // 初始化 GL glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // 设定窗口缓存和颜色模型
glutInitWindowPosition(, ); // 设定窗口位置、大小、标题、背景颜色
glutInitWindowSize(, );
glutCreateWindow("Example");
glClearColor(0.0, 0.0, 0.3, 1.0); glMatrixMode(GL_PROJECTION); // 使用正投影将世界坐标系微微矩阵区域的内容映射到屏幕上
gluOrtho2D(0.0, 200.0, 0.0, 150.0); // 坐标范围
glutDisplayFunc(lineSegment); // 将图形输送到显示窗口
glutMainLoop(); // 现实所有对象并等待 return ;
}

● 输出结果

OpenGL Hello World的更多相关文章

  1. 【AR实验室】OpenGL ES绘制相机(OpenGL ES 1.0版本)

    0x00 - 前言 之前做一些移动端的AR应用以及目前看到的一些AR应用,基本上都是这样一个套路:手机背景显示现实场景,然后在该背景上进行图形学绘制.至于图形学绘制时,相机外参的解算使用的是V-SLA ...

  2. [OpenGL超级宝典]专栏前言

    我小时候的梦想呢,是做宇航员或者科学家或者是做一款属于自己的游戏,后来前面两个梦想都没有实现,于是我就来实现我的第三个梦想了,,,我呢,也算是零基础,因为我的专业是物联网工程,这个专业覆盖面之广,简直 ...

  3. OpenGL超级宝典笔记----渲染管线

    在OpenGL中任何事物都在3D空间中,但是屏幕和窗口是一个2D像素阵列,所以OpenGL的大部分工作都是关于如何把3D坐标转变为适应你屏幕的2D像素.3D坐标转为2D坐标的处理过程是由OpenGL的 ...

  4. OpenGL超级宝典笔记----框架搭建

    自从工作后,总是或多或少的会接触到客户端3d图形渲染,正好自己对于3d图形的渲染也很感兴趣,所以最近打算从学习OpenGL的图形API出发,进而了解3d图形的渲染技术.到网上查了一些资料,OpenGL ...

  5. 现代3D图形编程学习-基础简介(3)-什么是opengl (译)

    本书系列 现代3D图形编程学习 OpenGL是什么 在我们编写openGL程序之前,我们首先需要知道什么是OpenGL. 将OpenGL作为一个API OpenGL 通常被认为是应用程序接口(API) ...

  6. OpenGL shader 中关于顶点坐标值的思考

    今天工作中需要做一个事情: 在shader内部做一些空间距离上的计算,而且需要对所有的点进行计算,符合条件的显示,不符合条件的点不显示. 思路很简单,在vertex shader内知道顶点坐标,进行计 ...

  7. OpenGL: 纹理采样 texture sample

    Sampler (GLSL) Sampler通常是在Fragment shader(片元着色器)内定义的,这是一个uniform类型的变量,即处理不同的片元时这个变量是一致不变的.一个sampler和 ...

  8. OpenGL ES 3.0: 图元重启(Primitive restart)

    [TOC] 背景概述 在OpenGL绘制图形时,可能需要绘制多个并不相连的图形.这样的情况下这几个图形没法被当做一个图形来处理.也就需要多次调用 DrawArrays 或 DrawElements. ...

  9. opengl 笔记(2)

    /*- * Opengl Demo Test * * Fredric : 2016-7-10 */ #include <GLUT/GLUT.h> #include <stdlib.h ...

  10. opengl 笔记(1)

    参考<opengl入门教程>.<OpenGL之坐标转换>.<OpenGL绘制管线操作细节>等资料. 复习下留个备忘:) /*- * Opengl Demo Test ...

随机推荐

  1. VSFTP再配置 我里个去马蛋网上这么多烂文章,走了好多弯路

    1.CentOS 进行yum 安装 vsftpd 2.vi /etc/vsftpd/vsftpd.conf  进行配置 3.创建FTP 用户 # useradd –d /var/www -g ftp ...

  2. oracle--分组后获取每组数据第一条数据

    SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY cc.queuename ORDER BY cc.enroldate DESC) rn, cc ...

  3. Azure 认知服务 (3) 计算机视觉API - 分析图像,使用C#代码

    <Windows Azure Platform 系列文章目录> 在上一节中Azure 认知服务 (2) 计算机视觉API - 分析图像,笔者介绍了如何使用API测试控制台进行调试. 本章将 ...

  4. 在Outlook客户端使用SSL加密,弹出安全证书警告的解决方法。

    这是使用自己的域名.第三方的邮件系统是产生的问题. 如万网的邮箱系统,但在Outlook中,设置的pop3/imap/smtp的域名是你自己的域名. imap.youname.domain pop3. ...

  5. 指定分隔符连接数组元素join()

    join()方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. 语法: arrayObject.join(分隔符) 参数说明: 注意:返回一个字符串,该字符串把数组中的各个元 ...

  6. centos6.5部署OpenStack单节点

    环境 最小化安装的centos6.5 设置如下: 一.修改基本配置 1.修改主机名为controller [root@localhost ~]# hostname controller [root@l ...

  7. 经典算法冒泡排序java版

    写个冒泡排序吧 冒泡排序(Bubble Sort)是一种典型的交换排序算法,通过交换数据元素的位置进行排序. public class BubbleSort{ public int[] bubbleS ...

  8. random模块常用功能

  9. [UE4]Actor的Destroyed事件

  10. 把SAS批提交添加到鼠标右键

    下载注册表管理工具:RegSeeker Portable v2.57 中文绿色便携版 在RegSeeker中搜索:batch