OpenGL.光照模型

本文介绍了OpenGL中的光照模型,重点讲解了Phong光照明模型和Blinn-Phong模型。内容包括点光源、聚光灯、无穷远光和环境光的定义,以及材质的镜面反射、漫反射和透明特性。详细阐述了Phong模型中的向量nlvr、颜色计算方法,以及Blinn-Phong模型如何简化计算,提高效率。

光照

  • 分析一下光照是怎么个回事
    • 光源被认为有四种
      • 点光源:从一点向四面八方发出光线
      • 聚光灯:从一点朝一个方向发出光线,且只在一定的角度内有光,离中心越近越亮
      • 无穷远:平行光
      • 环境光:错综复杂的给每处物体都均匀的打光
    • 材质有三种,也就是对光有三种反射
      • 镜面反射面:镜面反射光
      • 漫反射 :均匀反射光
      • 透明面:折射光

Phong光照明模型

  • 这个人叫Phong不用怀疑了
  • 光线被分成了三类,分别用三个参数来刻画
    • 漫反射光:Ldr,Ldg,Ldb
    • 镜面反射光:Lsr,Lsg,Lsb
    • 环境光:Lar,Lag,Lab
    • 光线怎么能这样分?其实这只是计算的一种模型,并没有物理意义
  • 材质被分为了三个属性,也分别用三个参数来刻画
    • 漫反射系数:Rdr,Rdg,Rdb
    • 镜面反射系数:Rsr,Rsg,Rsb
    • 环境反射系数:Rar,Rag,Rab
  • 对于一个顶点,有四个向量来刻画其光照
    • 法向量 n
    • 入射向量 l
    • 理想反射向量 r
    • 视线向量 v
    • 且均规定为以顶点为起点的单位向量
    • 四个向量
  • 计算的时候也分为镜面、漫和环境三类,之后再叠加起来即得到光照下的颜色
向量nlvr
  • 向量n由程序指定,glNormal
  • 向量l为顶点指向光源位置的单位向量
  • 向量v为顶点指向相机位置的单位向量
  • 向量r由公式求得,在n为单位向量下,l 无论是不是单位向量
    r=2(ln)nl
求解颜色
  • 漫反射
    Id=Rdmax(ln,0)Ld

    • Rd为漫反射系数,讲道理应该在0到1之间
    • Ld为漫反射光的强度
    • l·n为入射方向和法向二者夹角的cos值,也就是说入射方向与法向夹角越大,认为漫反射的衰减越强。超过90度则cos为负,但光强没有负值,且超过90度就认为漫反射不起作用,所以乘0
  • 镜面反射
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值