Taichi – Physically based Computer Graphics Library
taichi.graphics
taichi.graphics
As you may have noticed, Taichi is still a work in progress and far from perfect. Actually, I plan to bring this project to you guys after a stable interface and comprehensive documentation are finished. I didn't plan to ``promote'' it today but for some reason it just gets some attention. I'm so surprised and my website taichi.graphics went down for the first time due to increased traffic. Thus I upgraded the server on GoDaddy...
About the Chinese name 太極, as noted in the FAQ section at http://taichi.graphics/misc/, I chose this word in the intersection of traditional Chinese (which is still used in some parts of China nowadays) and modern Japanese, since a significant part of Taichi was done during my internship at the University of Tokyo.
GPU support is absolutely meaningful, especially for the simulation part (like the snow and smoke). If I'm given more time (and access to GPUs) I would definitely try GPUs someday. For the rendering part, it's like CPUs are still widely used in the industry, though there are renderers with GPU support like LuxRender. Another consideration is that CPUs are more friendly to programmers and researchers for prototyping.
I'm recently doing a full-time internship at Microsoft Research Asia and have very limited time for this project. If you would like to contribute, that's truly appreciated.
Thank you again for your support and encouragement.
How much of that can you do in the cloud? IIRC there are some pretty beefy GPUs on EC2, for example.
The trouble is, I need to render planets, which are very very big objects, typically seen from very very close up; Povray's the only renderer I've ever found which could cope, and even then it needs clever tricks to avoid floating point errors. I'd like to switch to something else.
I do see that Taichi is based on embree (https://embree.gi) for doing the raytracing heavy lifting, which I did briefly look at; looking at it again I see there's a standalone renderer now (https://embree.github.io/renderer.html).
I'll certainly take a look. I wonder if Taichi does Rayleigh scattering? I need it to do atmospheres...
It's not ideal, of course it would be better to ignore such issues and just find a system that can "handle it" but dealing with numerical issues and the need for "clever tricks" is simply a reality of dealing with numerical approximations of reality.
What I'm currently doing is arranging things so that the camera's at (0, 0, 0) in world space, which means that precision loss caused by arithmetic is minimised. That solved the problem completely for me, by which I mean that I haven't noticed any more artifacting. But it does mean that I have to be aware of where each object is going to be in space rather than just creating them using local coordinates and translating them later.
Some interestingly broken pictures here:
http://stackoverflow.com/questions/20307441/is-this-a-povray...
I guess my point was more that you can't really expect another renderer to do much better, as it's a problem with what you (were) doing rather than a problem with the renderer per-se. Making things closer to the camera coordinates probably overall makes sense. But, I still think it's not a bad idea if you run into more trouble, you could also try rendering small and large objects separately and compose them afterwards. You'll still have to mess around with coordinate systems of course but separating the large and small objects might make it easier to do that. (e.g. make large objects smaller, camera closer, and render, make small objects bigger, camera same distance, overlay the two images.. it's to force the vector coordinates to be in ranges that are tractable for the rendering algorithms. Annoying, but possibly necessary in your case.)
Nice pictures btw ;)
> I wonder if Taichi does Rayleigh scattering? I need it to do atmospheres...
I like the cut of your jib.
Needs GPU support though, and that took Blender a long time to cover even the basic material properties.
[1] https://www.blenderguru.com/articles/render-engine-compariso...
It seems 2D examples are not working correctly and I'll fix them soon.
Then why “太極” instead of “太极”?
“太極” is a word from not only traditional Chinese, but also modern Japanese. Considering the fact that a significant part of Taichi (10+ papers and the general software framework) was done during my internship at The University of Tokyo hosted by Prof. Seiichi Koshizuka and Prof. Toshiya Hachisuka, I thereby chose this word in the intersection of two languages in memory of my time at UTokyo.[0]: http://taichi.graphics/about/
From my reading, traditional characters are still in use in China (distinguished for the purposes of this discussion from Taiwan).
Traditional characters are used informally in regions in China primarily in handwriting and also used for inscriptions and religious text. They are often retained in logos or graphics to evoke yesteryear.
https://en.wikipedia.org/wiki/Traditional_Chinese_characters...
In trademarks and business signs, TC is common.
https://www.quora.com/How-do-people-in-mainland-China-feel-w...
An application name is not all that different from a business name or a logo. Given this, choosing to use traditional Chinese characters (in this case 太極 in contrast to the simplified 太极) is consistent and not necessarily unusual. Of course, this is all speculation without hearing from the author.
1. There seem to be more phono-semantic compound characters.