Logo by dainbramage - Contribute your own Logo!

END OF AN ERA, FRACTALFORUMS.COM IS CONTINUED ON FRACTALFORUMS.ORG

it was a great time but no longer maintainable by c.Kleinhuis contact him for any data retrieval,
thanks and see you perhaps in 10 years again

this forum will stay online for reference
News: Did you know ? you can use LaTex inside Postings on fractalforums.com!
 
*
Welcome, Guest. Please login or register. April 15, 2021, 07:52:35 AM


Login with username, password and session length


The All New FractalForums is now in Public Beta Testing! Visit FractalForums.org and check it out!


Pages: [1] 2 3   Go Down
  Print  
Share this topic on DiggShare this topic on FacebookShare this topic on GoogleShare this topic on RedditShare this topic on StumbleUponShare this topic on Twitter
Author Topic: Fractal Raytracer  (Read 5146 times)
Description: Graduation project fractal raytracing tool
0 Members and 1 Guest are viewing this topic.
Hedanito
Forums Freshman
**
Posts: 17


« on: October 19, 2013, 12:27:12 AM »

Fractal raytracer (temporary name) is a raytracer written in C++ and OpenCL that uses distance estimation to render fractals.
This tool is a graduation project for a bachelor degree in computer science (and probably beyond).

The goal of this tool is to create a flexible and easy to use environment for the user to work in.
The user should be able to create fractal images just by a few clicks, while also be able to go all out and rewrite the pipeline for their unique needs.

Features:
The tool is still in alpha and has a limited feature set, but it is worked on and updated very often.

The current features are:
 - Real time navigation of fractals.
 - Customizable fractals.
 - Customizable shaders.
 - Fractal and shader parameters editable inside the tool in real time.
 - High quallity image rendering.
 - Rendering of multiple fractals in the same scene and blending them (AND/OR).
 - Saving and loading of scenes.

Future versions will include:
 - Video rendering.

Download:
Latest version

Screenshots:
Screenshot 1
Screenshot 2

Renders:
Album

Feedback:
If you enjoyed (or really hated) using the tool you can leave you feedback either in this thread or using this form:
Feedback form
Don't worry, it's only about 5 questions and most of it is multiple choice.

I also made a bug report form to make it easier to track down bugs, in case the tool does not work properly for you:
Bug report form

I would love to see what you guys can do with this, as I currently lack the math skills to make the really complex fractals.
And don't forget to check out this thread every so often because I will be updating it  grin.
« Last Edit: December 18, 2013, 11:23:55 PM by Hedanito » Logged

Nahee_Enterprises
World Renowned
Fractal Senior
******
Posts: 2250


use email to contact


nahee_enterprises Nahee.Enterprises NaheeEnterprise
WWW
« Reply #1 on: October 19, 2013, 10:53:42 AM »

    Fractal raytracer (temporary name) is a raytracer written in C++ and OpenCL that uses distance
    estimation to render fractals.
    This tool is a graduation project for a bachelor degree in computer science (and probably beyond).
    The goal of this tool is to create a flexible and easy to use environment for the user to work in.
    The user should be able to create fractal images just by a few clicks, while also be able to go all
    out and rewrite the pipeline for their unique needs.
            ............
    Download:    Latest version
    Screenshots:    MengerSponge    Quaternion
    Feedback:    If you enjoyed (or really hated) using the tool you can leave you feedback
            either in this thread or using this form:    Feedback form
            ............

Though I downloaded your latest version, it may be a few days before I will actually get around to giving it a try.   As soon as I do, I will let you know my findings.
 
Logged

eiffie
Guest
« Reply #2 on: October 19, 2013, 06:45:04 PM »

Very excited to give it a try! I like the ability to customize both the formulas and the tracer!
edit: my excitement faded sad
Tried to run on two separate machines both failed after creating buffers - I sent a report thru google docs. Probably need more current GPUs?? I see this must require OpenCL 2.0 support.
« Last Edit: October 19, 2013, 09:16:50 PM by eiffie » Logged
Hedanito
Forums Freshman
**
Posts: 17


« Reply #3 on: October 20, 2013, 12:21:56 AM »

Very excited to give it a try! I like the ability to customize both the formulas and the tracer!
edit: my excitement faded sad
Tried to run on two separate machines both failed after creating buffers - I sent a report thru google docs. Probably need more current GPUs?? I see this must require OpenCL 2.0 support.

