Vertex Baking

顶点颜色渲染是一种较早的渲染方法,它为模型的三维网格中的每个顶点提供一组单独的颜色值,然后在传入硬件进行光栅化渲染时GPU会根据顶点的颜色对每个像素进行相应的插值而得到Pixel上的颜色值,进而为多边形着上渐变色。由其操作模式可知,一个三角形内部的像素受到其关联的三个顶点上的颜色值所影响而不论三角形的大小,因而若三角形的密度较大时这种方法还是很不错的,但是,当整个网格中三角形的密度较小时(大面种区域上有较少的三角形),就会得到不够平滑的着色效果。不过使用顶点颜色的渲染方式来表示模型表面一些较为低频的信息还是蛮不错的,比如AO等。一些早期(包括现在)的游戏引擎中就选择以顶点颜色来存储AO信息从而取代LightMap的作用以节省各种空间并提高效率。

 

上左图为对一个场景进行基于RT的AO烘焙的结果;右图为使用顶点着色的方法得到的结果,从其中可以看出使用顶点颜色来进行AO效果的烘焙效果还是不错的。当然,顶点颜色并不只能存储AO信息,其它一些Mesh表面的信息均可以通过一定的方式向顶点中存储并在渲染时使用。
一般来说将外部信息向Mesh的顶点中进行烘焙主要以下几种方法:

  1. 从当前顶点处直接采样外部信息并做为其对应的颜色值。在此种方式下,比如对于AO的烘焙就是直接根据场景计算该点外的AO值即可;
  2. 在Mesh表面上使用某种方式的采样(一般是均匀采样)并根据不同采样点对当前顶点的权重来计算外部信息在当前顶点下的颜色均值。一个三角形在渲染插值时其内部的像素只会受到其三个顶点的影响,因而一个顶点处的颜色值在计算时也只需考虑其所关联的那些三角形上的采样点即可。每个采样点对于该顶点的权重则可以直接由其重心坐标来计算。
  3. 类同于第二种方法,同样是在Mesh表面上设置采样点,只不过在由采样点计算顶点值时并不直接使用均匀权重综合的方法来计算,而是增加使用某些优化算法来进行,比如Least Square等(Least Square Vertex Baking中提出的这种方法)。
Least Square based Baking

接下来简单介绍下基于最小二乘法的顶点值烘焙方法(关于Least square介绍的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值