看到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的参数。就让带子看起来是渐隐的了。很高明很简单的做法。
本文详细介绍了如何使用四个参数实现四边形带子效果,并通过计算两点距离并调整速度实现渐隐效果。文章还解释了带子透明化的最大速度和最小速度的概念,以及如何在指定范围内合理化速度。

8337

被折叠的 条评论
为什么被折叠?



