I meant a playable published game like your previous ray tracing test which is awesome.
A playable demo wonât come until later. There are still many things to implement ahead of me, and I work on this project in my free time (and final exams are coming up, so you can see how this will take a while). Iâm the only person whoâs actively maintaining this project too, so itâs really moving according to my pace. Expect a playable demo anywhere from tomorrow or 6 months later.
Hello, Id also implement some form of actor work scheduling as to not have too many worker tasks colliding with eachother⊠this can get very messy for big long computations so it is extremely nice to have
I have an idea for a realtime version. I made a denoiser that is not optimized, but can give a decent image at around 20 samples. Maybe the realtime version could not be bloated with pbr materials, so you donât have to worry about blurring textures. Even better, multiply the textures back into the image like a post process. You could also add more samples that donât go through all of the calculations around actual samples. These are just ideas I had based on my project that may or may not work with how u built the engine, but it could make the realtime version look a little better.
I appreciate your suggestions!
However, I do not plan for a real-time version of this. This will be mostly used for getting nice-looking, eye-candy, and blenderesque renders. What method did you choose for denoising? If itâs good enough, I might use it for renders! There already exists 2 denoisers in the current build:
- mean: fast and simple, works by averaging neighboring pixelâs color
- nlm: anisotropic diffusion. preserves edges, reduces noise, and still being relatively simply as a postprocessing step.
I will also make a different, primitive ray tracing function. It will be much faster for not doing extra calculations and this can be used for real-time applications if you want, but I still recommend crazytracer for that. crazytracer is actually focused on being fast and real-time. Thatâs what differenciates raytracers and pathtracers.
Your idea of âmultiply the textures back into the image like a post processâ does not really work because youâre giving up on the fundamentals of PBR materials entirely. These âfundamentalsâ are as follows: roughness, metalness, and normals. And besides, this is only really used in very old rasterized games.
Regardless, I appreciate your input, and you can build upon the pathtracer once I open source it!
This is neat! I love it, keep it up!
Yea that is a drawback to multiplying textures back.
About my denoiser
My denoiser isnât complicated, but if youâre curious all I did is take samples around a pixel and set the sampled pixelâs color to the pixelâs color. Then run that over all of the pixels. I did it that way, because the blur was stronger. Itâs good to not sample right next to the pixel, and instead give it a little bit of a gap. Itâs not optimized, but that got myself good images.
I almost forgot to mention the edge detection. I use depth, normal, objectâs color, objectâs material for checking edges.
I guess the one issue with blur denoisers is the image can look a little lumpy and edges close together canât blur enough to get good coverage. Only on 20 samples though. Theoretically more samples should remove that problem.
I just thought of an even better idea. You can scrap the all of the buffers except the normal buffer by just checking if the objectâs unique id is the same, then using the normal to retain object edges. I have not tested it, but it could work.
I tested it. it didnât work. WHY DID ROBLOX BLOCK SCRIPTS FROM GETTING THAT DATA!!
holy. this is peak editableimage
I said Iâm going to make a video showcasing the engine, but kind of forgot
This is the latest build, which has most of the promised features (except bloom). But donât expect an edited video, this is just a very crude OBS recording. I have many things to do today, so I wonât be working on bloom for now.
It renders the current scene in real-time (albeit, at a low resolution) with tonemapping. It uses an approximation/fast version of ACES, then post-processes it using the slow, more beautiful ACES when done rendering. It also uses a better configuration of the NLM (anisotropic diffusion) denoiser than in previous releases. Hope that explains most of the new things shown here.
Seriously, ive played this game before march. And wow its so fasttt! Also, can it render particles and particoe based volumetric lighting and billboard guis?
Is there an ETA until a public release?
Not really, but if I have to guess, the demo will be released sometime next week. The full public release would not be until later though; I plan many things for this project.
Making the bloom shader is taking the most of my time right now. I have already finished most of my todo list for the demo release, but because I chose the hardest way to implement bloom, it might take me an extra week to implement. For some reason I chose unityâs bloom shader implementation, which is only really used in AAA games.
It does not support particles⊠yetâŠ
this will be roblox in 2013 â â â â
you could leave bloom for the full release if its been that difficult to implement
I just finished most of it yesterday actually! I stayed up till 3AM that day and I couldâve sworn that I felt my brain melting. Itâs mostly lack of documentation on how itâs made.
This is not what youâll be seeing in the demo release. Iâm still fine-tuning it and optimizing it.
UPDATE: Iâm going to ditch this method for now, but I will be using a âdummedâ down version of this bloom. Once I feel like I completely understand how modern bloom works, I will rewrite the bloom shader. This is how it looks now (and iâm still making it better):
before/after
Thanks for sharing this! The ability to roam about in realtime to orient your camera for the right angle is nice for helping you get the right angle beforehand, and it does give me a good impression for the performance of this.
The only other pathtracer Iâve been aware of before this thread was made is by Vorobeyy (They donât seem to have a presence on DevForum?) so this adds to the library of pathtracers on Roblox. Neat.
Looking forward to see more progress on this
Hey everyone!
Big announcement now! Iâm finally releasing the demo for radius. The demo will not be downloadable and itâs only going to last 7 days. Try it out! - RADIUS [Pathtracing Engine] - Roblox
ok well its a little more pixelated than advertized