shader之旅-5-加入光照

在加入光照之前,先重构一下以前的工程。具体如下:

1. 在CMakeLists.txt中用环境变量读取glsdk的位置

2. 茶壶的数据放到一个公共的目录,并在程序中用宏来获取

3. 程序中shader的目录也用宏来获取,该宏在CMakeLists.txt设置

下面讨论一下光照的问题:

为了方便编程,没有将光源的信息,材质的信息通过uniform传入shader,而是在shader中直接指定。

1. 平行光:这种最简单,速度也最快。原理就是光线与顶点法线的夹角决定了反射光的强度。

2. 点光源:这种除了考虑夹角,还需要考虑距离引起的衰减(attenuation)。attenuation采用了一个关于距离的2次函数

3. SpotLight: 这种光源需要考虑距离,法线夹角,以及到中心线的距离(用着色点到灯光位置的向量与光线的夹角表示)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值