2021 10 06

new version /Production/20210910 Project/M4L/ADSR-JXS_0.0672.amxd

Now with 4 tracks. However, I can only get 60fps @720x720 with a 2x2 grid (4x4 = 16 SDFS). It’s a start!.

Need to adjust the position,scale, and animate each shape and see how that performs.

2021 10 04

/Production/20210910 Project/M4L/JXS-files/20210928_hypnotised.jxs

Colors

use “vec3 diffuseColor” for the general Colors

use “int depthPass” for the size of the outline

use “vec3 occlusionColor” for the color of the outline. Looks nice when contrasted against diffuseColor

Framerate

The map() is where all the SDFs are called. map() gets called every frame in this order:

intersect()
calcNormal()
calcSoftShadow()
calcOcclusion()

params that have an effect on framerate

zoom(param0_1) - the farther away from the camera the higher the framerate
dist(param0_2) - has a moderate effect on Framerate
spacing(param0_3) - moderate effect
boolean(param0_4) - none/minimal
grid(param0_5) - decreases frame rate by an order of magnitude
rotate(param0_6) - none/minimal

In the track() functions I have 6 SDFs running. At 3x3 grid = 54 sdfs displayed. The less SDFs displayed the better (I think). What about changing the tracks to each track(1-4) displaying the maximum gridSize shapes. So at 3x3(9) x 4 tracks = 36 total SDFS at the mosts displayed at one time.

2021 09 28

My thoughts now for the style of this animation is to have preset poses (compositions) and animate in between them.

Due to frame rate I would limit the number of geometry to 8-12 intersecting pieces.

These images are sharp. Because the nature of the song is “bubble-gummy” I need to do more round shapes and bright colors.

I also like the idea of moving towards the camera. For example for each stansa that would be a full progression from back to front or otherwise.

2021 09 27

I’ve moved all the most recent M4L devices to this project.

The device list is:

ADSR-JXS_0.0671.amxd
- This is a custom version of the 0.067 device.  Edit this directly in Max to customize the controlls.  All testing and jxs work can be done in Max by opening the .amxd file directly.  Maybe consider renaming it to 0.067-hypnotised so when you oepn the file for editing it doesn't conflict with the one used inKynd.
ADSR-avrecordr_0.01a.amxd
- Not sure why this is 0.01a
ADSR-automation_v0.06.amxd
ADSR_0.249.amxd
- no changes from the most recent major builds

The JXS file is:

/M4L/JXS-files/20210928_hypnotised.jxs
- This file needs to be organzied better if I'm going to have sections.

Next, I want to try to pass in ADSR grid data and see how performance is.

Performance is a problem with SDF ray tracing. One day I’ll have a super powered GPU and not worry but alas not now. At this point I don’t know enough about the ray-casting functions(yet) to make optimizations so instead I’ve decided to see how many elements I can animate before frame rate drops below 60fps. I’ve noticed that the closer you are to the camera with more elements on the screen there is a major performance hit. The farther away you are from the camera the better the performance. Even when close up and geometry is outside the frustum I am still seeing a performance hit. How can I only render the items in view? I will focus my efforts to determine the limits and this project will be about discovering my limits.

One idea to improve the overall performance is to remove loops as much as I can. a grid of 4x4 is looping through all the rendering code 16 times. With 2D shapes I can do 4x4 x 4 tracks(64 channels). In 3d running the ray-casting it’s really slow I’d be lucky with 16 channels.

Of course what is cool about this technique is little changes in geometry (position, rotation, scale) make a big difference because ray-casting “blends” the geo together in interesting ways. One Idea is to have 8 x 4 tracks (32 SDFs) of geometry where each is independently animated to by an ADSR value. The big question is how many pieces of SDF geometry can I display and keep 720x720 resolution at 60fps.

Assuming I can get reasonable fps (40-60fps sustained) maybe another tactic to further improve performance would be to only display 8-16 pieces of geometry on screen at a time. I’ve always wanted to do the effect of having the geometry move towards the camera as if you were in a tunnel.

QUESTIONS:

  1. How many pieces of geometry can we display at the same time? What is the min, max at 720fps?
  2. Traveling towards the camera and driven by real ADSR data - Does this improve performance?

Right now I’m thinking that this animation will simply be a mandala in space moving towards you (in a hypnotic manner) that changes over time. The next step is to find the limits in terms of performance at 720x720 . After that I can explore changing SDF shapes and colors and maybe making scenes.

Here is the latest track demo with vocals. No more touching the mix till I get some coding done:)

2021 09 20

Changing title to Hypnotised. Changed folder name.

Worked on the vocal arrangement. Will work on recording the vocals on Thursday.

2021 09 09

Worked on lyrics. Changed the song title to “Step Out Side”. I initial file was named “Pony Ride”. IDK - that’s what came to mind when I initially wrote it.

Updated lyrics.txt

Maybe change the title to slip and slide. I am imagining a revamped 1 2 3 4 5 6 7 8 9 10 11 12 pinball visuals now.