DirectX 10特性 Alpha to coverage效果

1649 篇文章 11 订阅
1623 篇文章 22 订阅

     在Directx10中,增加了Alpha to Coverage。它是多采样技术的应用,对渲染多个重叠多边形,比如树叶等很有用。Alpha to Coverage是一种Dithering-like Transparent 算法,可以实现一定程度上的OIT(Order-independent Transparent)。

    通过设置ID3D10BlendState的属性AlphaToCoverageEnable为true,可以打开alpha to coverage功能。注意:不管渲染状态中多重采样是否开启,如果设置了AlphaToCoverageEnable为true,都会开启alpha to coverage功能。

     Alpha-to-coverage利用PS之后像素(rgba格式)的a分量,产生一个n-step(n位,这儿n是采样数量)的coverage mask,这个mask和多重采样的mask进行and操作,决定那个采样会被更新,从而传到下一操作阶段。在这个操作过程中,像素的a值本身并不会有任何改变,所以不会影响下一阶段的alpha blend操作。

 

DirectX 10的其他改进

  alpha to coverage

  在游戏中,经常使用带有半透明信息纹理的多边形模型来模拟复杂的物体,例如,草、树叶、铁丝网等。如果使用真正的模型,一颗边缘参差不齐的小草可能就要消耗掉几百个多边形;然而采用透明纹理,可以只用2~3个多边形就解决了。

半透明纹理
透明纹理示意

  然而,当使用这种有半透明信息的纹理时候,它的不透明和透明部分的边界线上,常常会出现难看的锯齿。采用半透明混合技术可以解决这个问题,但是它需要把场景中所有这类物体按照由远到近的顺序来绘制,才能保证它们的遮挡关系是正确的,这会给CPU带来很大的压力,并不可取。在以前版本的DirectX中,alpha测试和混合简直就是图形程序员的噩梦。

  在DirectX 10中,使用了一种新的技术叫做Alpha to coverage。使用这种技术,在透明和不透明交界处的纹理像素会被进行多极取样(Multi-sample),达到抗锯齿的效果。这就在不引入大的性能开销的情况下简单并有效地解决了这个问题。室外场景的游戏将大大受益于这种技术,树叶、铁丝网、草的边缘将会更加柔和、圆滑。

Alpha to coverage效果
Alpha to coverage效果

  shadow map filtering

  阴影图(Shadow map)技术已经逐渐成为了渲染真实感阴影的流行技术。在包括《战争机器》、《分裂细胞:双重特工》、《Ghost Recon》、《刺客信条》等的各大次世代游戏中都能看到它的身影。然而,由于shadow map的尺寸限制,用它实现的阴影边缘往往有明显的锯齿。在DirectX 10中,提供了对shadow map进行过滤的功能的正式支持。经过过滤后,阴影的边缘将会变得更加柔和。

 

http://www.highdiy.com/html/soft/application/394_1.shtml

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值