Processing math: 100%

Hermite Interpolation

Hermite插值多项式

Hermite插值是一种插值方法,可以通过给定的点和导数值构造插值多项式。给定点(x0,y0),(x1,y1),...,(xn,yn)和导数值y0,y1,...,yn,可以构造插值多项式。本文介绍如何使用Newton差商生成Hermite插值多项式。

阅读更多

Point triangle distance

介绍

该文章中的c++代码参考了ipc-toolkit的实现。

点到三角形的距离可以用如下定义:

distance(xp,xt1,xt2,xt3)=minβ1,β2xp(xt1+β1(xt2xt1)+β2(xt3xt1))s.t.β10,β20,β1+β21

这是一个分断连续的函数,实际计算时可以根据点和三角形的位置关系分以下几种情况讨论,首先要将点投影到三角形所在的平面上:

  1. 投影后,点在三角形内部,此时距离为点到三角形所在平面的距离。
  2. 投影后,点在三角形的某个边朝外的半平面且投影在边上的点在边上,此时距离为点到边的距离。
  3. 其他情况,此时距离为点到三角形的三个顶点的最小距离。
阅读更多

Stress hessian computation in FEM

介绍

在进行软体模拟时,如果使用牛顿法计算最优的下降方向,需要计算能量密度函数Ψ关于位置x 的Hessian矩阵,即2Ψx2。其中x是一个四面体的四个顶点的位置。

2Ψx2=vec(Fx)Tvec(PF)vec(Fx)

阅读更多

Force computation in FEM

证明1

首先,已知

x=[x1x2x3]Ds=[x1x4x2x4x3x4](Ds)klxijeiejekel=xklxijeiejekel=δikδjleiejekel 这里把x后三列写成一个3x3的矩阵。D1m的分量表示为dmnP的分量表示为Prs,则能量密度函数Ψ关于位置x 的梯度为:

阅读更多

Projective Dynamics 的local step实现推导

介绍

Projective Dynamics是一种用于软体模拟的方法,算法分为local step和global step两个部分。其中local step可以对于每个四面体约束并行计算,global step只需要求解一个线性方程组,而他的矩阵非常特殊,是一个Gram矩阵,因此可以预先用Cholesky分解。本文主要介绍local step的实现的推导过程。用Corotated strain model的CUDA的实现作为例子。

阅读更多

渲染方程及BSDFs

光传播方程(The Light Transport Equation, LTE)

Lo(p,ωo)=Le(p,ωo)+s2f(p,ωo,ωi)|cosθi|dωi

阅读更多

光线投射(raycast)公式中的far-clip

光线投射公式

从相机发出一条光线,穿过与相机距离为1的屏幕上的某点,已知相机参数和点在屏幕空间上的位置(sx,sy),计算世界空间中投影到该点的对应点的坐标的公式为: P=ViewMat1ProjMat1((sx,sy,1,1)farClip).

阅读更多