自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 OpenGL学习笔记(十一)材质和光照贴图

5天没有继续学习和更新博客了,惭愧惭愧,继续今日的学习笔记吧材质(Material)属性:用来模拟不同性质的物体,通俗的说就是给观察者一种贴近现实的真实感。材质颜色(Material Color):由环境光照(Ambient Lighting)、漫反射光照(Diffuse Lighting)和镜面光照(Specular Lighting)定义。#version 330 corest...

2019-11-28 21:12:31 444

原创 OpenGL学习笔记(十)颜色和光照

在现实生活中看到某一物体的颜色并不是这个物体真正拥有的颜色,而是它所反射的(Reflected)颜色。在图形学中的思维可以是先定义一个光源,随后通过控制其反射颜色来决定实际显示效果。//定义光源颜色glm::vec3 lightColor(1.0f, 1.0f, 1.0f);//定义物体颜色 glm::vec3 toyColor(1.0f, 0.5f, 0.31f);//计算乘...

2019-11-23 10:17:17 576

原创 OpenGL重要词汇表

OpenGL: 一个定义了函数布局和输出的图形API的正式规范。 GLAD: 一个拓展加载库,用来为我们加载并设定所有OpenGL函数指针,从而让我们能够使用所有(现代)OpenGL函数。 视口(Viewport): 我们需要渲染的窗口。 图形管线(Graphics Pipeline): 一个顶点在呈现为像素之前经过的全部过程。 着色器(Shader): 一个运行在显卡上的小型程序。很多阶...

2019-11-23 10:08:37 149

原创 OpenGL学习笔记(九)终于!进入3D

坐标系统(Coordinate System):局部空间(Local Space,或者称为物体空间(Object Space)) 世界空间(World Space) 观察空间(View Space,或者称为视觉空间(Eye Space)) 裁剪空间(Clip Space) 屏幕空间(Screen Space)三个重要矩阵:模型(Model)、观察(View)、投影(Projectio...

2019-11-20 11:12:45 290

原创 OpenGL学习笔记(八)图形变换

矩阵(Matrix)对象:线性代数有提及,此处主要是讲它在OpenGL中的用法位置向量(Position Vector):起点是原点的向量基本运算:向量与标量运算、向量取反、向量加减、向量点乘、向量叉乘向量标准化:求得向量的单位向量的过程公式:以上相关知识都在大学课程《线性代数》中在OpenGL中运用需要自己定义相关的类和对象,当然是用已封装好的GLM更方便GLM是Op...

2019-11-20 10:44:49 287

原创 OpenGL学习笔记(七)纹理单元

一个纹理的位置值通常称为一个纹理单元(Texture Unit)。纹理单元的主要目的是在着色器中可以使用多于一个的纹理。通过把纹理单元赋值给采样器,可以一次绑定多个纹理,只要首先激活对应的纹理单元。就像glBindTexture一样,可以使用glActiveTexture激活纹理单元,传入需要使用的纹理单元:glActiveTexture(GL_TEXTURE0); // 在绑定纹理之前先激...

2019-11-18 16:29:57 1028

原创 OpenGL学习笔记(六)纹理

纹理(Texture):即贴图。使顶点关联纹理坐标(Texture Coordinate)用来标明该从纹理图像的哪个部分采样(采集片段颜色)。之后在图形的其它片段上进行片段插值(Fragment Interpolation)。纹理坐标定义:float texCoords[] = { 0.0f, 0.0f, // 左下角 1.0f, 0.0f, // 右下角 0...

2019-11-17 15:37:37 403

原创 OpenGL学习过程中的一点感想

博主是大四在读生,以前都没有写博客的习惯,经人推荐后开始写,发现这样还是很能加深学习印象的,也方便回顾过往的学习内容。学校开设了OpenGL的课程,于是开始了这方面的学习。然而,因为所学专业是GIS,即地理信息科学,OpenGL并不作为核心课程设置,老师教授的是基于Qt自带的GLUT库的OpenGL,跟不上现在主流的需要了。在一次找工作面试渲染引擎的过程中,面试官吴老师给了我很多启发,基于个人兴趣...

2019-11-14 19:53:06 498

原创 OpenGL学习笔记(五)OpenGL 着色器

着色器(Shader)是运行在GPU上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。着色器是使用一种叫GLSL的类C语言写成的。GLSL是为图形计算量身定制的,它包含一些针对向量和矩阵操作的有用特性。着色器的开头总是要声明版本,接着是输入和输出变量、uniform和main函数。每个着色器的入口点都是main函数,在这个函数中处理所有的输入变量,并将结果输出到输出变量中。一个典型...

2019-11-13 19:20:05 371

原创 OpenGL学习笔记(四)OpenGL 你好,三角形(2)

顶点数组对象(Vertex Array Object,VAO)可以像顶点缓冲对象那样被绑定,任何随后的顶点属性调用都会储存在这个VAO中。这样的好处就是,当配置顶点属性指针时,只需要将那些调用执行一次,之后再绘制物体的时候只需要绑定相应的VAO就行了。怀着面向对象的思想去看就很容易理解这一点了。注意:如果绑定VAO失败,OpenGL会拒绝绘制任何东西。创建VAO:unsigne...

2019-11-11 19:56:10 245

原创 OpenGL学习笔记(三)OpenGL 你好,三角形(1)

顶点数组对象:Vertex Array Object,VAO 顶点缓冲对象:Vertex Buffer Object,VBO 索引缓冲对象:Element Buffer Object,EBO或Index Buffer Object,IBO3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线处理其过程:两个主要部分:第一部分把你的3D坐标转换为2D坐标,第二部分是把2D坐标转变为实...

2019-11-10 15:36:14 236

原创 OpenGL学习笔记(二)OpenGL窗口(基于Qt)

OpenGL库:1、GLU;2、GLUT;3、GLUI;4、GLEW;5、GLEE;6、FREEGLUT(GLUT已经于1998年不再更新了。于是就有了freeglut)QT本身就带着opengl的几个相关头文件,用法:在.pro文件中添加:QT+=opengl在.cpp文件中引入完整的OpenGL库:#include "mainwindow.h"#ifnde...

2019-11-09 12:45:21 523

原创 OpenGL学习笔记(一)初识OpenGL

OpenGL被认为是API(Application Programming Interface, 应用程序编程接口),包含了一系列可以操作图形、图像的函数。然而,OpenGL本身并不是一个API,它仅仅是一个由Khronos组织制定并维护的规范(Specification)。早期的OpenGL使用立即渲染模式(Immediate mode,也就是固定渲染管线)。从OpenGL3.2开始,规...

2019-11-08 18:43:09 219

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除