Welcome to WSL!

New to the forum? Please read this and this.

[DEV] DCTL CampFire Fuse

Where the future is being made, today.

Welcome to the WSL development corner!

In this forum, please post your development projects. You get kudos and feedback here.
Topics ideally have preset prefixes, and this is what they (might) mean:

  • [DEV] - very much work in progress, don't build a business on this, could go anywhere
  • [BETA] - should kinda do what it's supposed to do, please test, give feedback
  • [RC] - this may end up in Reactor soon, polishing up, now's the time for last minute thoughts
  • [ABD] - died a premature death, sadness, will not see the light of day ever (unless someone picks up the scraps)

Once a development project has been released (hurray), topics can be marked as - you guessed it - [RELEASED] :cheer:

Development topics only, please. For generic questions, how-to's, questions and inquiries about existing tools etc, please go to the appropriate other forums.
User avatar
tida
Fusionista
Posts: 257
Joined: Mon Jan 27, 2020 4:37 am
Answers: 1
Real name: none
Been thanked: 41 times

[DEV] DCTL CampFire Fuse

#1

Post by tida »

So, my second attempt to build up this fuse was successful. The first time, I couldn't find the reason why I received strange outputs. This time I was better organized with my template. But the mod function seems to work differently compared to WebGL for Shadertoy which gave me a headache.
https://www.shadertoy.com/view/MlKSWm
td_CampFire.fuse
You do not have the required permissions to view the files attached to this post.

User avatar
Shem Namo
Fusionista
Posts: 688
Joined: Sun Oct 06, 2019 9:15 pm
Answers: 1
Location: North Israel
Real name: David Kohen
Been thanked: 9 times

Re: [DEV] DCTL CampFire Fuse

#2

Post by Shem Namo »

Great fuse @tida.

There were only 2 small mistakes that prevented it from working on OpenCL.

The first one is that you have a function name rotate(), that function name is already taken so you can't use it.

The second on is that you use the function name mod289() twice with different arguments.

Here's a copy of the fuse that works on OpenCL.

This is a really cool fuse @tida, thanks for sharing!!
td_CampFire.fuse
You do not have the required permissions to view the files attached to this post.

User avatar
JiiPii
Fusioneer
Posts: 211
Joined: Tue Mar 03, 2020 8:34 am
Answers: 1
Been thanked: 24 times

Re: [DEV] DCTL CampFire Fuse

#3

Post by JiiPii »

Super cool fuse - I like it a lot. A tiny downer: For whatever reason, the bottom lines (or even just one line) are made completely white. I took a cursory look at the code, but didn't notice anything at first.

User avatar
tida
Fusionista
Posts: 257
Joined: Mon Jan 27, 2020 4:37 am
Answers: 1
Real name: none
Been thanked: 41 times

Re: [DEV] DCTL CampFire Fuse

#4

Post by tida »

@Shem Namo, @JiiPii Again, I really appreciate your support. The white line will be gone in one of the next corrections. I assume the original has one too, but hard to recognize. I will also have a look at whether I can give it more functionality.

The next lovely one will be the following guy: https://www.shadertoy.com/view/XsXBzH and it's partner https://www.shadertoy.com/view/MtKSWW
It contains a lot of potential for functionality...

User avatar
JiiPii
Fusioneer
Posts: 211
Joined: Tue Mar 03, 2020 8:34 am
Answers: 1
Been thanked: 24 times

Re: [DEV] DCTL CampFire Fuse

#5

Post by JiiPii »

Both toys are very well chosen. The "Dynamism" looks very complex. Fortunately, the buffers are not called recursively (buffer C looked like this at first, but it is not used.) And obviously the functionality of the TextureLOD is not used.

User avatar
tida
Fusionista
Posts: 257
Joined: Mon Jan 27, 2020 4:37 am
Answers: 1
Real name: none
Been thanked: 41 times

Re: [DEV] DCTL CampFire Fuse

#6

Post by tida »

@JiiPii Yes, I agree, the 2nd one is too complex. I have to learn about Buffer in Shadertoy and how to implement it best via DCTL. Hopefully, BMD will come up with some supporting tools and some deeper documentation one day...

User avatar
JiiPii
Fusioneer
Posts: 211
Joined: Tue Mar 03, 2020 8:34 am
Answers: 1
Been thanked: 24 times

Re: [DEV] DCTL CampFire Fuse

#7

Post by JiiPii »

@tida
No, by no means too complex. I have already built fuses with several DCTL codes. It's just the kernels lining up, the output is the input of the next. Here of course the two outputs as inputs of the third kernel. Just diligence work. The crux of the matter is with the recursive ones, because I observe a pulling away of the image with every frame. I couldn't explain myself at first. But then it was clear. It is the normalization that is a little bit wrong every time because of the conversion to float, but this error is added up by the number of frames. So you have to switch to non-standardized values. Is it possible DCTL offers that. WebGL obviously calculates with double or more precisely.

User avatar
JiiPii
Fusioneer
Posts: 211
Joined: Tue Mar 03, 2020 8:34 am
Answers: 1
Been thanked: 24 times

Re: [DEV] DCTL CampFire Fuse

#8

Post by JiiPii »

@tida

Stumbled upon this topic by chance and thought with my current knowledge, the Dynamism shader should be converted relatively quickly. And that's right, it was done very quickly. A very, very nice shadertoy

Dynamism.fuse
You do not have the required permissions to view the files attached to this post.

User avatar
tida
Fusionista
Posts: 257
Joined: Mon Jan 27, 2020 4:37 am
Answers: 1
Real name: none
Been thanked: 41 times

Re: [DEV] DCTL CampFire Fuse

#9

Post by tida »

@JiiPii great transfer. It's a very helpful fuse to understand the Buffer concept even if iteration is not needed. Tried this on an iMac with M1 processor. I see some fuses where the playback stops after a few seconds without any error messages in the console. After that, Fusion gets frozen and I have to re-start it. This fuse stops after about 10 seconds. Your newly developed Reaction-Diffusion fuse crashes as well.

However, both fuses do work well if I set the Image color depth from Default to float32 bit. This is independent of whether I activated OpenCL or Metal.

User avatar
JiiPii
Fusioneer
Posts: 211
Joined: Tue Mar 03, 2020 8:34 am
Answers: 1
Been thanked: 24 times

Re: [DEV] DCTL CampFire Fuse

#10

Post by JiiPii »

@tida
Yes, at least float16 is a prerequisite for almost all shaders that use the image data to keep data static and not primarily use them for image generation (there are only very few ReactionDiffusion shaders that work with integer settings and with which artefacts and Shadows. Actually, these shaders do not crash, but the integer setting prevents a reasonable calculation. For the shaders that hold negative values in the image data, it is a condition anyway, although the integer is also signed, but somewhere in the calculation chain in DCTL this is obviously possible lost.