Let's Create a Generative Running Terrain in Max/Jitter

  Рет қаралды 8,496

Amazing Max Stuff

Amazing Max Stuff

Күн бұрын

Пікірлер: 36
@ffunyman
@ffunyman 2 жыл бұрын
dude you are talented af
@AmazingMaxStuff
@AmazingMaxStuff 2 жыл бұрын
Too kind!
@lastnamefirstname6035
@lastnamefirstname6035 4 жыл бұрын
Wow I like this a lot! Great job, thank you!
@lorene_ple
@lorene_ple 2 жыл бұрын
thank you so much !
@mikkohassinen9324
@mikkohassinen9324 2 жыл бұрын
Wonderfull! Thanks a lot 😊!
@TRUCOFIL
@TRUCOFIL 4 жыл бұрын
Great tutorial! Why do you use a 300x2 noise matrix and the jit.concat trick instead of just using a 300x300 noise matrix (with offset changing through x or y axis instead of z) as a z plane for your mesh ?
@AmazingMaxStuff
@AmazingMaxStuff 4 жыл бұрын
Great question! The answer is: to generate a smaller matrix through jit.bfg. A 300x300 matrix in fractal.hetero would be pretty costly for the CPU. In this way we can spare power and have it faster. Anyway yes, it could be possible!
@AmazingMaxStuff
@AmazingMaxStuff 4 жыл бұрын
Plus, if you try this yourself, you will see that the effect is slightly different. It will be jittery because the vertices pass smoothly from one value to the other. So will be more like a sea than like a steady terrain moving.
@TRUCOFIL
@TRUCOFIL 4 жыл бұрын
​@@AmazingMaxStuff I tried both methods and yours (concatenating a 1D matrix) is about 2-3fps faster than directly generating a square matrix (running on a i7 9700). The gap is not as big as I thought! Regarding the results, you can get very similar looking by changing the details and scale parameters. I also feel more comfortable with generating a square matrix as it is a bit simpler to control the scrolling speed and the size of the mesh. I keep both implementations in my patch and I'll see how it perform after a few additions!
@domantaspuras3553
@domantaspuras3553 3 жыл бұрын
How do you guys move around in the screen itself? I mean the "game" object. How do you go up or down?
@AmazingMaxStuff
@AmazingMaxStuff 3 жыл бұрын
"wasdqz" keys when having a camera and a jit.anim.drive connected to it
@dariusfeier7003
@dariusfeier7003 2 жыл бұрын
for some reason the jit.world display is not working for me? Is there anyway to have the display show up on jit.window? Thank you!
@AmazingMaxStuff
@AmazingMaxStuff 2 жыл бұрын
Hey! Either you create a jit.world (that includes a jit.window), or you use the old system of jit.window + jit.gl.render (do not recommend).
@dariusfeier7003
@dariusfeier7003 2 жыл бұрын
@@AmazingMaxStuff Thank you, this is what is inside the object box currently as you had in the video: jit.world game @fsaa 1 @size 320 240 @windowposition 1500 100 @floating 1 @erase_color 0 0 0 1 @fsmenubar 0 @fps 120. After which part should I include the jit.window? Thank you so much for your help
@AmazingMaxStuff
@AmazingMaxStuff 2 жыл бұрын
@@dariusfeier7003 hey! the jit.window is automatically created. Probably you don't see it because is too far right on the screen. Modify the windowposition attribute to 100 100
@dariusfeier7003
@dariusfeier7003 2 жыл бұрын
@@AmazingMaxStuff Tbank got it! Is there a way to change the movement from.w a s d q z to a MIDI controller. And where can I change the code to do this?
@kozyslaw1
@kozyslaw1 3 жыл бұрын
I did everything just like you and my camera controls seem to be going weird.. what can be the problem?
@AmazingMaxStuff
@AmazingMaxStuff 3 жыл бұрын
Hey, what do you mean weird?
@ayankoko
@ayankoko 2 жыл бұрын
@@AmazingMaxStuff hi just did it also can't keep a good view control with the keys a q s d z w
@faycarsons
@faycarsons 2 жыл бұрын
any ideas re: making this audio reactive? Im an absolute beginner w jit(tho not w coding/genart) if that helps lol
@AmazingMaxStuff
@AmazingMaxStuff 2 жыл бұрын
Hey! You could for example tie the speed of the run with the amplitude of the audio
@mannibimmel09
@mannibimmel09 2 жыл бұрын
Thank you. On openGL3 jit.concat / jit.matrix loop crashes max 8.3 on mac
@AmazingMaxStuff
@AmazingMaxStuff 2 жыл бұрын
Hey! Are you using my patch or did you recreate it from the video? In the second case make sure that all the attributes and arguments in the objects are set correctly. Just tried on my Mac doesn't seem to crash
@mannibimmel09
@mannibimmel09 2 жыл бұрын
@@AmazingMaxStuff hey! thanks for your answer. i followed your video so maybe theres a typo value !"§ i´ll try it tommorow). on gl2 it works fine
@mannibimmel09
@mannibimmel09 2 жыл бұрын
fyi .still crashes with your patch from patreon. maybe its apple m1 or max version thing or combination.
@MicheleZaccagnini
@MicheleZaccagnini 4 жыл бұрын
Since you are using jit.glmaterial would it be more efficient to use jit.gl.bfg as a heightmap?
@AmazingMaxStuff
@AmazingMaxStuff 4 жыл бұрын
Hey Michele! In that case you would have to calculate the normals yourself, since @auto_normals would not work, as far as I know. In your experiments do you get a correct lighting? If that's the case I would definitely like to see that. It's definitely an option though, I will explore it in a future tutorial!
@MicheleZaccagnini
@MicheleZaccagnini 4 жыл бұрын
@@AmazingMaxStuff I think [@heightmap_mode vtf] should take care of the normals, while [vtf_normals] needs a normal map, which can be calculated from the luma values. I haven't tried it though....
@AmazingMaxStuff
@AmazingMaxStuff 4 жыл бұрын
vtf_normals should regenerate the normals, as per help file description. In my experience it does a poor job at that, but maybe I'm using it in the incorrect way. If you find out please let me know!
@AmazingMaxStuff
@AmazingMaxStuff 4 жыл бұрын
This is what the jit.gl.material object does with @vtf_normals: vec3 filter_normal(vec2 uv , float texelsize , sampler2D tex ) { float h0 = texture(tex, uv + texelsize * vec2(0, -1)).r; float h1 = texture(tex, uv + texelsize * vec2(-1, 0)).r; float h2 = texture(tex, uv + texelsize * vec2(1, 0)).r; float h3 = texture(tex, uv + texelsize * vec2(0, 1)).r; vec2 step = vec2(1.0, 0.0); vec3 va = normalize(vec3(step.xy, h1 - h0)); vec3 vb = normalize(vec3(step.yx, h3 - h2)); return cross(va, vb); } So it takes the derivative of the vertex position and uses it as a normal, which should work. For some reason the light doesn't look so good though
@MicheleZaccagnini
@MicheleZaccagnini 4 жыл бұрын
@@AmazingMaxStuff that's right it's the other way around. Yeah you probably right I might try it just for fun...thanks Federico!
@NedRush
@NedRush 4 жыл бұрын
First!
How to create a 3D Generative Terrain in Max/MSP
5:34
Amazing Max Stuff
Рет қаралды 21 М.
BAYGUYSTAN | 1 СЕРИЯ | bayGUYS
36:55
bayGUYS
Рет қаралды 1,9 МЛН
3D Object feedback loop tutorial in Max MSP
7:42
Andrew Robinson
Рет қаралды 4,1 М.
Max MSP Tutorial: Ripple Simulation
19:27
maxjitterbug
Рет қаралды 1,6 М.
Coll - Helpful Max MSP objects to know - A Max MSP Tutorial
23:29
Andrew Robinson
Рет қаралды 10 М.
Noise Displacement with jit.gl.pix - Max/MSP Tutorial
19:42
Hearing Glass | Umut Eldem
Рет қаралды 6 М.
Max/MSP Tutorial: how to make a generative drum machine
16:50
David Cooper
Рет қаралды 48 М.
Let's Create a Generative Periodic Noise Shape with Max/MSP
22:28
Amazing Max Stuff
Рет қаралды 11 М.
Visualising the Audio Spectrum in 3D - Max/MSP Tutorial
27:51
Hearing Glass | Umut Eldem
Рет қаралды 27 М.
AMT - Audio Reactive Tutorial #01 - Audioreact Lab Remake
22:41
Amazing Max Stuff
Рет қаралды 28 М.
Chaotic Particles  - Max/MSP Tutorial
26:33
Hearing Glass | Umut Eldem
Рет қаралды 10 М.
AI Is Making You An Illiterate Programmer
27:22
ThePrimeTime
Рет қаралды 59 М.