• BMesh 逆收缩代码对应解释


    构建标量场函数为了演化(逆收缩)

    [f_{i}(r)=left{egin{array}{c} left(1-left(frac{r}{R_{i}} ight)^{2} ight)^{2}, quad r leq R_{i} \ 0, quad r>R_{i} end{array} ight. ]

    其中 r^2 就是球函数
    (r^{2}=left(x-c_{x}^{i} ight)^{2}+left(y-c_{y}^{i} ight)^{2}+left(z-c_{z}^{i} ight)^{2})
    (R_i=alpha r_i) 其中(r_i)是球i的半径((c_x^i, c_y^i, c_z^i))是球的中心坐标,(alpha)是1.5应该就是一个系数。
    标量场定义为满足下面公式的东西。
    (mathcal{I}(oldsymbol{x})=sum_{i=1}^{n} f_{i}-T=0)
    其中(T)是门限参数,门限参数控制着演进网格多接近标量场。一个更大的T降维生成更瘦的结果。
    初始的网格图2C,定义为要演化的网格。
    具体而言点在表面移动的轨迹被认为时间t的函数x(t)

    [frac{d oldsymbol{x}}{d t}=oldsymbol{n}(oldsymbol{x}, t) mathcal{F}(oldsymbol{x}, oldsymbol{n}, mathfrak{K}, mathcal{I}, cdots) ]

    其中 (d oldsymbol{x} / d t) 认为是速率。(oldsymbol{n}=- abla mathcal{I} /| abla mathcal{I}|)
    被认为是法向量,(mathcal{I}) 被认为是标量场。(mathcal{F}(oldsymbol{x}, oldsymbol{n}, mathfrak{K}, mathcal{I}, cdots)) 是一个带符号的标量函数(运动速度函数)依赖于标量的属性包括位置和法向量曲率和标量场等等。典型的S(0)是初始化网格。
    运动速度函数(mathcal{F}) 被标量场和一个切线水平集决定。公式如下

    [mathcal{F}(oldsymbol{x}, oldsymbol{n}, mathfrak{kappa}, mathcal{I}, cdots)=left(mathcal{I}(oldsymbol{x})-mathcal{I}_{ ext {target}} ight) f(mathfrak{kappa}) ]

    这公式意味着顶点演化的更快如果它原理切线水平集。区域函数在这个公式中控制着演化速度对不同区域的自适应。
    标量场靠近小球会比靠近打球更加密集。在当前的系统中。(f(kappa)=1/left(1+left|kappa_{1} ight|+left|kappa_{2} ight| ight))表现的很好(kappa_{1})(kappa_{2})是顶点 (x) 的主曲率。
    一个顶点(oldsymbol{x}(t))在当前的网格面S(t)演进如下所示

    [oldsymbol{x}(t+Delta t)=oldsymbol{x}(t)+oldsymbol{n}(oldsymbol{x}, t) mathcal{F}(oldsymbol{x}, cdots) Delta t ]

    (Delta t) 是时间间隔防止出现震荡情况,我们限制的迭代的次数。公式从另一篇论文CFL中导出
    同时我们限制(Delta t)的最小值

    [Delta t leq frac{ ext {step}}{mathcal{F}_{max }(oldsymbol{x}(t), cdots)} ]

    step 定义为
    (step =min left{r_{i} ight} / 2^{k}) k是细分次数。最小的step定义为最小的球面半径

      double step = getMinRadius(root, root->getValue()->radius) / pow(2, subdivisionLevel);
    

    网格演进终止与表面接近标量场。演化工程在接近表面的时候很快。

  • 相关阅读:
    Activity之间的数据传递
    解析JSON
    使用HTTP协议访问网路
    WebView的初体验
    Alarm机制用于定时服务
    IntentService和Service执行子线程对比
    前台服务
    Android四大组件之服务
    异步消息处理机制,UI更新
    Git学习
  • 原文地址:https://www.cnblogs.com/eat-too-much/p/14208995.html
Copyright © 2020-2023  润新知