- 博客(384)
- 资源 (2)
- 收藏
- 关注

原创 【持续更新】总结国内外图形学物理模拟相关学者和网站
总结图形学物理模拟相关学者和个人网站仅做个人笔记所用。欢迎在评论区补充!国外学者Matthias MüllerNV物理组的leader,1999年博士毕业于苏黎世理工博士论文是研究聚合物分子动力学模拟的,后研究图形学。XPBD作者之一。早期曾经研究SPH模拟变形体研究领域:PBD、SPHhttps://matthias-research.github.io/pages/Theodore Kim耶鲁大学副教授,曾任皮克斯高级研究员.曾参与寻梦环游记等动画制作PS: 2020年有一篇S
2022-03-30 12:23:39
6055
5
原创 WSL git文件异常 所有文件均显示已修改
解决方案:删掉之前在windows下git clone的文件夹, 然后在WSL中重新git clone。原因:是因为在Windows系统中git clone的文件夹,在WSL中会显示冲突。如图,文件中没有任何修改,但是都显示多了一个^M。
2025-03-22 22:27:20
359
原创 在windows WSL 安装DOT li2019 SIGGRAPH
然后在65行的include_directories补充"SuiteSparse/CHOLMOD/Include",也就是改为。WSL版本:ubuntu22.04。首先安装 intel mkl。
2025-03-06 21:10:08
215
1
原创 记录CUDA 编译器的很奇怪的一个BUG nvcc fatal : Could not set up the environment for Microsoft Visual Studio
这是因为在配置其他代码的时候,弄坏了环境变量。只要把当前多余的path变量情况就好了。
2025-02-23 14:06:36
381
原创 【读文献】xian2019: A Scalable Galerkin multigird method
假如用多个粗网格点可以通过权重控制一个点,那么这个weight就是0到1的,是smoothed。假如没有任何的多重网格,也就是只有一层的话,那么U就是包含的material space(rest pos,X)信息。假如有多重网格,那么就用粗网格的点去控制某个细网格的点。其中i是被控制的细网格点,j是粗网格上的控制点。而这个weight就是用j控制i的权重,要么是0(不控制),要么是1(控制)。xi是3x1的位置坐标,Aj是3x4的矩阵,Xi是4x1的齐次坐标的rest pos。那么从上面的关系,改写成。
2025-01-26 18:19:49
796
原创 houdini肌肉刷pin点的方法
在视窗enter进入编辑模式,就出现笔刷,在两端刷上gluetoanimation属性(属性可以在节点的attribute选项卡更改)。笔刷用法见出现的说明(左键刷出来,control+中键抹除,滚轮放大笔刷大小等)。使用blast节点,在group输入@muscle_id=_mus_deltoidclavicular_L就能单独过滤出这块肌肉。按s,鼠标悬浮到某一个四面体,就能在右上角高亮其对应的group。使用attribute paint节点(或者muscle paint节点,两者基本是一样的)
2024-11-29 23:37:27
315
原创 安装amgcl
你要把设置参数之类的放在main函数里面。每个case都是个单独的main函数。BOOST和MPI不需要安装也行。安装BOOST之后可以运行时指定参数。这是个header-only的库,不需要安装。编译poisson3Db example。下载数据(matrix maket格式)解压到amgcl根目录。
2024-10-18 12:00:46
261
原创 用一维数组存储不等长的二维数组的方法
start存储每行起始的下标。start[0]必定是0。start[-1]必定是n(一维数组长度)。在numpy或者gpu中,通常会遇到不等长的二维数组,如果都用其最大长度存储,就会浪费许多内存。原本我希望取val2d[1,2] 即第1行第2个值(=e)的时候,等价于在val1d中求。我们只需要把2d数组flatten成一维数组,然后用辅助数组start即可存储。2维数组记为val2d,1维数组记为val1d。第1行:[c, d, e]即val1d[4] = e。
2024-09-25 20:51:53
191
原创 使用vscode debug cpp/python混合编程的程序(从python调用的C++编译的dll)
拷贝自 https://marketplace.visualstudio.com/items?采用了attach process的方式,大致是根据dll的process id将debugger挂载上去。
2024-09-03 19:10:24
870
原创 Houdini 通过wedge来做模拟参数对比 (PDG TOP)
更改参数:attribute name处填入刚才那个变量的名字(如stretchstiffness), 其他的就表示要从-10变动到10,然后共10个点。在打开的窗口中输入P@streachstiffnessexp (只要是@后面随便起个名字就行, P@表示PDG能够找到的变量)这是个简单的布料悬挂的例子。指定输出的文件路径(这里P@wedgeindex表示是第几个小绿点,例如0到9)我们现在的目的是想要对比不同的streach stiffness对模拟的影响。这个节点是用来输出结果到文件的。
2024-06-27 02:08:39
693
1
原创 推导 Primal Residual XPBD
原本的XPBD(Macklin 2016)Chen2023主张左边的红色二阶项可以舍掉,但右边的g(也就是Primal residual) 应该恢复。因为左端那个是Quasi Newton的常见做法。而舍弃右边需要保证lambda很小才成立。舍掉会导致XPBD残差下降停滞,仿真不稳定。
2024-05-20 13:57:58
483
原创 pyamg Smoothed Aggregation算法流程
设置如下算例。分两步,第一步是setup,第二步是solve。第一步的目的就是得到P等。
2024-05-16 17:14:45
432
原创 Newton法求解布料
【GAMES103-基于物理的计算机动画入门】 【精准空降到 1:25:38】 https://www.bilibili.com/video/BV12Q4y1S73g/?
2024-03-18 16:36:00
917
原创 Debug Eigen
(下载地址: https://gitlab.com/libeigen/eigen/-/blob/master/debug/msvc/eigen.natvis )(如果你git clone过Eigen文件夹,就发现它就在Eigen源码的Debug目录下面)假如我们直接想要检查Eigen中的VectorXf的值,我们会发现无法看到内部的值,如图。(其中%VSINSTALLDIR%是Visual studio的安装目录)只需要下载eigen.natvis这个文件,然后放到下面的目录即可。
2024-02-01 23:59:28
748
原创 houdini vex中的属性类型(attribute)
https://www.sidefx.com/docs/houdini/vex/snippets.html#parameters
2023-08-04 16:20:34
1053
原创 ziran2019调用栈
admm1所处文件所处函数行号执行语句main.cppmain98h.start();AdmmInit.hstart38sim.simulate();SimulationBase.hsimulate347advanceOneFrame();AdmmSimulationFoam.hadvanceOneTimeStep813admmStep();AdmmSimulationFoam.hadmmStep781FStep(local_t
2023-08-04 11:52:25
626
原创 wsl安装ziran2019
是为了翻墙的话走代理。否则github clone的很慢。但是在Windows的硬盘创建文件的时候会出现权限问题,参考这个帖子。首先从windows商店搜索ubuntu18。注:WSL可以访问windows上的硬盘。然后重启WSL或重启windows即可。(我是用的wsl一代,二代没测试过)然后照着README安装即可。(亲测Ubuntu20不行)新安装的系统首先要更新apt。然后第一次打开会自动安装。
2023-08-03 22:21:20
1155
原创 【splishsplash】volumeSampling:粒子化采样的小工具
输出的vtk可以使用paraview预览或者使用python的meshio库读入。功能:输入一个obj文件,输出一个在体积内采样好的粒子文件(vtk)以查看粒子的平均半径是多少。类似于Houdini的。或者trimesh的。
2023-07-27 15:45:59
716
原创 如何将矩阵乘法改写成matrix free的形式
M存储:实际上存每个M的倒数。inv_mass数组为Nx1的。例如之前是1,2,3, 扩容后是1,1,1,2,2,2,3,3,3。col_ind: col_ind是从tet_indices得到的。它也需要扩容, 例如之前是1,2,3, 扩容后是1,2,3,4,5,6,7,8,9。其中gradC是mx3n的矩阵,它是CSR格式的,每行有12个非零值。M是对角矩阵,3nx3n。alpha_tilde是对角矩阵。同时有一个辅助的数组为col_ind,也是Mx12。col_ind记录的是每行的列下标。
2023-07-21 17:38:29
791
原创 使用scipy的kdtree寻找最近邻点
因为第一个点必定是自己所以找俩。返回的是两个np array。第一个是所有的最小距离,第二个是所有的最近点index。
2023-07-18 14:20:24
1443
biomass_papers_noPDF_2020-8-19.enlx
2020-08-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人