- 博客(9)
- 收藏
- 关注
原创 threejs实现模型切换为动态漩涡
这样圆环会形成一个等比数列,我规定第一个最小圆环有8个点组成,所以点总数S与圆环数n的关系为S=(n*n+15n)/2,然后根据模型点数x,计算最大n满足(n * n + 15 * n) / 2 < x。根据距离计算y的偏移程度:公式sqrt(distance)*sin(distance*10.0-time)*0.05*p*p代表按sin函数波动并且越远波动振幅越大,乘p*p为了减小波动对图形1的影响。p代表两个图形的进程百分比,最小0,代表图形1占比百分百,最大1,代表图形2占比百分百。
2024-11-12 13:47:34
654
1
原创 等分曲线y=ln(x)算法
效果图:同样50均分,红色(梯形法则)和绿色(积分表达式)是本文章算法实现的效果(为了对比,有一定偏移),蓝色是简单的均分x得到的效果。
2024-11-12 11:16:42
1040
1
原创 threejs实现模型粒子化,并实现模型粒子切换动画
传统办法是使用cpu计算每一个点的位置并在requestAnimationFrame中更新,这种方式完全没有利用到gpu的计算优势,这种简单且大量的计算用顶点着色器是很简单的,我们只要一个进程百分比的uniforms就能实现切换动画,问题的关键就变为了找到进程百分比和位置的对应关系,然后通过改变进程百分比就实现了动画。直接遍历模型的geometry.attributes.position,不过为了实现模型粒子动画,切换的模型粒子数要和原本模型的粒子数相同,我的解决办法是补齐粒子数少的模型。
2024-11-10 12:53:42
535
原创 关于多边形形变为另一个多边形的过渡动画问题
2、如果多边形的点数不一致,假设M>N,第一个为N边形,第二个为M边形,我们需要扩展N边形为M边形,比如[[x1,y1],[x2,y2]...[xn,yn]]可以扩展为[[x1,y1],[x1,y1],[x1,y1],[x2,y2],[x2,y2]...[xn,yn]],这样的数组表示的还是同一个多边形,后续处理同情况一,这一种情况看上去也不复杂,但是我们没有一个合适的方法通过暴力的枚举会发现不现实,因为扩展的情况的组合数量为N)意思是M!什么样的数组是同一个多边形。
2024-04-04 22:12:14
245
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人