L7 计算机图形学————光照和栅格化,着色(openGL入门)三种着色模型Flat Shading, Gouraud Shading, Phong Shading

这篇博客探讨了计算机图形学中的光照和着色模型,包括环境反射、漫反射和镜面反射。介绍了OpenGL中的Flat Shading、Gouraud Shading和Phong Shading三种着色方法,阐述了它们的工作原理、优缺点以及在实现过程中的关键步骤。读者将学习到如何使用OpenGL进行照明和着色编程。
摘要由CSDN通过智能技术生成

Lighting and Rasterization - Shading
学习目标
1 分类不同类别的光源
2 理解图像形成过程
3 数学建模三种反射类型并了解其属性
4 了解三种渲染方法,并比较它们的优缺点
5 能够使用 OpenGL 对照明和着色进行编程。

照明和着色模型

1.计算在场景的给定点应该看到的光线的强度和颜色。
2.最终目标是 photorealism

  • 照明模型 :模拟光源和环境光
  • 着色模型: 模型物体和大气如何处理灯光(反射、吸收、折射等)

光源
  1. ambient source 环境源
    模拟背景灯 ·
  2. 点光源 point source
    对于附近的小光源
  3. 分布式源 distributed source
    对于附近的大型光源。由一系列点光源的集合模拟。
  4. 照明方向 lighting direction
    (如太阳) 对于遥远的光源在这里插入图片描述

*实际看到的光源更高阶更复杂
在这里插入图片描述


着色

在这里插入图片描述

  • 不透明物体 只反射和吸收光;透明物体 只折射和吸收光
    半透明物体 可以折射,反射,和吸收光。
  • 反射光的量 只取决于 材质。一般来说 shiny的材质可以反射更多光,dull的材质吸收更多的光。(我们暂时只讨论不透明的物体)

反射的类型:

  1. 环境反射(ambient reflection):是无方向的,光照是来自背景的平均信号
  2. 漫反射(diffuse reflection):一般发生在粗糙,暗淡,无光泽的表面。在所有方向均等地散射光
  3. 镜面反射(specular reflection):一般发生在光滑的表面,朝一个方向反射的光更多
  4. 下面一张图大家可以比较一下漫反射(diffuse)和镜面(specular)反射的区别在这里插入图片描述
环境反射ambient reflection

ia为入射环境光;
ka为环境反射系数,介于0和1之间。
则我们有 :在这里插入图片描述

  • 环境反射 可以解释为背景中来自多个光源的漫反射的平均值。
漫反射diffuse reflection
  1. 考虑点光源或照明方向
  2. 朗伯表面(lambertian surfaces):来自表面的反射以相同的强度在所有方向上散射,与观察方向无关在这里插入图片描述
  3. 表面接收的入射光量与表面在照明方向上的投影面积成比例
    在这里插入图片描述
    kd为漫反射系数,介于0和1 之间;
    il(incident light)为入射光强度
    N为表面的单位法向量
    L 为光照的单位方向向量
  • 那么NL就是单位投影区域(nl是cos theta 是个标量!!),如果这一点不太清楚可以看下面这张图:
  1. 对漫反射,我们有如下公式
    在这里插入图片描述
镜面反射(specular )
  1. 考虑点光源或照明方向
  2. 完美的镜面反射=完美的镜子,如下图,完美的镜面反射中,光照只在R方向反射; 不完美的镜面,总会有光在R周边分散地反射出去。
    N 表示L和R等分的方向(入射角=理想镜中的反射角)
    R 表示单位镜面反射向量
    V 表示单位观察方向向量
    在这里插入图片描述
  3. 对镜面反射,我们有公式:
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值