Skip to main content
Up and Coming
May 8, 2013

Real Time Mandelbulb

Anybody thought doing a real time mandelbulb fligh through with the Oculus in mind? That would be pretty trippy :) And low requirements, apart from the actual coding itself, but no assets to speak of. Perfect for programmers!





    58 replies

    Up and Coming
    May 18, 2013
    For any audio nerds here, this website provides a GLSL *AUDIO* sandbox:
    http://www.cappel-nord.de/glsl-audio-sandbox/

    The video it creates is really just raw sound data, not images.
    This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
    Up and Coming
    May 21, 2013
    "geekmaster" wrote:
    "corysama" wrote:
    This is not real time, but someone has already rendered a fly through and put the render through a Rift lens warp.

    http://www.youtube.com/watch?v=gHcGOZvJODI

    Thanks for that link! I got started on tweaking Boxplorer for the Rift before I got my Rift DK, but after I got my Rift DK I forgot all about Boxplorer! Thanks for the reminder!

    And that youtube video has a link to the "Riftified" Boxplorer2 source code:
    https://code.google.com/p/boxplorer2/downloads/list

    I am not sure if it has head tracker code yet, but if not, I plan to add it. :D


    Sorry, late to the party here. :D

    Yes, I added some modicum of head tracking already: change SensorBox to spew quat4f to udp:1337 and boxplorer2 will blend it into its current orientation. Look for the HYDRA defines in the source, although the hydra support only uses the thumbsticks so far. Too many inputs :shock:

    Beware, cruft in progress.

    I'd love some hydra/oculus/kinect aficionados contributing.
    Up and Coming
    June 5, 2013
    "marius" wrote:
    "geekmaster" wrote:
    "corysama" wrote:
    This is not real time, but someone has already rendered a fly through and put the render through a Rift lens warp.

    http://www.youtube.com/watch?v=gHcGOZvJODI

    Thanks for that link! I got started on tweaking Boxplorer for the Rift before I got my Rift DK, but after I got my Rift DK I forgot all about Boxplorer! Thanks for the reminder!

    And that youtube video has a link to the "Riftified" Boxplorer2 source code:
    https://code.google.com/p/boxplorer2/downloads/list


    I put up a recent build for win32 and the tweaked sensorboxtest with a couple of shaders at that download link.
    Including IQ's excellent catacombs and angels. And the slow fp64 shader and keyframes of that video.
    Inspiring
    June 5, 2013
    I tried all of these shaders, and the only one that I couldn't get working was the mandelbox one due to "unable to find compatible overloaded function abs(float64_t)" errors. Running Win8 64-bit with GTX680.

    Now, onto the glowing praise. :) The reflectoids one just blew me away. I was already a big fan of this particular fractal but to be able to fly deep into it and to be seamlessly miniaturized in the process is just breathtaking! I have to assume my brain has learned something entirely new in the process.

    Many many thanks for this!

    :D
    Titans of Space PLUS for Quest is now available on DrashVR.com
    Up and Coming
    June 5, 2013
    "drash" wrote:
    I tried all of these shaders, and the only one that I couldn't get working was the mandelbox one due to "unable to find compatible overloaded function abs(float64_t)" errors. Running Win8 64-bit with GTX680.

    Now, onto the glowing praise. :) The reflectoids one just blew me away. I was already a big fan of this particular fractal but to be able to fly deep into it and to be seamlessly miniaturized in the process is just breathtaking! I have to assume my brain has learned something entirely new in the process.

    Many many thanks for this!

    :D


    thanks! Most of the props for reflectoids go to knighty @ fractalforums.com. Reflections work wonders in 3d.

    The mandelbox shader tries to use double precision, and I only tested it w/ AMD cards. Sounds like the GTX680 should be able to do double precision so I'm probably hitting a minor difference? That shader is slow, as expected but it's fun to dive deep.

    I didn't include all Oculus compatible shaders you can get via svn.. Work in progress. I need to figure out a good navigation scheme using hydras..
    Up and Coming
    June 6, 2013
    "drash" wrote:
    I tried all of these shaders, and the only one that I couldn't get working was the mandelbox one due to "unable to find compatible overloaded function abs(float64_t)" errors. Running Win8 64-bit with GTX680.


    Got some line numbers with those errors?
    Or could you try tweak the shader source directly at .\mbox-fp64\fragment.glsl to make it work for nvdia?

    Kinda intrigued as to what the difference between amd and nvidia compilers is here. A Google search did not reveal anything obvious :?

    With their Titans nvidia at last provides non-crippled double precision performance, it seems.
    But I don't have one to test with ;)
    Inspiring
    June 6, 2013
    "marius" wrote:
    Got some line numbers with those errors?


    Here you go!

    E:\STUFF TO TRY WITH RIFT\win32-oculus-mandelbulb>.\boxplorer.exe mbox-fp64\ --o
    culus
    DECLARE_DE(de_menger)
    DECLARE_DE(de_PKlein)
    DECLARE_DE(de_mandelbox)
    DECLARE_DE(de_mandelbox_64)
    DECLARE_DE(de_Z0_64)
    DECLARE_DE(de_ssponge)
    DECLARE_DE(de_cylinder)
    DECLARE_DE(de_sphere)
    DECLARE_DE(de_combi)
    DECLARE_DE(d_PKlein)
    setupDirectories : E:\STUFF TO TRY WITH RIFT\win32-oculus-mandelbulb\, E:\STUFF
    TO TRY WITH RIFT\win32-oculus-mandelbulb\mbox-fp64\, default.cfg
    Camera::loadConfig : #define c c_mandelbox
    Camera::loadConfig : #define d de_mandelbox
    Camera::loadConfig : de_func de_mandelbox
    Camera::loadConfig : read 'default.cfg'
    initGraphics : depth size 24
    readFile : read 'E:\STUFF TO TRY WITH RIFT\win32-oculus-mandelbulb\mbox-fp64\ver
    tex.glsl'
    readFile : read 'E:\STUFF TO TRY WITH RIFT\win32-oculus-mandelbulb\mbox-fp64\fra
    gment.glsl'
    Location | Type | Name
    ------------------------------------------------
    Error in GLSL fractal shader compilation:
    --fragment:
    0(139) : error C1115: unable to find compatible overloaded function "abs(f64vec4
    )"
    0(153) : warning C7011: implicit cast from "f64vec3" to "vec3"
    0(163) : error C1115: unable to find compatible overloaded function "abs(float64
    _t)"
    0(163) : error C1115: unable to find compatible overloaded function "abs(float64
    _t)"
    0(164) : error C1115: unable to find compatible overloaded function "abs(float64
    _t)"
    0(164) : error C1115: unable to find compatible overloaded function "abs(float64
    _t)"
    0(165) : error C1115: unable to find compatible overloaded function "abs(float64
    _t)"
    0(165) : error C1115: unable to find compatible overloaded function "abs(float64
    _t)"
    0(188) : error C1115: unable to find compatible overloaded function "abs(float64
    _t)"
    0(299) : warning C7011: implicit cast from "f64vec3" to "vec3"
    0(302) : error C1115: unable to find compatible overloaded function "abs(float64
    _t)"
    --link:
    Fragment info
    -------------
    0(139) : error C1115: unable to find compatible overloaded function "abs(f64vec4
    )"
    0(153) : warning C7011: implicit cast from "f64vec3" to "vec3"
    0(163) : error C1115: unable to find compatible overloaded function "abs(float64
    _t)"
    0(163) : error C1115: unable to find compatible overloaded function "abs(float64
    _t)"
    0(164) : error C1115: unable to find compatible overloaded function "abs(float64
    _t)"
    0(164) : error C1115: unable to find compatible overloaded function "abs(float64
    _t)"
    0(165) : error C1115: unable to find compatible overloaded function "abs(float64
    _t)"
    0(165) : error C1115: unable to find compatible overloaded function "abs(float64
    _t)"
    0(188) : error C1115: unable to find compatible overloaded function "abs(float64
    _t)"
    0(299) : warning C7011: implicit cast from "f64vec3" to "vec3"
    0(302) : error C1115: unable to find compatible overloaded function "abs(float64
    _t)"
    Titans of Space PLUS for Quest is now available on DrashVR.com
    Up and Coming
    June 6, 2013
    This is just amazing!
    I can just cruise through these worlds ad infinitum.
    This is the exact reason I got myself a Rift!
    I love the way the sensitivity decreases when you get near the solids, you can explore tiny features and crevices without much trouble.
    It still needs a little work on the camera movement though, navigation isn't performed in camera space, so sometimes a mouse move or keystroke has weird results.
    Having the same problem with mandelbox on my GTX570.

    Thanks very much for opening these worlds for Oculus eyes.
    Up and Coming
    June 7, 2013
    "PatHightree" wrote:
    This is just amazing!
    I can just cruise through these worlds ad infinitum.
    This is the exact reason I got myself a Rift!
    I love the way the sensitivity decreases when you get near the solids, you can explore tiny features and crevices without much trouble.

    Yeah, getting distance estimates both in CPU and GPU makes navigating much more pleasant. And limiting. But adapting virtual head size works here.

    It still needs a little work on the camera movement though, navigation isn't performed in camera space, so sometimes a mouse move or keystroke has weird results.

    Ack. quaternions and row/column matrix flavors are the bane of my hacking. And now I have hydras to contend with.. to be continued.

    Having the same problem with mandelbox on my GTX570.

    Yeah that seems pervasive on nvidia. Probably my fault. It really is just a double precision version of the rrrola mandelbox shader, fwiw. Waiting for a shader guru to chime in and say abs(double) is not legit glsl or something.

    Thanks very much for opening these worlds for Oculus eyes.

    You're welcome. As soon as I became aware of 3d fractals, there had to be stereoscopy And Rift made it even more obvious :D
    New Participant
    July 21, 2013
    I also have written a realtime mandelbox (not -bulb) renderer, now running on the Rift. It's most of time time 60fps on my Radeon HD 6970, but float precision only at that speed.

    Linux only, at the moment. But it features nice "flight simulator" style gamepad controls, and renders at full resolution!

    Now if I only had a Windows setup to port it, to make it more available to others... any volunteers?

    Edit: oh, that first (white) video in the first post was btw mine :-)




    There are some more screenshots of the non-Rift version at http://www.fractalforums.com/images-showcase-%28rate-my-fractal%29/different-faces-of-the-mandelbox/.