首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对热法的错误理解

对热法的错误理解
EN

Computer Graphics用户
提问于 2020-09-12 22:31:38
回答 1查看 62关注 0票数 3

一段时间以来,我一直在试图理解一种CG纸,肯恩称之为“热方法”。

很多事情都被点击了,但我还没有完全理解。尤其是。

在下面的u中,是一个维数等于网格中顶点数的向量。

本文认为求解(id - t\Delta)u_t = u_0是表面热流的时间离散近似。重写给出:u_t = u_0 + t\Delta u_t 或英文,时间t的热流等于时间0的热流加上时间tu的laplacian。这只是一个向后的Euler方法,非常简单。

然后我们得到:(M - tL_C)u = δγ,,概括地说,它和上面一样,只是我们把介质离散成一个三角形网格。

M是一个平方对角线矩阵,其中条目m_{i,i}是包含顶点i的三角形面积之和的2倍。在数学m_{i,i} = 2\sum_j A_j / 3中,A_j是包含顶点i的三角形区域。L_C也是一个平方对角矩阵,其中(L_C u)_i = \sum_j (\cot \alpha_{ij} + \cot \beta_{ij})(u_j-u_i)是laplace算子在顶点i上的一个逼近。

因此,操作公式:(id - tM^{-1}L_C)u = M^{-1}δγ,,这是空间离散的形式:(id - t\Delta)u_t = u_0

所以,这在代数上是有意义的,但现在我不明白了。

为什么要这么做?为什么要解决这个方程给出正确的热扩散?让我解释一下我的意思。在我看来,测地线距离(或热流,这是同一种方法的目的)是高度依赖于一个网格的形状。因此,为了知道顶点i的测地线距离,我必须首先知道它前面的顶点相对于源的测地线距离。

然而,这个方法似乎意味着,给定一个任意的网格和该网格上的任意点p_0。我可以获取网格上的任意点p_1,告诉您从p_1p_2的测地线距离是多少,而不必看网格的完全连通性来确定连通图。

我不完全确定我所要求的是否清楚。我理解这个问题的代数,但我不能联系这个方程是如何给你正确的热流,在一个网格上。为什么您可以在不考虑特定连接信息的情况下并行地这样做呢?

EN

回答 1

Computer Graphics用户

回答已采纳

发布于 2020-09-14 00:51:31

在求解方程(M - tL_C)u = \delta_\gamma时,必须有效地反演算子:u = (M - tL_C)^{-1} \delta_\gamma 注意到,虽然单个算子ML_C仅是局部的,包含了关于网格的单个顶点和边的信息,但是逆算子显然不是局部的。反演是一种全局运算,它结合了被倒置的整个矩阵的信息,这意味着整个网格的信息。(请注意,由于M是对角线的,所以它有一个微不足道的逆,但是L_C绝对没有。)

在实践中,您可能并不是从字面上计算逆矩阵,而是使用高斯消元之类的方法来求解给定的u。在这种情况下,这是一个解决过程,它整合了整个网格的信息。有效的L_C编码是在相邻顶点之间编码一串约束,求解者必须同时满足整个网格的所有约束。

(请注意,这不是一个琐碎的可并行工作。有一些方法可以利用并行性来加速求解大型线性系统,但它们将是在问题的不同“尺度”之间上下传递信息的多通方法。想一想类似于并行前缀扫描或FFT之类的东西。)

顺便说一下,关于这个方程的另一个观点是,它正在求解uu = M^{-1}(\delta_\gamma + tL_Cu) 中的不动点,这是代数重写相同方程的另一种方法。在这种形式下,它看起来很像渲染方程L = L_e + \int L \, f_{\text{brdf}}!它具有类似的结构,其中\delta_\gamma类似于发射的辐射,L_C类似于表面的散射。就像在渲染方程中一样,你正在寻找一个全局平衡解。(如果渲染被离散化,我们同样可以通过将散射算子转换成矩阵,并将整个物体分解成线性求解器来解决这个问题。)

票数 1
EN
页面原文内容由Computer Graphics提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://computergraphics.stackexchange.com/questions/10215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档