soulogic 昨天二闺女弄到个天使光环,大闺女特别高兴终于有能戴的头饰了,因为头发会没,所以一直不戴任何帽子
其实楼主,这个问题真的非常难解决,哪怕十年后光追普及了,该穿模还是穿模,目前看不到自动解决的方法
说学究点,这个世界你不观察到普朗克尺度,你看到的都是连续的
但是游戏里的“普朗克时间”非常大,
假设,一个运动的球,要么在 A 位置(空中),1/60 秒后,下一帧,已经在 B 位置(一半在墙里)甚至足够快的话,可能直接穿墙了,在整个运动过程中根本没碰到墙。
如果是连续肯定会撞墙,但是计算机绘图时,只能按帧算,你可以认为每次都是瞬移到下一帧的。普朗克时间,跟一帧的时间,大概是小数点后四十多个 0 的差距
大部分解决思路是,我多加几帧逻辑帧,比方说绘图每秒 60 帧,我四倍,每秒 240 逻辑帧,这样碰撞就能检测到了,或者特殊物体特殊照顾,比方说bul1et可视模型是个小东西,实际碰撞模型是个细长筒
但是,光是检测到有问题了,要怎么矫正?比方说角色贴墙,就挡住了,跟墙的距离是 0,但这是把角色按圆柱体或者正方体计算,如果是个不规则图形,这玩意要有形变么(涉及恐怖的计算量)?如果不形变,两头都被卡住,还是要卡在哪个物体里?(比方说有些鬼畜的抖动,就是因为,按不同的物体来矫正位置,但是每次判断的顺序不一样,就成了在两个位置上随机出现了,看起来就是抖动)
而且我说的卡住才三个物体,如果是头发、耳朵、帽子、衣领、肩膀(其实每个部位也是由好多物体构成),他们之间的碰撞要怎么计算呢
我这是还没接触到计算机图形学,仅仅是后端做一些逻辑上的碰撞检测,就发现这坑有多深了。而且可遇见的将来,我看不到这个问题有正面解决的可能。