Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some thoughts or proposals about taichi_three/Tina features :) #34

Open
JerryYan97 opened this issue Dec 26, 2020 · 2 comments
Open

Some thoughts or proposals about taichi_three/Tina features :) #34

JerryYan97 opened this issue Dec 26, 2020 · 2 comments

Comments

@JerryYan97
Copy link

Hello!
It looks like Tina/taichi_three is under a significant refactorization and I think it maybe good time to throw out some ideas of mine to it (To be honest, I am not so sure about whether they are good or bad, but it looks like it is not harmful to put them out. Hopefully, they could be constructive). Maybe some of these ideas have been implemented but I didn't notice before. Sorry for that :)

I am currently using Taichi as my main tool for developing Physically Based Animation projects and Tina/Taichi_three is a great support to debug my algorithm in 3D intuitively. However, when I need to get cool rendered pictures for assignment submission or
showcase, it looks like it is still not good enough to replace Houdini's scene manipulation/workflow and its Mantra renderer.

So, I am thinking whether it is possible to add more features to Tina/Taichi_three to make it more easy to produce PBA/Simulation results.

1. Add more features to support more mesh/animation formats rendering (FEM and particles)

FEM rendering and millions of particles rendering with high performance. Currently, I am working on a FEM project and it needs lots of mesh processing to render it. For example, I need to use a function to find the outer faces of a FEM model and organize them into dynamic mesh. Meanwhile, I think these functions can be integrated into taichi_three to make FEM simulation more easy. Normals generation is also a function that I think can be integrated as a function in Tina.

Besides, if taichi_three has an easy way to read in a sequence of animation (Maybe particles sequences or FEM sequences) like Houdini and render them out. It would be helpful to debug if simulation time of a frame is too long. In addition, it can also eliminate the need of importing them to Houdini to check whether the whole simulation is correct.

2. Surface reconstruction functions for particles

It would be helpful if Taichi_three can integrate some surface reconstruction algorithm. In this way, it can make Lagrangian fluid or rigid body simulation more easy to show.

3. RTX hardware real-time rendering with Optix denoising

For Nvidia's Vulkan Raytracing projects on github, it looks like it is possible to make high-quality RT in real-time by combing RT pipeline and Optix together in a cross-platform way. It would be cool if these techniques can be used in PBA production in Tina, because Industry Renderers like Mantra/Arnold can only provide CPU rendering for free, which is really slow.

4. A default scene base with skybox, some lights and a floor

A default scene with skybox looks like a handy start for lots of PBA research projects and it looks like most of their scene configuration is just it.

5. Some scene formats with their geometry support

Gltf/Fbx/others....

@archibate
Copy link
Collaborator

Hi, thank for supporting this project!

FEM rendering
I need to use a function to find the outer faces of a FEM model

This feature sounds interesting to have, would you mind give me more information about how the data look like for a FEM model? I can hardly find cites on the Internet 😢 Thank in advance!

Normals generation

This is actually already included in Tina, you may use the tina.MeshFlatNormal or tina.MeshSmoothNormal node, e.g.:

mesh = tina.MeshModel('assets/monkey.obj')
model = tina.MeshFlatNormal(mesh)
scene.add_object(model)

some surface reconstruction algorithm

Yes! We already have a marching cube algorithm in tina.util.mciso, it is not loaded by default as it is extensive large:

from tina.util.mciso import MCISO, Voxelizer

You can find more usage details in examples/mciso_mpm3d.py.

RTX hardware real-time rendering

hardware ray tracing sounds not a good choice for cross-platform renderers like Tina, it is based on a general computation langurage Taichi rather than utilizing specific hardwares. But a ray tracing scheme is now under progress, don't worry :)

@JerryYan97
Copy link
Author

Hello!

Thank you for your reply!

As for FEM (Finite Element Method) rendering, maybe 'volumetric mesh' is a more accurate way to say... Sorry for that 😊 . Some examples of these files' formats are .vtk, .msh, ....

Here are some libraries or tools that I usually use. They also show some common use-cases or needs in this field:
https://pymesh.readthedocs.io/en/latest/
http://wias-berlin.de/software/index.jsp?id=TetGen&lang=1
https://gmsh.info/ (Here is the final rendering result that I hope Tina could achieve in some day)
https://github.com/Yixin-Hu/TetWild

Besides, I am also wondering whether it is good to stick on Taichi for the rendering pipeline, because, from my view, it looks like it limits the potential of showing Taichi's PBA simulation results.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants