物质质点法--从理论到实现
本文为The Material Point Method for Simulating Continuum Materials 的笔记。首先本文介绍了push forward和pull back,它们为欧拉视角和拉格朗日视角之间的转换提供了重要视角。接着,本文从形变梯度,拉格朗日欧拉视角,压力的定义出发,根据动量守恒以及能量守恒推导了整个系统应遵守的核心方程。物质质点法采用了欧拉以及拉格朗日的混合视角,对空间给出了质点以及网格两种不同离散形式,本文还讨论了这两种离散形式之间物理量如何转化,以及核心方程的离散化形式。最后,本文给出了一个简单原始的mpm实现,并详细解读它的代码。
Push Forward and Pull Back对于一个双射映射,能找到 我们都有 有
对于任意映射 我们都能定义 ,
Push Forward和Pull back在拉格朗日视角和欧拉视角之间相互转换起着重要作用。它定义了如何看待两个变化着的系统的不变量。
形变梯度为了研究物体随时间形变的受力,我们通常会研究物体的deform空间以及reference空间。其中reference空间种物体处于不受任何力的自然 ...
如何在glsl中使用printf--debugPrintfExt
主要参考VulkanでShaderからprintfする方法
在shader中开启GL_EXT_debug_printf拓展可以很方便的在shader中使用print。用法为:
在shader开头开启GL_EXT_debug_printf拓展:
1#extension GL_EXT_debug_printf : enable
在shader中用和printf同样的方法调用debugPrintfEXT
123456void main(){ ... debugPrintfEXT("from mesh thread group %d %d %d\n",gl_GlobalInvocationID.x, gl_GlobalInvocationID.y, gl_GlobalInvocationID.z); ...}
接着需要在vulkan configurator中添加对这个拓展的支持。
在validation settings 中标红线处的选项改为Debug Printf Present
在vulkan创建instance的过程中需要初始化Vk ...
vulkan 光线追踪
1.准备部分需要添加的device extension:VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME,VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME以及 VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME在创建device的过程中,需要将其加到 VkDeviceCreateInfo 结构体的 ppEnabledExtensionNames 中。
123456vector<const char*> usedExtensions;...//添加其它extensionusedExtensions.push_back();...VkDeviceCreateInfo createInfo{};createInfo.ppEnabledExtensionNames = usedExtensions.data();
之后,我们可以通过VkPhysicalDeviceRayTracingPipelinePropertiesKHR 结构体取得vul ...
Smoothed-particle hydrodynamics
1. SPH Kernel常用的sph kernel函数如下式所示
W(r)=c \left\{\begin{matrix}
1-6(\frac{r}{h})^2 + 6(\frac{r}{h})^3 &(0 \le \frac{r}{h} < \frac{1}{2})\\
2(1-\frac{r}{h})^3 &(\frac{1}{2} \le \frac{r}{h} < 1) \\
0 &else
\end{matrix}\right.c为归一化系数,对于1d sph 有:
I_1 =\int _0^{\frac{h}{2}} 1 - \frac{6}{h^2}r^2 + \frac{6}{h^3} r^3 dr + \int_\frac{h}{2}^{h} 2(1-\frac{r}{h})^3 dr\\
= (r-\frac{2}{h^2} r^3 + \frac{3}{2h^3} r^4)|_{0}^{\frac{h}{2}} - h\frac{(1-\frac{r}{h})^4}{2}|^{h}_{\frac{h}{2}}\\
= \frac{h}{2} - \ ...
CS417 physics based animation笔记
本文为课程CS417 Physics based animation的课程笔记。本课程从欧拉拉格朗日方程以及数值算法出发,介绍了如何模拟弹簧质点系统,有限元,刚体模拟以及流体模拟(流体还没做,摆烂)。对于课程内的公式,本文在力所能及的范围内适当补充了推导过程。
1.Euler-Lagrange任何力学系统应满足的法则,给出广义坐标时能快速对系统受力分析。
两点之间直线最短:
对力学系统,定义广义坐标 ,广义速度 ,能量函数 ,动能函数 ,势能函数 ,有:
\begin{matrix}
L=T-V (1.1)
\\
S(q,\dot{q})=\int_{t_0}^{t_1} L(q,\dot{q})dt
\end{matrix} 当物体运动的起始点和结束点 给定时,泛函 取得最小时系统稳定。当 稳定时,其偏导数趋近于0:
S(q,\dot{q})=S(q + \delta q,\dot{q} + \delta \dot{q}) (1.2)
S(q + \delta q,\dot{q} + \delta \dot{q})
=\int_{t_0}^{t_1} L(q+\delta q, ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment









