So I rly wanted to make a test Ray-Tracer for Unity this weekend… and here is what came of it so far.
Also would anybody find the ability to Ray-Trace your Unity3D scene useful as a plugin??
Duplicate topics aren’t allowed; in the future please just choose the one most appropriate category and post there.
–Eric
Sounds Good. Removed the link to the other post.
nice results. doubt its realtime though ![]()
it looks promising, and chance you could provide a quick standalone demo (mac,pc,linux) or a web player. it looks astonishing, please tell me that is in REAL-TIME!!! if not, i will sob in the corner of my room (just joking). great job Btw
dose this require unity pro?
Ya I could make a demo app. Its not real-time though. Its rendered on the CPU using one core right now(would make it multi core later). But its cool because you can set your scene up in the Unity Editor.
Also this could run in realtime using compute shaders, not sure how fast though.
No it runs with Unity Free or Pro.
Im kind of wondering if people would find a tool like this useful… or maybe I should just keep it a hobby project.
This sir is impressive! Keep Up the good work!
BTW, I know it isn’t in real-time, but how fast does it take to do ONE render? If you’re going to put it up on the asset store, or post it here, that would be appreciated!
Keep in mind Its a prototype so its not optimized, so its only using one CPU core ect… But as an example on the last two Pink/Blue Robot images. The one with Hard shadows took about 30sec and the Soft Shadow one took about 4min.
Hello, do you still have that Ray Tracer? What did you do with it? Are you going to release it?
I didn’t think there was any interest so never continued the project.
If there was interest I might consider doing this but because this takes a lot of time I would need to know its worth it for me… not sure where to get the data required to make that determination though.
Well if you don’t want to do any more on it and are not using it for anything, why not just put it on the internet for people to download for free? It seems a shame for all that work to go to waste!
You could put it on the Unity Wiki pages?
Or if you put it in the asset store I’d buy it for $15 in its current state. No problem.
I’ll see if I have it backed up as I did this in 2013 but keep in mind it was a simple prototype and never ment to be used for anything other then a concept with that version so I don’t think that version would be useful.
Maybe i’ll take another look into making a useful one ![]()
Out of curiosity, what kind of things were you hoping to use it for? What kind of scene rendering features would be useful for something like this besides the typical features like soft-shadows ect. Maybe Volumetrics, Toon-Shading, God-Rays, Sub-surface-scattering, Ambient-Occlusion, Depth-Of-Field, ect?
I think the real interesting bit happens when you turn it into a compute shader!
Well think it would be useful for apps where you create some sort of 3D object or creature and you want to render take a nice screenshot of it to put on Tumblr or something. Or even you could use it in a game and take a ray-traced screenshot of your car passing the finishing line.
Or you could use it to make a ray traced image of your game scene for use as a title screen.
I think it looks cool as it is. Maybe you could do a simple one as it is for a cheap price (or free!) and then if you want to add in all the extras you could do a pro version if you get a lot of interest!
I think a lot of people would like it just to see how ray tracing works and mess around with the scripts.
Exporting Ray traced renders from an interactive architecture walk through could be very useful.
I didn’t find my original RayTracer test. Probably on a back up drive.
Here is one I made last weekend: Dropbox - Error - Simplify your life
Its multi-threaded though not perfect it gives an idea of how they work.
I’ve also been working on an offline-ish renderer in Unity on and off, it’s a modular Path Tracer, running multithreaded.
Built it so that it’s very easily portable between Unity integration and a Standalone version (as I rewrote all the math/vectors, physics, added BVH spatial subdivision bla bla to circumvent Unity API multithreaded problems). Also has its own scene format etc…I’ll leave some RnD shots here! Very interesting others are working on similar stuff!
Very impressive! Do you have plans to release this to the public (Asset Store)? Would love to get my hands on this!
+1
@akabane your work is really interesting for my non-game app
Any plan for future release?
@jcarpay @kenshin1 :
Thanks! Glad to see some interest in this.
For now it’s just a pet project. We plan on using it in-house for visualization stills when it’s “production ready” (which might be sooner than I think actually). After we delivered the first jobs with it we’ll think about releasing to the community to see what can happen with it. The main problem for now is, of course, speed. Even if multithreaded, path tracing is so so cruel without SIMD vectors and very smart SAH algorithms to split the image in good buckets - two things I haven’t implemented. I think the next step is going to be translating at least the rays and path calculation on a compute shader to get to use some of the power of the GPU. After that is done, I’ll see what the rest of the studio thinks about it and eventually get it out on the Asset Store ![]()
On another note, another branch of our renderer is getting ready to be made as small plug-ins for Unity once it gets to the computeShader route - so that one could choose to use just the traced DoF/True reflections/Indirect Light/Traced Shadows etc…so it would have a baseline rendertime (which would be the time needed for the scene to get traced) but then the time for the calculations of the path tracer can be cut by not wanting some effects, etc…We’ll see ![]()
Another very interesting thing will be porting it to Unity5 and see how to integrate it with the new lighting system (maybe steal unity’s bdrfs to calculate the trace? hehehe), and I also read some things about new thread-safe APIs we can call. I’m going to need to see if there’s something that can help the current structure of the software ![]()







