Yune - A Physically based Rendering framework (Personal Project)

EternalBlizzard

Lazy guy :s
Moderator
Oct 29, 2011
2,591
13
44
Attractor Field Beta
So I've been getting my feet wet with Graphics Programming since my 2nd year of BSCS. Completed my BS this year. And my bachelor thesis was on Physically Based Rendering and path tracing in general so me and my friend @Solid Link) have started this project aimed towards young researchers and programmers like us who are interested in Graphics Programming and want to implement their own Ray-tracers, Path-tracers etc. Everything is open source, just thought I'd share this here in-case anybody is interested in this field.

I'm sure pretty much everybody now would have heard the term Ray-tracing since NVIDIA's launch of RTX GPUs. So it's pretty much a different way of rendering that gives us photo-realistic images, the only problem being it's slow. And too damn slow for even today's hardware.

Yune is for pure Ray-tracing/Path-tracing as opposed to the hybrid approach used in real-time applications like Video Games. I have currently implemented only Uni-directional Path tracing and tracing geometric shapes like Spheres and Quads. @Solid Link is gonna extend it to Bi-directional soon and add support for arbitrary geometry by supporting triangles. The github repo can be found here,

https://github.com/gallickgunner/Yune

Copying this directly from github
Yune is a framework for a Physically based Renderer based on the GPU using OpenCL. It is mainly aimed towards young programmers and researchers who are looking to write their own Ray tracers, Path tracers and implementing other advanced techniques like Physically based Reflection models, etc. It provides the basic funtionality to open up a window, display and save Images that are processed by the GPU.
The key thing to note is that the renderer is purely on the GPU. This has it's own pros and cons. The cons being that OOP isn't available on the GPU so the code gets a little messy and some features are much harder to implement. The pros being that changing the rendering code doesn't mean you'll have to re-compile it. This means you can just download the release version, code your own implementation (if you know some C) and just run the application to view results. All the necessary setup and boilerplate code is managed by us on the CPU side so you won't have to worry about saving the result in images, displaying it etc.

I have added release version, so if anybody is interested they can download and run the "exe" file to see what it looks like. If any programmers are present and are familiar with Ray-tracing terms you can try opening the ".cl" file and change the sphere color, glossiness, lights etc. Even if you are not a programmer I'd appreciate if you could just try it out since I haven't tested it on many systems. Would like to know if the program crashes on some platforms. This would help me code better.

If you do intent on trying it out, note that the program on startup will give you a list of eligible platforms present on your machine. The program supports AMD/NVIDIA GPUs and also INTEL CPUs (higher than 3rd gen iirc). I am aware of some problems on Intel platforms but so far haven't got any problem running it on GPUs. After you select a platform, a list will appear for selecting devices if you have multiple GPUs. After you have done that the window will open up (see 2nd screen). Press start to start rendering.

This might not be the best place to share but eh, maybe someone gets interested and maybe I can be of some help. Anyways not going into these details since I don't wanna bore anyone here :D But in-case you guys are interested I can answer any questions you have. I am open to any sort of advice, feedback or criticism you guys have xD Jab tk koe keerha na nikale zindagi ka maza ka ata he :lol: Will update this thread when I add more features.

EDIT:- Official Reddit thread here,

Posting some screens,



The same image after half an hour, You can see it converged more,


 
Last edited:

iampasha

Well-known member
Apr 4, 2013
1,902
169
69
24
Karachi
So this is like reshade huh? Pretty cool stuff man.

Sent from my Infinix HOT 4 using Tapatalk
 

EternalBlizzard

Lazy guy :s
Moderator
Oct 29, 2011
2,591
13
44
Attractor Field Beta
So this is like reshade huh? Pretty cool stuff man.

Sent from my Infinix HOT 4 using Tapatalk
If by reshade you meant stuff like SweetFX etc for games then no it's actually quite different. Basically stuff like Reshade/SweetFX do Post-processing. This means the rendering (the creation of the scene) is done separately, the software is just using Image processing and other tricks on the already rendered image to give effects like Bloom, glow, maybe more vivid colors etc as far as I understand these softwares. Think of it as Photoshopping an image to give you better results, the only thing being the software is doing that through shaders I guess.

What we did is something different. We actually wrote the whole renderer. It's more like a small part of a game engine (the graphics engine). This means if you can provide me a scene file from Maya/Max I can render that scene and you can set the parameters like whether an object is shiny, rough or how bright a light is. However the way we render is different from how game-engines render. The technique we use is slow but gives accurate and Physically based results. You might not get it completely xD But if you are interested I can discuss more and even point to some interesting videos :D

Thanks for the support though, appreciate it (y)
 

EternalBlizzard

Lazy guy :s
Moderator
Oct 29, 2011
2,591
13
44
Attractor Field Beta
this is really nice EB, were you measuring performance by any chance ?
Thanks. You mean the FPS and all stuff? Yeah it's in the upper right corner. I'm getting around 25-30 FPS path tracing a 720p image xD But it's still path tracing geometric shapes and not triangles. We still haven't added support to path-trace arbitrary geometry using triangles. Currently working on it.
 

EternalBlizzard

Lazy guy :s
Moderator
Oct 29, 2011
2,591
13
44
Attractor Field Beta
Amazing work
Any way this can be somehow used to benchmark PCs in the future?
Well you can use it as it's now as a means to benchmark your GPU (discrete/integrated). IIrc Furmark or some software did use the same logic, they were benchmarking GPUs based on how well they could do Raytracing/path tracing. So if a GPU gives more FPS you can say it's more powerful than the other.

We don't intend to provide a full fledged benchmarking software like FurMark though. However people who want to create one, can on the other hand. We just intend on implementing more and more new algorithms
 
Last edited:
General chit-chat
Help Users
Bugs, Issues, Feature Requests ▶ GO here ◀
  • No one is chatting at the moment.
    iampasha iampasha: Disc is only used for drm on consoles now