Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Is recursive transformation supported?

A topic by Hunter Bobeck created Jun 01, 2018 Views: 417 Replies: 5
Viewing posts 1 to 5
(1 edit)

Here is a visual. Here's another one I made in Unity in 5 minutes, using objects instead of raymarching. Recursive transformation is just the idea of applying a particular transformation again and again, once at every iteration.

Here is what I would expect to accomplish this...
Create a recursive repeat modifier. Set a relative position, relative rotation, and relative scale for the repeat modifier.
Make a shape childed to the modifier, and it will of course repeat, but it will do so recursively, whereby each iteration is relative to the previous iteration by the given relative position, relative rotation, and relative scale values.

This would be a simple and elegant tool. I hope it is supported or there is some way to customize the tool to do this. Might that be the case?

I'd be interested to know this also.

Bump...

(3 edits)

I wanted to find out if there was a more efficient way to render fractals according to simple relative transformations that occur at each iteration. This question was about whether raymarching would be able to do this more efficiently than duplicating object-oriented meshes in Unity, and in particular, whether this raymarching toolkit supports such functionality.

The answer is no, I assume, seeing as Kevin wasn't sure what I was talking about. I was trying to get at a general pattern that is very simple but very powerful;  I was talking about recursive transformations in general, with shells only as an example. I sent the Unity example I made and added this detail to my explanation. To repeat, here's the visual I achieved in Unity in just 5 minutes with objects, so the general logic isn't difficult, only applying it to raymarching is, for someone who hasn't raymarched before.  Here's the reply I got, focused on shells:

I'm not sure I understand your question completely—but for the fractals included in the examples, you can fully inspect and change the HLSL shader source. I attached some images showing what I mean. If this doesn't totally answer your question let me know!
Raymarching is tricky—some things are more difficult, and some things are easier. Many things are less performant.
Here's a famous example of a raymarched snail by one of the most knowledgeable graphics programmers on the planet:
https://www.shadertoy.com/view/ld3Gz2
Beautiful, right!?
You could, as an example, take the "mapShell" function there and add it as a raymarched primitive, but it would definitely take some work and understanding of the underlying principles.
...let me know what else I can help answer :)

I clarified with a response but haven't heard back in over a month.
I guess I'll need to learn raymarching coding for Unity to determine whether I can implement recursive fractals in a more efficient way than with plain old Unity objects. I imagine it would be much more performant with raymarching. It's pretty clear this toolkit hasn't explored such recursive functionality though. Which is a surprise, considering the emphasis on fractal patterns.

I'm a bit hazy on the details but aren't L-Systems and IFS fractals inherently recursive? I googled "raymarch IFS" and found this: http://www.pouet.net/topic.php?which=8096&page=1

I agree, it looks very doable, and it's the basic idea behind fractals in the first place. I just don't know enough about raymarching yet personally. Thanks for the link, should help my future research.