I myself run it on a GTX 580, which is the same generation as yours.
I also did multiple tests on a computer with a GTX 560 TI, almost the same as yours.
The first thing you could check out is if your drivers are up to date, these things can cause a lot of problems with resource intensive programs.

If that doesn't work I'll need more complete logs to help.
Stupid of me that I didn't add a log file, only a console.
You can however still copy from the console by first right clicking the console's title bar and going to Edit->Select All and then Edit->Copy.
If you could make a new report with the complete log that would be great (if you still have the error of course).
I'll add making a log file to my todo list for the next version.

This is why programmers often prefer console programming, if it works once it works everywhere.
Can't wait till someone with an ATI card tries it tongue stuck out
Logged

Hedanito
Forums Freshman
**
Posts: 17


« Reply #4 on: October 20, 2013, 02:52:02 PM »

Here is a little preview of the next version.



I'll probably release it a the end of next week.
Logged

Hedanito
Forums Freshman
**
Posts: 17


« Reply #5 on: November 07, 2013, 12:22:09 AM »

It took me a while, but the update it here  grin

Most important features for this update
 - Selectable Tracer
 - Selectable Material
 - High quality image rendering (with multisampling)
 - Separated interface from rendering so that it doesn't freeze when the render takes a while

Images and the download link can be found in the first post, let me know what you think  smiley
Logged

eiffie
Guest
« Reply #6 on: November 09, 2013, 09:40:02 PM »

Sorry I hadn't seen your updates on this thread. Yes new drivers got it working for me. Seems to work as advertised. Nice work. I was able to write formulas but was hoping that the tracer would just return a color for the pixel. That way your software can be modified by users to produce any kind of rendering. It frees you up to concentrate on the gui. Things like materials are just parameters to the tracer. Other than that I would suggest trying to add hybrids. Good start though! Hope you keep going with it.
Logged
Hedanito
Forums Freshman
**
Posts: 17


« Reply #7 on: November 25, 2013, 04:13:35 PM »

Sorry I hadn't seen your updates on this thread. Yes new drivers got it working for me. Seems to work as advertised. Nice work. I was able to write formulas but was hoping that the tracer would just return a color for the pixel. That way your software can be modified by users to produce any kind of rendering. It frees you up to concentrate on the gui. Things like materials are just parameters to the tracer. Other than that I would suggest trying to add hybrids. Good start though! Hope you keep going with it.

Thank you for your feedback!
Good that updating the drivers fixed the problems, that saves me a lot of bug fixing.

And about just returning the pixel color: this can actually be done.
There is a file called "EntryPoint.cl" in the "Kernels/Other" folder.
This is the file that gets a ray and then outputs a color.
It calls all the tracer/shape/material files from here to generate an image.
So this file basically hides the complex stuff that the user doesn't have to worry about.

You could write anything in here like you suggested.
However, this would make the tool itself not much more than a display for what you are rendering.
So if you like hacking stuff together it can definitely be done, it just isn't very user friendly because the tool can't predict what you will do with it.
Logged

eiffie
Guest
« Reply #8 on: November 25, 2013, 09:31:49 PM »

Thanks I didn't see that! In my mind it frees you up to work on things like navigation/video output/parameter controls. Maybe not the things that interest you though? I'm going to go play with it now.
Logged
Hedanito
Forums Freshman
**
Posts: 17


« Reply #9 on: November 27, 2013, 01:39:28 PM »

Thanks I didn't see that! In my mind it frees you up to work on things like navigation/video output/parameter controls. Maybe not the things that interest you though? I'm going to go play with it now.

Actually those are things I'm working on right now Grin with closed eyes

Logged

eiffie
Guest
« Reply #10 on: November 27, 2013, 05:42:15 PM »

So I have been playing around and see that the shade function does most of what I wanted to script. I made a simple phong/shadow shader but there isn't a way to pass parameters to it. Or is there? Things like lightPosition, baseColor etc. And it would be really nice if there was a global float4 "trap" variable that would be set in the DistanceEstimation function and then used by the Shade function to determine the color. Fun playing around anyways!

Oh, and it would be great if the parameters were referenced by name. You would just need to search and replace the name with a_Parameter
  • . Like the new look.
Logged
Hedanito
Forums Freshman
**
Posts: 17


« Reply #11 on: November 27, 2013, 07:10:06 PM »

