自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 OpenGL入门学习笔记(十四)----材质(material)

在现实生活当中,不同的物体对物体的反应和效果是不同的,比如说刚体比陶瓷更具有光泽,有的物体能展现出更大的高光点而一些不能,为了展示不同的物体对于同阳光照的不同反应,OpenGL为我们定义了材质(material)属性去指明不同的表面是什么样子的。我们可以分别为三个光照分量定义一个材质颜色。环境光照(Ambient Lighting)、漫反射光照(Diffuse Lighting)和镜面光照(Specular Lighting)。通过对每个分量指定一个颜色,就可以对物体表面的颜色输出进行更细致的控制。

2024-04-16 22:22:19 534

原创 OpenGL入门学习笔记(十三)----光照基础

实际上在现实生活中的光照是十分复杂的,我们难以在有限的处理能力范围去考虑到所有的因素,因此我们基于我们对于现实物理光的理解提出了几个简化的模型去尽量真实的模拟光照,其中一个模型就是冯氏光照模型(phong lighting model),这个模型主要分为三个部分:环境光照(Ambient Lighting)、漫反射光照(Diffuse Lighting)、镜面光照(Specular lighting)

2024-04-16 16:54:48 1012

原创 OpenGL入门学习笔记(七)----纹理(Texture)

想象我们的屏幕现在有一个很大的物体,他的表面仿佛该有一个丰富的纹理,当我们逐渐远离他时,它会在我们的视野中变得越来越小,细节也会越来越模糊,对应的纹理也会变得越来越小。纹理坐标的范围是0到1,但是实际上我们可以指定范围之外的纹理坐标,比如1.5,对于默认的情况,我们不做任何采样方式的规定,默认会为我们重复这个纹理,也就是说在x和y方向上1--2发放范围内会有一个和0--1范围内完全重合纹理图像给我们采样。在先前的章节我们已经学会了如何给绘制的物体添加一些想要的颜色,但是对于更进一步的细节,就不得不谈到。

2024-03-31 17:36:58 936 1

原创 OpenGL入门学习笔记(六)----编写自己的着色器类

然后根据传入路径打开文件输入到输入文件流,再写入到字符串流,最后在将这个字符串流转化为对应的字符串,但是需要注意的是,先前提到,OpenGL是一个类c语言的规范,最终在编译着色器时使用的是const char*而不是c++的string,所以最后还需要将这些字符串转化为c风格字符串用于生成着色器。同时注意文件打开使用后及时关闭是个好习惯。接下来我们有了着色器对应的字符串,就是我们熟悉的着色器编译生成Program的步骤了,如果对于这些你还不太熟悉,可以尝试回顾之前的篇章,确定在比较熟悉的情况下继续进行。

2024-03-31 16:26:09 326 1

原创 OpenGL入门学习(五)----着色器

前面有提到关于着色器就是用着色器语言写的用于图形渲染管线的程序,在OpenGL当中,着色器是使用GLSL的类c语言写的,GLSL是为图形计算量身定制的,它包含一些针对向量和矩阵操作的有用特性。它们可以是下面的形式(在游戏循环中,我们对我们的uniform进行使用,首先通过glGetUniformLocation在指定程序找指定名称的变量,然后通过glUniform4f进行赋值,关于函数glfwGetTime获取了程序运行的时间,我们通过三角函数将范围变化限制在了0--1,所以最终的颜色是随时间渐变的过程。

2024-03-18 12:17:39 726 1

原创 OpenGL入门学习笔记(四)----绘制第一个三角形

在上一节当中,我们已经具体的了解了图形渲染管线的工作流程,,接下来,就根据上篇所说具体用代码使用VBO,VAO并用我们编写的vertexshader和fragmentshader绘制三角形,由此来进一步体会图形渲染管线的流程和shader的使用。

2024-03-13 02:39:03 980

原创 OpenGL入门学习笔记(三)----图形渲染管道的基本流程

图形渲染管线大体被分为几个流程,其中每个部分都采用前一部分的输出作为输入,每个部分都有专门的函数执行,很容易并行执行,所以当今的GPU实际上很多都是由成千上万的小处理核心组成,他们各自运行各阶段的小程序,这些被运行的小程序就叫做着色器(shader)。OpenGL就是用的OpenGL shadering Language(GLSL)写的着色器。接下来概括地介绍图形渲染管线的各个部分,其中蓝色为我们可以人为编写操控的部分。

2024-03-09 22:55:44 1091 1

原创 OpenGL入门学习笔记(二)---- 创建窗口

学习参考网站。

2024-03-07 17:31:45 742 1

原创 OpenGL入门学习笔记(1)

在学习OpenGL前,首先需要对OpenGL的相关领域概念有一定的了解,从而对学习内容有一个大概的理解和把握。OpenGL一大特点就是它的拓展性,当一个显卡公司提出一个新特性或者渲染上的大优化,通常会以扩展的方式在驱动中实现。如果一个程序在支持这个扩展的显卡上运行,开发者可以使用这个扩展提供的一些更先进更有效的图形功能。通过这种方式,开发者不必等待一个新的OpenGL规范面世,就可以使用这些新的渲染特性了,只需要简单地检查一下显卡是否支持此扩展。

2024-03-06 20:37:54 129

空空如也

空空如也

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

TA关注的人

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