OpenGL Hello World
▶ 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的更多相关文章
- 【AR实验室】OpenGL ES绘制相机(OpenGL ES 1.0版本)
0x00 - 前言 之前做一些移动端的AR应用以及目前看到的一些AR应用,基本上都是这样一个套路:手机背景显示现实场景,然后在该背景上进行图形学绘制.至于图形学绘制时,相机外参的解算使用的是V-SLA ...
- [OpenGL超级宝典]专栏前言
我小时候的梦想呢,是做宇航员或者科学家或者是做一款属于自己的游戏,后来前面两个梦想都没有实现,于是我就来实现我的第三个梦想了,,,我呢,也算是零基础,因为我的专业是物联网工程,这个专业覆盖面之广,简直 ...
- OpenGL超级宝典笔记----渲染管线
在OpenGL中任何事物都在3D空间中,但是屏幕和窗口是一个2D像素阵列,所以OpenGL的大部分工作都是关于如何把3D坐标转变为适应你屏幕的2D像素.3D坐标转为2D坐标的处理过程是由OpenGL的 ...
- OpenGL超级宝典笔记----框架搭建
自从工作后,总是或多或少的会接触到客户端3d图形渲染,正好自己对于3d图形的渲染也很感兴趣,所以最近打算从学习OpenGL的图形API出发,进而了解3d图形的渲染技术.到网上查了一些资料,OpenGL ...
- 现代3D图形编程学习-基础简介(3)-什么是opengl (译)
本书系列 现代3D图形编程学习 OpenGL是什么 在我们编写openGL程序之前,我们首先需要知道什么是OpenGL. 将OpenGL作为一个API OpenGL 通常被认为是应用程序接口(API) ...
- OpenGL shader 中关于顶点坐标值的思考
今天工作中需要做一个事情: 在shader内部做一些空间距离上的计算,而且需要对所有的点进行计算,符合条件的显示,不符合条件的点不显示. 思路很简单,在vertex shader内知道顶点坐标,进行计 ...
- OpenGL: 纹理采样 texture sample
Sampler (GLSL) Sampler通常是在Fragment shader(片元着色器)内定义的,这是一个uniform类型的变量,即处理不同的片元时这个变量是一致不变的.一个sampler和 ...
- OpenGL ES 3.0: 图元重启(Primitive restart)
[TOC] 背景概述 在OpenGL绘制图形时,可能需要绘制多个并不相连的图形.这样的情况下这几个图形没法被当做一个图形来处理.也就需要多次调用 DrawArrays 或 DrawElements. ...
- opengl 笔记(2)
/*- * Opengl Demo Test * * Fredric : 2016-7-10 */ #include <GLUT/GLUT.h> #include <stdlib.h ...
- opengl 笔记(1)
参考<opengl入门教程>.<OpenGL之坐标转换>.<OpenGL绘制管线操作细节>等资料. 复习下留个备忘:) /*- * Opengl Demo Test ...
随机推荐
- Modbus RTU 协议使用汇总
原创地址:https://blog.csdn.net/u012166958/article/details/64920144 标准的Modbus 口是使用RS-232C 兼容串行接口,它定义了连接口的 ...
- Vistual Studio XML 智能提示
开发中经常遇到要和各种各样的 XML 打交道,编辑 XML 文件时最头痛的便是要记住许多 XML 元素名称.属性名称. 幸运的是,Vistual Studio 的 XML 智能提示功能可以大大地减轻这 ...
- ThinkPHP 介绍及安装 -1
一.ThinkPHP的介绍 MVC M - Model 模型 工作:负责数据的操作 V - View 视图(模板) 工作:负责前台页面显示 C - Con ...
- 关闭AutoCAD 2019快速访问工具栏的web和moblie保存文件功能
解决方法如下:1.先关闭CAD,再打开注册表编辑器:开始--运行--输入 regedit2.定位到 [HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R23. ...
- Linux Bash on Win10 (WSL)在cmder下使用vim时方向键失灵问题解决
更改方法 由于cmder和bash.exe不兼容,如果你直接输入bash ~,那么进入子系统后将无法使用方向键和Home/PageUp/PageDown等键都无法使用,网上常见的cmder配置过程如下 ...
- VisualSVNServer 无法启动 could not log pid to file
启动SVN时候报了错误,然后查看日志发现报了如下错误 VisualSVNServer.exe: could not log pid to file C:/Windows/ServiceProfiles ...
- Spring-framework应用程序启动loadtime源码分析笔记(三)——@KafkaListener
org.springframework.context.annotation.ConfigurationClassParser.getConfigurationClasses()读所有@Configu ...
- Flink安装启动
1.下载安装包并解压 下载网址:https://flink.apache.org/ 版本选择可以根据安装的hadoop版本和Scala版本进行选择 我用的是:flink-1.3.3-bin-hadoo ...
- console.log()换行和document.write()换行
<!DOCTYPE html><html ><head><meta charset="utf-8"><title>ddd ...
- Abp.Linq.Extensions扩展(1)--static class QueryableExtensions
// 摘要: // Used for paging with an Abp.Application.Services.Dto.IPagedResultRequest object ...