taichi_houdini
taichi_houdini copied to clipboard
Support per-particle physical properties
Imagine a scenario when user bumps a light elastic ball into a heavier elastic ball. This may be solved by super-sampling in the heavier ball, but will bring more troubles (like stable condition).
More accurately, and desiring to give the user more control, per-particle physical property should be supported in the ti-element-sovler.
Ti-Element end
- Instead of using a single member variable, use ti.Field for the following parameters: p_vol(when ppc is not 2**dim, vol is different), p_rho, p_mass, p_Lambda, p_mu
- Modifying the following kernel: P2G, G2P (and/or G2P2G) where it uses the old member variables, now use p_var[p_index]
Houdini-end
- the creation of each property (as point attribute) and reading from SOP node (as np array) is already supported
- say if property X is already supported in ti-element-end, remember to fill the obtained np array for X to solver before step(frame_dt); after step(frame_dt), export from solver to np array, then set SOP node point attribute from this np array.