各位大佬,
请问有没有导入网格(例如OBJ)并粒子化的太极代码吗?
1 Like
可以看一下这个 voxelizer 的代码:taichi_elements/voxelizer.py at master · taichi-dev/taichi_elements · GitHub
1 Like
虽然过了这么多天,但还是分享一下解决方案。
是参考的铭睿的SPH_Taichi
其实就是借助trimesh这个库
可以试试看下面的代码
import taichi as ti
import trimesh as tm # load the triangle mesh
import numpy as np
def main():
ti.init(arch=ti.cuda)
mesh = tm.load("E:/Dev/SPH_Taichi/data/models/Dragon_50k.obj")
voxelized_mesh = mesh.voxelized(pitch=0.02).fill()
voxelized_points_np = voxelized_mesh.points
num_particles_obj = voxelized_points_np.shape[0]
voxelized_points = ti.Vector.field(3, ti.f32, num_particles_obj)
voxelized_points.from_numpy(voxelized_points_np)
# np.savetxt("voxelized_points_np.csv",voxelized_points_np)
window = ti.ui.Window("Test voxelize", (768, 768))
canvas = window.get_canvas()
scene = ti.ui.Scene()
camera = ti.ui.make_camera()
camera.position(5, 2, 2)
while window.running:
camera.track_user_inputs(window, movement_speed=0.005, hold_key=ti.ui.LMB)
scene.set_camera(camera)
scene.ambient_light((1, 1, 1))
scene.point_light(pos=(0.5, 1.5, 1.5), color=(1, 1, 1))
scene.particles(voxelized_points, color = (0.68, 0.26, 0.19), radius = 0.01)
canvas.scene(scene)
window.show()
if __name__ == "__main__":
main()
obj文件下载在这里
https://raw.githubusercontent.com/chunleili/SPH_Taichi/chunlei/data/models/Dragon_50k.obj
可以看一下我简单使用方法的讲解
【taichi】将SPH所需模型网格体素化并粒子采样 【taichi】将SPH所需模型网格体素化并粒子采样_哔哩哔哩_bilibili
2 Likes
哦,对了。其实顺带一提。如果你会用Houdini,也可以在Houdini里面使用points from volume这个节点达到相同的功能。然后再导出点云为PLY读入你的程序即可