len3d

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Assume a parametric curve can be denoted by P(t), any attribute T can be interpolated linearly with:

 

T = (1 - t) * T0 + t * T1  (1)

 

T0 is the attribute at t=0, and T1 is the attribute at t=1.

 

Differentiate equation (1) we have:

 

dTdx = (T1 - T0) * dtdx  (2)

 

Now the problem turns into how to compute dtdx.

 

Using Chain Rule, we have:

 

dPdt * dtdx = dPdx  (3)

 

We already know how to compute dPdx as described in Tracing Ray Differentials. Homan Igehy. Computer Science Department. Stanford University., so we solve dtdx by:

 

dtdx = dPdx / dPdt  (4)

 

dPdt can also be easily computed since it's just the tangent of the curve. Substituting (4) into (2) we got the final form:

 

dTdx = (T1 - T0) * dPdx / dPdt  (5)

 

This is the ray differential of any curve attribute T along raster x.

 

posted on 2012-04-14 22:50  Len3d  阅读(297)  评论(0编辑  收藏  举报