光的属性以及设置物体材质得到不同的颜色展示。

描述一个表面,可以对三个光照分量 分别定义一个材质颜色,则可以通过对每个分量指定一个颜色,对表面的颜色输出进行控制。再添加一个反光度分量:
全部所需的材质属性如下:
#version 330 core
struct Material {
vec3 ambient;——环境光照下,表面反射的是什么颜色。通常和表面的颜色相同
vec3 diffuse;——漫反射光照下表面的颜色,一般是我们期待的物体颜色
vec3 specular;——表面上镜面高光的颜色
float shininess;——影响镜面高光的半径
};

uniform Material material;

上述是在片段着色器中创建的结构体,用来存储物体的材质属性。访问代码如下:
void main()
{
// 环境光
vec3 ambient = lightColor * material.ambient;

// 漫反射
vec3 norm = normalize(Normal);
vec3 lightDir = normalize(lightPos - FragPos);
float diff = max(dot(norm, lightDir), 0.0);
vec3 diffuse = lightColor * (diff * material.diffuse);// 镜面光
vec3 viewDir = normalize(viewPos - FragPos);
vec3 reflectDir = reflect(-lightDir, norm);
float spec = pow(max(dot(viewDir, reflectDir), 0.0), material.shininess);
ve

第三十章 光照及贴图总结相关推荐

  1. 【正点原子FPGA连载】第三十章 基于OV5640的PL以太网视频传输实验摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...

  2. Python之OpenGL笔记(38):三种光照通道的合成

    一.目的 1.实现镜面光照射下的棋盘球体: 2.环境光.散射光.镜面光三种光照通道的合成 二.程序运行结果 三.镜面光    现实世界中,当光滑表面被照射时会有方向很集中的反射光.这就是镜面光(Spe ...

  3. OpenGL.Shader:9-学习光照-法线贴图(计算TBN矩阵)

    OpenGL.Shader:9-学习光照-法线贴图(计算TBN矩阵) 这次文章学习法线贴图,法线贴图在游戏开发和GIS系统开发当中尤为广泛,其表现力特别的强,绘制的效果特别接近真实.更重要的一点就是, ...

  4. 【正点原子STM32连载】 第三十章 DMA实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1

    1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...

  5. 【正点原子FPGA连载】 第三十章双目OV5640摄像头LCD显示实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...

  6. 三次简化一张图:一招理解LSTM/GRU门控机制

    机器之心专栏 作者:张皓 RNN 在处理时序数据时十分成功.但是,对 RNN 及其变种 LSTM 和 GRU 结构的理解仍然是一个困难的任务.本文介绍一种理解 LSTM 和 GRU 的简单通用的方法. ...

  7. 图卷积神经网络(part3)--三个经典谱域图卷积模型

    学习笔记,仅供参考,有错必究 文章目录 三个经典谱域图卷积模型 概述 SCNN SCNN的缺点 ChebNet GCN 三个经典谱域图卷积模型 概述 三个图谱卷积模型(SCNN.ChebNet.GCN ...

  8. Direct 3D学习笔记(三)——光照与材质

    Direct 3D学习笔记(三)--光照与材质 现实世界中物体的颜色是一个复杂的系统,物体在不同的光照下,可能呈现在我们面前的就是不同的颜色.根据物理中的光学知识,物体在各种环境光照下,根据物体自身特 ...

  9. html无序列表只能横着排吗,[三地连线走势图]css 怎样让无序列表 横着排列

    大家好,本文问题是[三地连线走势图]css 怎样让无序列表 横着排列,由专家五湖彩解答.下面是具体回答内容: html> *{margin: 0; padding: 0;} ul, li{lis ...

最新文章

  1. 计算机网络规范的应用,计算机网络技术及其应用
  2. 展望2018:人工智能为媒体服务赋能
  3. SQL 结合CASE WHEN 实现二维统计
  4. 九度OJ-1088剩下的树
  5. dubbo和zookeper使用_Dubbox与Zookeeper简介及入门小案例
  6. 五月康乃馨,爱心献父母---母亲节快乐
  7. 【GNN】图嵌入之 node2vec:网络的可扩展特征学习
  8. 局域网屏幕共享_【宅家宝典】将手机屏幕搬上电视,只需解锁一个技能!
  9. 论文阅读_TASE: Reducing Latency of Symbolic Execution with Transactional Memory
  10. 彼得·林奇的 PEG 估值策略
  11. Instrument详解
  12. Unity中采用二进制存档与读档
  13. c语言——简单计算器
  14. android自定义app图标下载,安卓换图标
  15. 90公分的床多大的被子合适
  16. 隐式差分格式matlab,二维热传导方程隐式差分格式系数矩阵特征值的求取
  17. 天池数字生态创新大赛-遥感
  18. 超图解python物联网实作入门_完美图解物联网IoT实作入门:使用JavaScript/Node.JS/Arduino/Raspberry Pi/ ESP8266/Espruino...
  19. Java重载时的参数匹配原则
  20. Windows XP 进程分类(必要,需要,不要)windows xp 必要进程

热门文章

  1. iphone自定手机铃声
  2. 黑苹果键盘键盘驱动_苹果糟糕的键盘以及为何可维修性如此重要
  3. ML算法(常见机器学习算法公式)
  4. Protel DXP元件库快速搜索
  5. 蓝思科技2018年净利润达7亿元 同比下降65.59%
  6. Yandex如何进行语言包的汉化
  7. 办公高效、生活便捷!海尔科创生态园启用
  8. 【并发编程】 --- Reentrantlock源码解析5:再探不可中断性 + 线程unpark后诡异的Thread.interrupted()判断
  9. css绘制的湖泊天鹅网页代码
  10. WindowsAPI之joystickapi(游戏摇杆)头文件4