Currently Materials don't have their own parameters. Well, technically they do in the same way shapes have parameters, but there isn't an interface for this yet. Right now they just receive the shape parameters. This is definitely something that is going to be added in the future. Material parameters/textures/lights etc are the next thing on the list after I finished multiple object support. You could kind of cheat material parameters by adding them to the shape and then reading them in the shade function, but it would only work for that specific shape when you do that.

Orbit trapping also seems like a nice way to create interesting shading, but I do not know yet how I would implement this nicely. I will take a look at this as well once I start working on expanding the material features.

Referencing parameters by name could be a nice feature. It shouldn't be too hard to implement, I would just have to inject something like "#define Radius a_Parameter[0]" into the code. I'm not sure if it will cause any problems though, but I'll definitely play around with the idea.

Either way, thank you for your feedback so far, it is helping me a lot!
Also if you happen to create something cool I would love to see it  grin
« Last Edit: November 27, 2013, 07:12:51 PM by Hedanito » Logged

eiffie
Guest
« Reply #12 on: November 27, 2013, 09:30:46 PM »

Yes the #define should be an easy way to implement it. Then you don't need to worry about the order of the parameters - then if parameters are read from both the Material and Shape code that would be all you need I think. I will definitely post some stuff after playing a bit more.

One thing - I don't have the code with me but you can make these corrections to the mandelbulb.cl
For the calculation of dr you had something like
dr=pow(r,a_Parameters[0]-1.0)... that must be a typo - it should be a_Parameters[1]

and right now you have r=length(pos.xyz) at the start of the iteration loop - it should be at the end. If it doesn't bail out the value "r" is from the iteration before the last. After those corrections it looked good at any iteration. This is why I like the formulas in external readable format. I see Buddhi is doing the same with Mandelbulber now. But I don't think he has the shader external too.

Edit: Scratch all that. Attached are some files I was playing with. My SoC material renderer (don't even try to understand it) and a "null" tracer - it basically passes the work onto the material shader.

* eiffieCrapVol1.zip (3.24 KB - downloaded 154 times.)

* SoCBulb.jpg (61.49 KB, 816x638 - viewed 378 times.)
« Last Edit: November 27, 2013, 11:37:38 PM by eiffie, Reason: Added crap » Logged
Hedanito
Forums Freshman
**
Posts: 17


« Reply #13 on: November 28, 2013, 04:38:51 PM »

Oh wow that looks awesome  shocked.
It even has shadows and specular lighting, very cool indeed.
And also thank you for fixing the mandelbulb, I'm not very good at these kinds of maths, so I sometimes can't really tell if I'm doing something wrong  embarrass.

Now the reason for the "null" tracer, what were the main reasons for moving it to the material?
Was it the for the background, or the orbit trap you mentioned in a previous post, or anything else?
Or would you even say that having the tracer separated from the material actually limits the tool?

I also love the little "bug" with the mengersponge, where it shows lines between the cubes, almost as if they were etched into it.

Your shaders also revealed a bug in my code.
When I tried to render I noticed that I mixed up the red and blue channel when rendering to an image.
I didn't notice this before because all my renders were black and white.

Also would you mind if I added the so called "AmazingBox" to the set of shapes that come with the tool?
I will of course give you credit and put your name at the top of the file in the comments.
And if you don't mind, does it have a more technical name than "AmazingBox", or should I just leave it like that tongue stuck out.
« Last Edit: November 28, 2013, 04:43:41 PM by Hedanito » Logged

Hedanito
Forums Freshman
**
Posts: 17


« Reply #14 on: November 28, 2013, 06:24:07 PM »

Well, your materials sure made everything look a lot better  grin

Logged

Pages: [1] 2 3   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
3D flame raytracer Images Showcase (Rate My Fractal) doncasteel8587 2 1562 Last post January 21, 2007, 12:38:51 PM
by doncasteel8587
3D flame raytracer 3D Fractal Generation doncasteel8587 5 2376 Last post February 20, 2007, 02:11:25 PM
by doncasteel8587
raytracer upgrade Mandelbulb Renderings ajclinto 8 1529 Last post December 13, 2009, 09:29:38 PM
by David Makin
3D fractal raytracer CAD? Fractal Programs Alef 1 1733 Last post June 11, 2013, 05:54:56 PM
by cKleinhuis
i made a movie with a realtime gpu fractal raytracer Movies Showcase (Rate My Movie) rethread 5 568 Last post July 17, 2017, 08:03:39 AM
by rethread

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Page created in 0.223 seconds with 24 queries. (Pretty URLs adds 0.015s, 2q)