Triangle waves

        一般的做周期曲线都采用sin来做,但是sin这个操作是个很费的操作,有时候需要一个近似的类似于sin的周期曲线,GPU Gems3第16章详细讲解了Crysis树木渲染的关键技术,其中就提到这个问题,这个方法被称之为Triangle Wave。Crysis将shader共享出来用的时候可以直接替换掉sin函数,赶紧记下来免得日后忘记了,Speedtree的shader里也是用这个来做树的动画的,可见的确很有优势,下次有空了再补上指令数目和具体的性能差别。

16fig03.jpg

float4 SmoothCurve( float4 x ) {  
  return x * x *( 3.0 - 2.0 * x );  
}  
float4 TriangleWave( float4 x ) {  
  return abs( frac( x + 0.5 ) * 2.0 - 1.0 );  
}  
float4 SmoothTriangleWave( float4 x ) {  
  return SmoothCurve( TriangleWave( x ) );  
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值