第三十一章 投光物和多光源总结
投光物:将光投射到物体的光源。不同的投光物代表不同种类的光源。
平行光:(也叫做定向光)
光线都是平行的,物体和光源的相对位置不重要。场景中每个物体的光照计算都是类似的。
定义一个光线方向向量,而不是位置向量来模拟一个定向光。着色器计算不变,直接用光的direction向量,而不是通过position计算lightDir向量
struct Light {
// vec3 position; // 使用定向光就不再需要了
vec3 direction;
vec3 ambient;
vec3 diffuse;
vec3 specular;
};
…
void main()
{
vec3 lightDir = normalize(-light.direction);–光照要求:从片段到光源的光线方向。还需要对光源进行标准化
…
}
补充:
检测w分量是否等于1.0,来检测它是否是光的位置向量;w分量等于0.0,则它是光的方向向量(执行定向光照计算),这样就能根据这个来调整光照计算。
点光源:
处于世界坐标中某一个位置的光源,会朝着所有方向发光,但光线会随着距离逐渐衰减。
需要加入衰减,也就是:随着光照距离的增长,而线性减少光的强度,让远处的物体更暗。这个有公式,在此处不做研究
下面实现衰减:需要三个额外的常数值,存储在Light结构体中。使用之前计算lightDir的方法,不要和定向光计算混合
struct Light {
vec
第三十一章 投光物和多光源总结相关推荐
- 第三十二章 投光物和多光源总结
Assimp 将模型导入到程序中.需要掌握:解析导出的模型文件以及提取所有有用的信息,存储为OpenGL能够理解的格式. 模型的文件格式不同,每一种都有自己的方式来导出模型数据.有专门的库可以直接用, ...
- 【正点原子FPGA连载】第三十一章基于lwip的echo server实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南
第三十一章基于lwip的echo server实验 随着物联网的兴起,万物互联需要一个强大而又灵活的协议体系,TCP/IP协议得天独厚,而在嵌入式网络设备中,由于硬件资源的限制,需要特殊的实现方式.L ...
- 第三十一章 考试作弊
第三十一章 考试作弊 "对了,还有李淳风,把李淳风也一并记录上,并移送官府." "李丽质,你搞错了没有,把我移送官府干什么?我又没参与考试,并且这些都会,我凭什么作弊,我 ...
- 485串口测试工具软件_探索者 STM32F407 开发板资料连载第三十一章 485 实验
1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第三十一章 485 实验 ...
- 【正点原子FPGA连载】第三十一章RTC实时时钟数码管显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...
- 第三十一章 SQL函数 CONVERT
文章目录 第三十一章 SQL函数 CONVERT 参数 描述 CONVERT(datatype,expression,format-code) {fn CONVERT(expression,datat ...
- 程序员编程艺术第三十 三十一章 字符串转换成整数,通配符字符串匹配
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 第三十~ ...
- 现实迷途 第三十一章 胡乱吹水
第三十一章 胡乱吹水 注:原创作品,请尊重原作者,未经同意,请勿转载,否则追究责任. 一个周六的下午,天气很好,阳光灿烂,微风轻吹,炎热中透着清凉. 珠江河边上的一家环境不错的广式茶楼里,江北,狗子. ...
- 【正点原子STM32连载】 第三十一章 ADC实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...
最新文章
- Ueditor富文本添加视频内容,视频不显示以及编辑富文本时,视频不显示解决方案
- python中的sort,sorted
- 阿里云边缘云ENS再升级,四大场景应用加速产业数字化落地
- 从知乎了解到,为什么Mysql禁用存储过程、外键和级联?
- Logistic Regression Classifier逻辑回归
- 解决VS命令提示符 “Setting environment for using Microsoft Visual Studio. 此时不应有“系列错误
- fortran 读整行_我整周读过的最有趣的东西
- 一步步Netty的基石 - Reactor模式
- MongoDB数据库(二):增删查改
- java中的命令行参数_Java中的命令行参数
- 【迅速上手】Python 画图 —— 柱状图
- 基于大数据平台的城市规划设计
- Linux服务器操作系统 . 文件目录及文件管理
- linux时钟(时间)同步
- 计算机考研,这样选学校才是正解
- 怎么让台式计算机散发wifi,怎样能让台式电脑发出WIFI信号?
- MacOS基金管理软件
- debian9自动化部署Fully Automatic Installation(FAI)
- 如何判断欠拟合、适度拟合、过拟合
- winscp如何连接安卓手机_通过winscp连接路由器