游戏引擎之:渲染(shading)

整个渲染过程应该分为两个大的部分:
  1) material synthesis(材质综合),包括纹理和表面属性。
  2) illumination(光照),包括各种光照模型和渲染模型。
在这里主要涉及到的内容是illumination。
在OpenGL中,若需要计算光照模型(light model),就需要在指定顶点(vertex)的时候,为顶点添加两个属性:
1) 顶点的颜色;
2) 顶点出的法向向量;
这两个属性的值直接参与光照模型的计算公式中。下面就顺便提一下如何计算顶点处的法向向量:
首先计算任意一个三角平面的法向量。可以通过三角形平面中三个顶点的坐标计算出这个面的法向量:
         A _
          |  _  
           |   _
            |    _
             C---B

上面画的三角形的三个顶点是以顺时针顺序排列的,与之对应的是左手坐标系。在OpenGL中采用的左手坐标系,而在Direct3D采用的是右手坐标系。根据三个顶点计算三角形面法向量的计算公式是:
     normal=cross( (B-A), (C-A) )
在单个三角形平面中,三个顶点处的法向量就是此平面的法向量,但是很多情况下,几何体的一个顶点被多个平面共享,那顶点的法向量如何处理呢?一般情况下,我们通过计算共有该点的所有的三角形平面的法向量的平均值而获得。计算公式是:
       normal=cross( (B-A), (C

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值