Gamebryo 带子的实现

本文详细介绍了如何使用四个参数实现四边形带子效果,并通过计算两点距离并调整速度实现渐隐效果。文章还解释了带子透明化的最大速度和最小速度的概念,以及如何在指定范围内合理化速度。

看到GB有个例子有刀光(带子)觉得不错。研究了一下。

他给予了3个参数:

带子的段数(四边形数)

带子透明化的最大速度和最小速度.

 

他大概的意思是

先创建一个四边形

四边形的uv和 color-a 是根据你一同有多少个四边形来等分。也就是整个完整的四边形带子。只用了一个纹理。从头到尾 A分别是0-1

m_kVertices[m_iStartingIndex] = pkTop->GetWorldTranslate();
m_kLastPoint = pkTop->GetWorldTranslate();
m_kVertices[m_iStartingIndex + 1] = (pkTop->GetWorldRotate() * NiPoint3(0.0f, -70.0f, 0.0f))

                                                               + pkTop->GetWorldTranslate();

他是用 p1 -----------p3

               |                 |

                |                 |

                  |                 |

                   |                  |

                 p2                  p4

p1是最开始挂接这个带子的位置. p2是挂接骨骼位置变换到了挂接点旋转后的位置。下一个点p3一样的。应为要出现带子你挂接的点肯定要会动的。那么p3就是下一帧的位置了。然后p4还是旋转后的位置。这样就产生了一个跟随挂点的连续四边形带。然后根据指定的最大带子数去掉最开始产生的。维持四边形书量稳定。

速度怎么用呢。他会

 NiPoint3 kPoint = m_pkTopObject->GetWorldTranslate();
    kPoint -= m_kLastPoint;
    float fDist = NiSqrt(
        kPoint.x * kPoint.x + kPoint.y * kPoint.y + kPoint.z * kPoint.z);

算你前后2个点的距离。 除与流失的时间。那么就是速度。在按照最大和最小速度的区间让速度合理化。

然后在你最大和最小速度之间插值。作为A的参数。就让带子看起来是渐隐的了。很高明很简单的做法。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值