OpenGL — GLFW — 颜色

这篇博客记录了使用OpenGL和GLFW为模型上色的步骤,包括编写顶点和片段着色器,以及在主程序中给着色器赋值。教程中提到,颜色的设置主要是通过定义变量并在着色器中处理。最后,博主强调这是个人的学习笔记,旨在为未来的项目提供参考。
摘要由CSDN通过智能技术生成

OpenGL — GLFW — 颜色

参考教程:https://learnopengl-cn.readthedocs.io/zh/latest/02%20Lighting/01%20Colors/

既然,网络上已经有现成的教程了,我为什么还有在写一遍教程呢?
这个教程不是给大家写的,而是给我自己写的,算是我的学习笔记吧。我将编程序的重点提起出来,并将我的经验和遇到的问题记下来,为日后的我做参考用的。知识会随着时间的流过,而慢慢的被遗忘,当日后有一个项目要用到OpenGL的知识时,那个时候的我可能已经将当初学到的OpenGL忘记的擦不多了,这个时候,我就需要过去的我来帮助我,可以这样理解,跨越时空的两个我在完成一个项目!不错,这就是记笔记的作用。

给模型上颜色,两个步骤:

  1. 编写片段着色器
  2. 在主程序中给片段着色器赋值
  3. 在主主函数中,使用片段着色器

你可能会问,颜色有什么好讲的?我想说:你问对了,真的没有什么好讲的。就是定义一个变量:

glm::vec3 color(1.0f, 0.5f, 0.31f);   // 珊瑚红(Coral)

编写程序步骤

第1步:

程序

先顶点着色器程序,就用个精简版的程序:(顶点着色器(Vertex Shader)文件名为:color.vs

#version 330 core
layout (location = 0) in vec3 position;

uniform mat4 model;
uniform mat4 view;
uniform mat4 projection;

void main()
{
    gl_Position = projection * view * model * vec4(position, 1.0f);
}

解释

layout (location = 0) in vec3 position;

得到CPP程序中是ID是0的数据,将ID为0的数据的物理意义定义为顶点位置

uniform mat4 model;
uniform mat4 view;
uniform mat4 projection;

这些变量是需要在CPP程序中等待赋值的。
归根结底,这三个变量都是4*4的矩阵,都是作用于模型的每一个顶点的。
但是他们代表着不同的物理意义:

model 模型自身的姿态矩阵。姿态旋转平移组成。
view 摄像机姿态矩阵。
projection 透视矩阵。
void main()
{
    gl_Position = projection * view * model * vec4(position, 1.0f);
}

gl_PositionGLSL(OpenGL Shading Language)着色语言中的一个内置变量,即输出的顶点位置。

总结:这个顶点着色器的作用就是:更新顶点的位置

第2步:

程序

编写片段着色器:(片段着色器(F

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值