
OpenGL相关
文章平均质量分 80
如云缥缈
这个作者很懒,什么都没留下…
展开
-
初学OpenGL(1):准备工作
因为实验室要做一个三维眼球重建的项目,老板让我先熟悉一下OpenGL的编程,以下内容参考了LearnOpenGL CN,github地址戳我。 一、环境配置 GLFW+GLAD+VS2017,具体流程参考上面的教程。 GLFW是一个专门针对OpenGL的C语言库,它提供了一些渲染物体所需的最低限度的接口。它允许用户创建OpenGL上下文,定义窗口参数以及处理用户输入。 ...原创 2018-04-15 11:40:28 · 418 阅读 · 0 评论 -
初学OpenGL(2):绘制三角形
一、着色器 在OpenGL中,任何事物都在3D空间中,而屏幕和窗口却是2D像素数组,这导致OpenGL的大部分工作都是关于把3D坐标转变为适应你屏幕的2D像素。3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线(Graphics Pipeline,大多译为管线,实际上指的是一堆原始图形数据途经一个输送管道,期间经过各种变化处理最终出现在屏幕的过程)管理的。 图形渲染管线接受一...原创 2018-04-17 20:34:58 · 3011 阅读 · 0 评论 -
初学OpenGL(3):着色器
一、简述 着色器(Shader)是运行在GPU上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。从基本意义上来说,着色器只是一种把输入转化为输出的程序。着色器也是一种非常独立的程序,因为它们之间不能相互通信;它们之间唯一的沟通只有通过输入和输出。二、GLSL 着色器是使用一种叫GLSL的类C语言写成的。GLSL是为图形计算量身定制的,它包含一些针对向量和矩阵操作的有用特...原创 2018-04-17 22:47:34 · 407 阅读 · 0 评论 -
初学OpenGL(4):纹理
1、纹理是什么 纹理(Texture)是一个2D图片(甚至也有1D和3D的纹理),它可以用来添加物体的细节;你可以想象纹理是一张绘有砖块的纸,无缝折叠贴合到你的3D的房子上,这样你的房子看起来就像有砖墙外表了。因为我们可以在一张图片上插入非常多的细节,这样就可以让物体非常精细而不用指定额外的顶点。2、纹理的映射(Map) 为了把纹理映射到我们的图形上,需要给每个顶点关联一个纹理坐标(T...原创 2018-05-01 15:47:20 · 2517 阅读 · 2 评论 -
初学OpenGL(5):变换
1、坐标变换缩放: 我们下面会构造一个变换矩阵来为我们提供缩放功能。我们从单位矩阵了解到,每个对角线元素会分别与向量的对应元素相乘。如果我们把1变为3会怎样?这样子的话,我们就把向量的每个元素乘以3了,这事实上就把向量缩放3倍。如果我们把缩放变量表示为(S1,S2,S3)我们可以为任意向量(x,y,z)定义一个缩放矩阵:位移: 向量的w分量也叫齐次坐标。想要从齐次向量得到3D向...原创 2018-05-01 16:49:30 · 382 阅读 · 0 评论 -
初学OpenGL(6):坐标系统
1、概述 对我们而言比较重要的共有5个坐标系统:局部空间(Local Space,或者称为物体空间(Object Space))世界空间(World Space)观察空间(View Space,或者称为视觉空间(Eye Space))裁剪空间(Clip Space)屏幕空间(Screen Space) 为了将坐标从一个坐标系变换到另一个坐标系,我们需要用到几个变换矩阵,最重要的几个分别...原创 2018-05-01 20:09:59 · 340 阅读 · 0 评论 -
初学OpenGL(7):颜色和光照
1、颜色 我们在现实生活中看到某一物体的颜色并不是这个物体真正拥有的颜色,而是它所反射的(Reflected)颜色。当我们在OpenGL中创建一个光源时,我们希望给光源一个颜色。当我们把光源的颜色与物体的颜色值相乘,所得到的就是这个物体所反射的颜色(也就是我们所感知到的颜色)。glm::vec3 lightColor(1.0f, 1.0f, 1.0f);glm::vec3 toyC...原创 2018-05-03 23:04:48 · 2974 阅读 · 0 评论