------OpenGL------
文章平均质量分 86
ooMelloo
☆人工智能/机器学习/深度学习工程师进击中
☆立志成为数学好编程好业务好的三好青年
☆人必有痴 而后有成
展开
-
OpenGL控件变换
通过本文的上篇OpenGL 的空间变换(上):矩阵在空间几何中的应用,我们了解到矩阵的基础概念。并且掌握了矩阵在空间几何中的应用。接下来,我们将结合矩阵来了解 OpenGL 的空间变换。在使用 OpenGL 的应用程序中,当我们指定了模型的顶点后,顶点依次会变换到不同的 OpenGL 空间中:世界空间 模型空间(也称为对象空间) 视图空间(也称为视点空间、摄像机空间) 裁剪空间 标...转载 2018-08-29 10:41:51 · 398 阅读 · 0 评论 -
OpenGL+VS2013环境配置
一、OpenGL库主体分为三部分gl(OpenGL核心库) glu(Utility Library,OpenGL实用库) glut(Utility Toolkit,OpenGL实用工具库)glgl是OpenGL的核心,提供了OpenGL的基本函数,每个函数都以GL开头。核心库包含有115个函数,用于常规的、核心的图形处理。gl.h是OpenGL核心库的头文件,对应的导入库和动态库为...原创 2018-11-23 10:19:18 · 547 阅读 · 2 评论 -
Learn OpenGL(八)——补
s原创 2018-11-24 12:19:54 · 214 阅读 · 0 评论 -
Learn OpenGL(七)——OpenGL中使用着色器的基本步骤及GLSL渲染简单示例
OpenGL着色语言(OpenGL Shading Language,GLSL)是用来在OpenGL中着色编程的语言,是一种具有C/C++风格的高级过程语言,同样也以main函数开始,只不过执行过程是在GPU上。GLSL使用类型限定符而不是通过读取和写入操作来管理输入和输出。着色器主要分为顶点着色器(Vertex Shader)和片段着色器(Fragment Shader)两部分。...原创 2018-11-22 23:30:30 · 1140 阅读 · 1 评论 -
Learn OpenGL(五)——定义自己的着色器
定义自己的着色器 编写、编译、管理着色器是件麻烦事。在着色器的最后主题里,我们会写一个类来让我们的生活轻松一点,这个类从硬盘读着色器,然后编译和链接它们,对它们进行错误检测,这就变得很好用了。这也会给你一些关于如何把我们目前所学的知识封装到一个抽象的对象里的灵感。 我们会在头文件里创建整个类,主要为了学习,也可以方便移植。我们先来添加必要的include,定义类结构...原创 2018-11-19 23:03:19 · 539 阅读 · 0 评论 -
Learn OpenGL(四)——片段着色器(Fragment Shader)
片段着色器(Fragment Shader) 片段着色器是第二个也是最终我们打算创建的用于渲染三角形的着色器。 片段着色器的全部, 都是用来计算你的像素的最后颜色输出。 为了让事情比较简单, 我们的片段着色器只输出橘黄色。 注:在计算机图形中颜色被表示为有4个元素的数组: 红色、 绿色、 蓝色和alpha(透明度)元素, 通常缩写为RGBA。 #vers...原创 2018-11-16 17:56:06 · 6716 阅读 · 0 评论 -
Learn OpenGL(三)——顶点着色器(Vertext Shader)
顶点着色器是几个着色器中的一个, 它是可编程的。 现代OpenGL需要我们至少设置一个顶点着色器和一个片段着色器, 如果我们打算做渲染的话。 我们会简要介绍一下着色器以及配置两个非常简单的着色器来绘制我们第一个三角形。 我们需要做的第一件事是用着色器语言GLSL写顶点着色器, 然后编译这个着色器, 这样我们就可以在应用中使用它了。 下面你会看到一个非常基础的顶点着...原创 2018-11-16 17:47:53 · 2579 阅读 · 2 评论 -
Learn OpenGL(二)——顶点输入(Vertex Input)
开始绘制一些东西之前, 我们必须给OpenGL输入一些顶点数据。 OpenGL是一个3D图形库,所以我们在OpenGL中指定的所有坐标都是在3D坐标里(x、 y和z)。 OpenGL不是简单的把你所有的3D坐标变换为你屏幕上的2D像素; OpenGL只是在当它们的3个轴(x、 y和z)在特定的-1.0到1.0的范围内时才处理3D坐标。 所有在这个范围内的坐标叫做标准化设备坐标(Norm...原创 2018-11-16 17:37:54 · 1238 阅读 · 0 评论 -
Learn OpenGL(一)图形渲染管线(Pipeline)
在OpenGL中任何事物都在3D空间中, 但是屏幕和窗口是一个2D像素阵列, 所以OpenGL的大部分工作都是关于如何把3D坐标转变为适应你屏幕的2D像素。 3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线(Pipeline, 大多译为管线, 实际上指的是一堆原始图形数据途经一个输送管道, 期间经过各种变化处理最终出现在屏幕的过程)管理的。 图形渲染管线可以被划分为两个...原创 2018-11-16 17:19:52 · 1152 阅读 · 0 评论 -
深入理解回调函数
在OpenGL中,输入模块,回调函数特例解析 在OpenGL库GLFW中实现一些键盘控制, 这是通过设置GLFW的回调函数(Callback Function)来实现的。 回调函数事实上是一个函数指针, 当我们为GLFW设置回调函数后, GLWF会在恰当的时候调用它。 按键回调(KeyCallback)是众多回调函数中的一种,当我们为GLFW设置按键回调之后, ...原创 2018-11-16 17:00:58 · 1529 阅读 · 0 评论 -
LearnOpenGL之OpenGL特性
OpenGL特性扩展(Extension)OpenGL的一大特性就是对扩展的支持,当一个显卡公司提出一个新特性或者渲染上的大优化,通常会以扩展的方式在驱动中实现。如果一个程序在支持这个扩展的显卡上与运行,开发者可以使用这个扩展提供的一些更先进更有效的图形功能。通过这种方式,开发者不必等待一个新的OpenGL规范面世,就可以方便的检查显卡是否支持此扩展。if(GL_ARB_extens...原创 2018-11-09 11:46:28 · 315 阅读 · 0 评论 -
OpenGL ES基本用法
在Android、iOS等移动平台上,开发者可以使用跨平台应用编程接口创建二维或者三维图形,或进行图像处理和计算机视觉应用,结合两者将能构建丰富有趣的交互体验。前者称为OpenGL,后者称为OpenCV,不过本文主要介绍前者,OpenCV在后续文章中涉及。OpenGL应用于桌面系统的历史已经很长了,但考虑到移动平台的特点(计算能力、性能等),将OpenGL应用与移动端使用的是一个特殊的...原创 2018-11-01 23:04:34 · 407 阅读 · 0 评论 -
OpenGL和OpenCV的区别
OpenCV/OpenCL/OpenGL区别与联系:区别OpenGL(Open Graphics Library,开放图像库)是个定义了一个跨编程语言、跨平台的应用程序接口(API)的规格,它用于生成二维、三维图像。这个接口由近三百五十个不同的函数调用组成,用来从简单的图形比特绘制复杂的三维景象。而另一种程序接口系统是仅用于Microsoft Windows上的Direct3D。OpenG...原创 2018-10-17 20:51:52 · 6782 阅读 · 0 评论 -
OpenGL+VS2012环境搭建
近段时间在做图像处理,第一步当然是学习OpenGL。千里之行,始于足下。开发环境总是要浪费程序员太多时间。昨天捣鼓一天OpenGL的开发环境,看了网上N多的环境搭建教程和问题解决方案,始终没有达到自己想要的结果。今天一大早起来理了下思绪,重头整了一遍,也总算是把所有问题都解决了,避免以后再碰到这样,在此记录一下。 OpenGl VS2012环境搭建之freeglut OpenGl VS20...原创 2018-09-27 16:15:28 · 329 阅读 · 0 评论 -
OpenGL加载纹理glGenTextures——内存优化(OpenGL内存泄漏)
前言先上图看我程序在加载纹理时,内存泄漏情况:正常内存大小5分钟内存泄漏情况因为程序一直在接收二维数组(图像像素数据)然后实时绘制到界面,所以会一直加载纹理图像,OpenGL产生纹理id函数glGenTextures(GLsizei n, GLuint *textures)函数一直在调用,导致内存一直在泄漏。这谁扛得住~~~glGenTextures...原创 2019-05-07 15:07:12 · 5381 阅读 · 1 评论