科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件世界空间的法线映射

世界空间的法线映射

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

最近一直在研究地形相关的东西,其中一个问题就是地形在经过了LOD处理之后,顶点光照变得不再适用。因为patch的LOD级别变化时,一些顶点会突然出现或消失,如果采用顶点光照,pop顶点附近的亮度就会发生突然的改变,看起来很不自然;

作者:ZERO 来源:CSDN 2008年3月25日

关键字: 映射 法线 空间 游戏 Linux

  • 评论
  • 分享微博
  • 分享邮件

一看今天还挺早的(对于正常作息来说,也很“早”^^),再写点东西。

最近一直在研究地形相关的东西,其中一个问题就是地形在经过了LOD处理之后,顶点光照变得不再适用。因为patch的LOD级别变化时,一些顶点会突然出现或消失,如果采用顶点光照,pop顶点附近的亮度就会发生突然的改变,看起来很不自然;另一个缺点是视野中远处的地形会缺乏光照细节,因为顶点很少。

于是就考虑使用一个法线图来计算光照,分辨率只需要每地形格一个象素,可以根据顶点坐标事先处理好。这样在近处就能有和顶点光照同样的细节度,而远处不论mesh的精度有多低,光照细节始终保持不变。地形本身不会运动,所以这种法线映射可以是世界空间的,也就是说省去了切线变换等计算(关于切线空间法线映射的原理可以看前一篇文章),在PS中采样到的法线已经是世界空间的向量,可以直接拿来计算光照,这样也不用写VS了。另外由于使用了法线映射并且不需要计算切线变换矩阵,顶点数据中就不需要附带法线信息了。

当然只有支持ps_1_1以上的显卡才可以用,不知道固定渲染管线是否这种映射,稍后可以查一下资料。

如果还要在地形细节纹理中使用法线映射,那切线空间的计算又变得必须了。虽然理论上在PS中根据法线图采样得到的世界空间的法线也能计算出切线变换矩阵(因为地形顶点的特殊性,顶点的平面坐标和纹理坐标是线性相关的),但那样必然造成效率上的很大损失。如果恢复顶点的normal,tangent等信息,恢复VS的切线矩阵计算的话,世界空间的法线映射又变得没有用武之地。可能比较好的折中方案是对近处的地表采用顶点法线+细节法线映射;远处的地表直接采用世界空间的法线映射,反正远处的细节凹凸也看不出来。

这种文章没有图确实比较不爽,下回争取搞点图:)

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章