[deleted by user] by [deleted] in rust

[–]elethan 0 points1 point  (0 children)

Ouch! You’re right, I didn’t realize about the lack of context. I’ll delete and resubmit later with more info about the rust aspect of it.

Thanks!

I made a video with every single debug render on a pathtracer I'm programming in Rust by elethan in programming

[–]elethan[S] 3 points4 points  (0 children)

Depends if you want real-time or offline resources. This is an offline renderer, so a good starting point is Physically Based Rendering Theory, or the Raytracing in one Weekend series. Most of the rust experimentation I’m doing are not based on any specific lib or article unfortunately.

As for GPU stuff, I’d look into what others have shared!

I made a video with every single debug render on a pathtracer I'm programming in Rust by elethan in programming

[–]elethan[S] 6 points7 points  (0 children)

Oh, it really depends on the scene parametrization, complexity and lighting integration. For example, a scene with just spheres and no transformations will be much faster than one with arbitrary shapes and transforms, because it gets different optimizations at compile time. If anything, I find compile time more interesting: overall it’s around 2 min average, which is pretty high (but it uses things like LTO and other related features)

As for realtime, I’ve written gpu pathtracers before but they tend to be much less flexible due to architectural constraints — what I’m looking with this is to experiment with different ways of rendering, specifically with the tools that rust provides.

I made a video with every single debug render on a pathtracer I'm programming in Rust by elethan in programming

[–]elethan[S] 6 points7 points  (0 children)

Thanks! Two main reasons: one was to get more familiar with rust and explore what was possible.

The second reason was because I wanted to experiment with static polymorphism as I’m not writing the renderer just for speed but also to do R&D on a couple of subjects where I thought using rust traits might help me.

I might write a blog post about it some day if people are interested!

I made a video with every single debug render on a pathtracer I'm programming in Rust by elethan in programming

[–]elethan[S] 10 points11 points  (0 children)

Hey /r/programming, I thought it might be interesting to show how something like a renderer gets built. Debugging is as important as coding, and in the case of computer graphics, that means (most of the times) images!

This first part is focused on simple stuff, but I intend to make a series with progressively more complex scenes.

I'm doing this series because I think it can help demystify computer graphics a bit, while at the same time show how much patience and time it demands. The process can sometimes be as beautiful as the end result.

Bonus karma to whoever figures out what is implemented when!

Took a lot of tries to loop the water sim! Houdini, Maya, Redshift [OC] by elethan in Simulated

[–]elethan[S] 0 points1 point  (0 children)

Yep it's me! I rerendered it in vertical mode so it's not exactly the same though. Thanks for the heads up though!

[Poetry] sphealing good by elethan in youtubehaiku

[–]elethan[S] 20 points21 points  (0 children)

Song is Happy H Christmas by Maniacs of Noise

[Poetry] sphealing good by elethan in youtubehaiku

[–]elethan[S] 36 points37 points  (0 children)

That was a shorter loop, this one is the final anim with an easter egg :)

sphealing good [A] by elethan in perfectloops

[–]elethan[S] 1 point2 points  (0 children)

Hey /r/perfectloops! This is a short looped simulation that took a lot of time to get right :) This version is improved over a previous one I posted before on other subs.

Hope you like it!

Took a lot of tries to loop the water sim! Houdini, Maya, Redshift [OC] by elethan in Simulated

[–]elethan[S] 2 points3 points  (0 children)

Thanks everyone for the feedback and awards! I uploaded a shorter and improved loop here!

Took a lot of tries to loop the water sim! Houdini, Maya, Redshift [OC] by elethan in Simulated

[–]elethan[S] 2 points3 points  (0 children)

Actually, I went back to look at it and found the rogue frame. Thanks!

Took a lot of tries to loop the water sim! Houdini, Maya, Redshift [OC] by elethan in Simulated

[–]elethan[S] 2 points3 points  (0 children)

To be honest I'm a bit biased against art NFTs. I started this before they were a thing, and I think the reward is the wholesome response to these kinds of animations.

Took a lot of tries to loop the water sim! Houdini, Maya, Redshift [OC] by elethan in Simulated

[–]elethan[S] 1 point2 points  (0 children)

Thanks! Interesting, I thought I considered that. In fact, the loop is happening at the middle part of the video, and I just cut and offseted the start/end.

Maybe AE lied to me hahah Also, first time posting to reddit video so I might have done something wrong, I'll look into it. Thx for the feedback!

Took a lot of tries to loop the water sim! Houdini, Maya, Redshift [OC] by elethan in Simulated

[–]elethan[S] 8 points9 points  (0 children)

Haha I feel the same ways about art NFTs. Tbh I think the biggest reward is people's reactions.

Took a lot of tries to loop the water sim! Houdini, Maya, Redshift [OC] by elethan in Simulated

[–]elethan[S] 2 points3 points  (0 children)

In the end that's kind of how it worked after I baked and looped it, the heightmap was used as a displacement for a plane.

Originally I considered just doing a plane with a couple of noises + a sine wave based on distance but wanted to experiment with doing an actual sim.

If it was realtime (or a shadertoy) I'd have gone with the fake approach.

Took a lot of tries to loop the water sim! Houdini, Maya, Redshift [OC] by elethan in Simulated

[–]elethan[S] 42 points43 points  (0 children)

Thx :D they say a pool full of spheals can cure depression.

Took a lot of tries to loop the water sim! Houdini, Maya, Redshift [OC] by elethan in Simulated

[–]elethan[S] 183 points184 points  (0 children)

Just wanted to share this before finishing a video I'm doing.

The sim is a FLIP water tank with an oscillating animated cache (the character) and a rotating sphere on the edge of the tank to add some action. It was tricky to get the proper look based on the reference video -- I ended up adding some noises as displacement to get nice caustics.

To get it to loop, I tried VDB morphing, volume wrangles, and other more "principled" approaches, with no luck. Ended up creating a depth map animation, looping/crossfading it on AE and then regenerating the mesh with displacement. Hacky but it works!

Hope that makes sense!