0
点赞
收藏
分享

微信扫一扫

怎么把Mesh转为SDF


Mesh转换SDF

Mesh是由三角面构成的,那么怎么得到空间一个点到这个mesh的最近距离,那么有个问题,是不是要区分他在物体内部,那么这里可能要求物体是凸的,且封闭,否则不太好判断是否在物体内部
那么我们有一个封闭的物体之后
下一步
把场景划分为512512512的块,然后得到每个点的坐标,然后和mesh的所有三角面求距离,得到最近的一个,然后,判断一下是否已经在三角面背面了,如果在背面,就算进入了,否则最近的距离就是这个空间点的sdf
伪代码

vec3 now = vec3(x, y, z);
float minDis = 1e10;
for(triangle of Mesh)
{
float distance = now.distanceTo(triangle);
if(now.isBehind(triangle) || distance < 0.1)
{
break;
}
if(distance < minDis )minDis = distance;
}
data[x,y,z] = minDis;


举报

相关推荐

0 条评论