The Secrets Behind AAA Wind Simulation in OpenGL | Indie Devlog

  Рет қаралды 6,441

Gajatix Studios

Gajatix Studios

Күн бұрын

🍃 Bright Life gets its own OpenGL Wind Simulation System based on Horizon Zero Dawn, automated LOD generation, and an asset exporting suite, bringing it one step closer to becoming the ultimate plant generation toolkit for indie game developers.
Download Bright Life Alpha: / gajatix
Subscribe to get a free copy once it's ready!
Chapters:
0:00 Introduction
0:30 The Wind of Horizon Zero Dawn
1:27 Calculating Large-Scale Motion
2:27 Calculating Medium-Scale Motion
3:06 Calculating Small-Scale Jitter
3:38 Breaking It Up With Noise
4:42 Automated LOD Generation
5:55 Exporting 3D Assets
6:51 Exporting Materials
8:25 Working Proof of Concept
#brightlife #indiedevlog #indiedev
Website: gajatixstudios.co.uk/
Discord: / discord
Twitter: / gajatixstudios
Patreon: / gajatix
Background Music By Scott Buckley:
• 'Helios' [Cinematic Or...
• 'Discovery' [Epic Cine...

Пікірлер: 57
@GajatixStudios
@GajatixStudios 8 күн бұрын
🍄🍃🍀Tune in on Saturday to discover Bright Life's new wind simulation system, automatic LOD generation, and asset exporting suite!
@GajatixStudios
@GajatixStudios 4 күн бұрын
A massive thank you to everyone who tuned in for the Premiere. It was the biggest turnout yet and I'm extremely grateful for all the support! ❤
@emanuelasula4650
@emanuelasula4650 7 күн бұрын
Nice. Good to have you back with one more video ❤ looking forward to it ^_^
@GajatixStudios
@GajatixStudios 7 күн бұрын
Thanks! This one took longer than expected but it's finally ready 😅
@emanuelasula4650
@emanuelasula4650 4 күн бұрын
@@GajatixStudios no worries, just glad its here now :)
@LosingMagnet-le7gn
@LosingMagnet-le7gn 4 күн бұрын
I like the wind generation, but is there a particular reason you chose to create this rather than something like a blender plugin? Totally understandable if this is for learning / resume, but you are re-implementing many features 3d editors already offer and potentially adding another tool to the workflow. Great video overall!
@GajatixStudios
@GajatixStudios 4 күн бұрын
Excellent question! The answer is simple - not everyone uses Blender. I did consider going down the plugin route at the start of this project since as you correctly stated, it allows me to skip the implementation of a lot of 3D features. However, this approach also comes with its downsides. Plugins require constant maintenance to remain compatible between versions of the underlying software; they lock you into a specific workflow of the underlying software and require a detailed understanding of the underlying software's code base to tap into all its functionality. Apart from that, my skills in Python are pretty lacklustre compared to C++ so there's undoubtedly a bias from that as well 😅 Glad you enjoyed the video!
@Andrashh
@Andrashh 3 күн бұрын
This is honestly top-tier content. This video is perfect learning material. Thanks and keep going!
@GajatixStudios
@GajatixStudios 3 күн бұрын
That's awesome to hear! There's plenty more on the way 😁
@Gasimo
@Gasimo 4 күн бұрын
This is a very good video at explaining how to generally do high-quality wind for videogames! Nice work!
@GajatixStudios
@GajatixStudios 4 күн бұрын
Glad you liked it 😃There will be a follow up video in the future about implementing tension to produce even better results!
@pinsandneedles8562
@pinsandneedles8562 3 күн бұрын
Thank you very much for these videos. Awesome!
@GajatixStudios
@GajatixStudios 3 күн бұрын
It's my pleasure ☺Thank you very much for watching them!
@anonymousd5582
@anonymousd5582 3 күн бұрын
Funny how perlin noise is a solution to many problems.
@GajatixStudios
@GajatixStudios 3 күн бұрын
This is unbelievably true! 😂
@MarioGoatse
@MarioGoatse 4 күн бұрын
This quality is way too high for only 950 subscribers. I’m going to need you to either drop the quality, or get 20,000 subs, just so it makes logical sense. 😂 Great video by the way. Subbed and liked
@GajatixStudios
@GajatixStudios 4 күн бұрын
This just made my day! 😄 The quality is only going to go in one direction - Up!
@MarioGoatse
@MarioGoatse 3 күн бұрын
@@GajatixStudios To the moon we go!
@GajatixStudios
@GajatixStudios 3 күн бұрын
@@MarioGoatse Let's do this!!! 😃
@StigDesign
@StigDesign 2 күн бұрын
your program Reminds me of PlantLife i used while back in the day for darkbasic and dark basic pro :D Your`s Looks really cool and nice and nicely advanced :D
@GajatixStudios
@GajatixStudios 2 күн бұрын
PlantLife is precisely what inspired this project! 😃It was a terrific tool. And even with awesome technologies like SpeedTree today, nothing really comes close to the speed and simplicity PlantLife provided. Check out my first devlog if you have time. It goes into the details of what I'm aiming to build with Bright Life kzfaq.info/get/bejne/qKdjgNyA07fXoo0.html
@StigDesign
@StigDesign 2 күн бұрын
@@GajatixStudios oh woow that so cool :D yes thats so true :D yes i will, i have seen some of the other videos too :D
@GajatixStudios
@GajatixStudios 2 күн бұрын
@@StigDesign Thanks for watching! Glad you're enjoying the project ☺
@Kate-Tea
@Kate-Tea 3 күн бұрын
Great work!
@GajatixStudios
@GajatixStudios 3 күн бұрын
Thank you so much! 😃
@kushs-labs
@kushs-labs 4 күн бұрын
This was really exciting. Thanks for sharing.
@GajatixStudios
@GajatixStudios 3 күн бұрын
My pleasure! Glad you enjoyed it 😁(PS. I've already started work on the next one)
@kushs-labs
@kushs-labs 3 күн бұрын
@@GajatixStudios Definitely an exciting news. I hope to use Bright Life in my next project, which has more outdoors ;)
@GajatixStudios
@GajatixStudios 3 күн бұрын
@@kushs-labs That would be awesome! Can't wait to see it in action 😃
@kushs-labs
@kushs-labs 3 күн бұрын
@@GajatixStudios 😲😊
@molonlabe5090
@molonlabe5090 3 күн бұрын
Rabbit hole of trying to use noise to place vegetation on an island took me here. I can't wait for this. The automated LOD is going to be so nice, and for my purpose would be handled client-side. Chefs kiss.
@GajatixStudios
@GajatixStudios 3 күн бұрын
Well you could easily use the 3D perlin noise function to generate the noise map for your placements. You could just do a check over a certain threshold value between 0 and 1 to decide whether a placement is permitted. Obviously it'll need some refining and a 2D perlin noise function is probably more suitable in terms of performance. But that should hopefully get you on the right track 😁 Glad you like the automated LOD generation!
@molonlabe5090
@molonlabe5090 3 күн бұрын
@@GajatixStudiosMy only problem is the engine doesn’t have a build in noise function, so I’d have to make it which is fine, but I’d have to check the terrain elevation which could done with nodes of some sort. Run noise, noise makes nodes, spawn vegetation at nodes, delete notes
@GajatixStudios
@GajatixStudios 3 күн бұрын
@@molonlabe5090 Sounds quite awkward. Terrain is most likely being driven by a heightmap. Is there no way to implement a custom shader that can sample both textures?
@molonlabe5090
@molonlabe5090 2 күн бұрын
@@GajatixStudiosNope 😢 Importer takes a heightmap and a color map to apply terrain textures and that’s all it’s got right now
@GajatixStudios
@GajatixStudios 2 күн бұрын
@@molonlabe5090 That sounds a bit tricky. Out of curiosity which engine are you using? Does it have a community forum where you could ask for some help?
@TheKlocki2003
@TheKlocki2003 4 күн бұрын
You are UNDERRATED. This is awesome!
@GajatixStudios
@GajatixStudios 4 күн бұрын
Wow! Now that's a complement 😊Thank you very much for the support
@TheKlocki2003
@TheKlocki2003 4 күн бұрын
Also, i tried it, and it kinda worked? I think i typed something wrong and the ferns starded break dancing! (i tried it on a fern model a friend made for me). Anyways, helpful video, i learned a lot!
@GajatixStudios
@GajatixStudios 4 күн бұрын
@@TheKlocki2003 Assuming there are no typos, try reducing the strength of the overall simulation. Depending on the units being used, the default values may be a bit too strong causing strange results 🙂
@andrewlmillspaughjr3486
@andrewlmillspaughjr3486 4 күн бұрын
wow this is awesome very very cool :)
@GajatixStudios
@GajatixStudios 4 күн бұрын
Thank you! Plenty more work to do, but it's slowly coming together 😁
@aboody006
@aboody006 3 күн бұрын
Did you seriously use an if statement inside of a shader for something that a simple math expression could have solved?
@GajatixStudios
@GajatixStudios 3 күн бұрын
You're right that if statements in a shader are bad performance, but for the sake of simplicity, I went with an if statement for the example 👍
@aboody006
@aboody006 3 күн бұрын
​@@GajatixStudios Since its a sin wave, you can just use the value for lerp after normalizing to 0-1. Btw I really like your channel, I've been working on hobby engines (posts on my channel) and worked professionally on triple A engines for the past 10 years, if you have the time for a quick chat (messaged you on discord); I might have an interesting proposal for you.
@GajatixStudios
@GajatixStudios 3 күн бұрын
@@aboody006 Awesome stuff! Always happy to have a chat with industry experts 😁
@zdspider6778
@zdspider6778 3 күн бұрын
Why do you need a geometry shader for wind? Geometry shaders are slow. Why emit NEW vertices? 🤨 Instead of using a Perlin noise function, why not sample from the output of a seamless perlin noise texture that is averaged together with itself and each one is scrolled (by adding to the texture coordinates) each frame with the delta time, in 2 slightly different directions, at 2 different speed levels?
@GajatixStudios
@GajatixStudios 3 күн бұрын
It's possible (and more efficient) to skip the geometry shader stage and do all the calculations inside the vertex shader at the cost of flexibility. Regarding the Perlin Noise function, your suggestion is also another great way to improve performance. An alternative would be to generate the noise texture using Compute shaders and sample the texture inside the plant shader (vertex or geometry). However, in the interest of keeping things simple, these optimisation techniques go a bit beyond the scope. Perhaps I'll do a follow-up video which goes into the weeds for high performance graphics programming ☺
@xima1
@xima1 2 күн бұрын
Do you use an AI voice in this video?
@kylek29
@kylek29 2 күн бұрын
If you watch his older videos it's the same voice, it's just the mic quality is much higher in this one.
@GajatixStudios
@GajatixStudios 2 күн бұрын
No AI - that's my voice 😄
@GajatixStudios
@GajatixStudios 2 күн бұрын
@@kylek29 Glad you noticed! I've slowly been wrapping my head around recording set ups and audio post processing, so it's encouraging that the effort is showing up in quality 😅
@xima1
@xima1 2 күн бұрын
Neat sounds quite professional! :)
@GajatixStudios
@GajatixStudios 2 күн бұрын
@@xima1 Why thank you! 😁
@fabulamcafee
@fabulamcafee 3 күн бұрын
this is not UE content.
@GajatixStudios
@GajatixStudios 3 күн бұрын
These are not the droids you're looking for 🤖
I Tried Turning Games Into Text
18:18
Acerola
Рет қаралды 151 М.
Children deceived dad #comedy
00:19
yuzvikii_family
Рет қаралды 7 МЛН
10 Minutes vs. 10 Years of Animation
19:29
Isto Inc.
Рет қаралды 235 М.
The Formula for Replayable Games
18:44
Blargis
Рет қаралды 211 М.
Don't make your own 3D Game Engine - anyway, here's how I made mine.
19:33
Completely Cooked Games
Рет қаралды 7 М.
Why Do Video Game Studios Avoid Blender?
6:49
The Cantina
Рет қаралды 336 М.
Lego Racers Can't Be Made Today
22:10
Tin Sensei
Рет қаралды 432 М.
Minecraft's greatest mystery was just solved!
11:24
MCBYT
Рет қаралды 189 М.
Linux on Windows......Windows on Linux
23:54
NetworkChuck
Рет қаралды 113 М.
What does a Game Engine actually do?
16:45
Ellie Rasmussen
Рет қаралды 142 М.
Why Stardew Valley’s Creator Hated His Game
20:17
Nello
Рет қаралды 557 М.
Когда все обошлось 😮‍💨 | Королева Двора
0:16
Аминка Витаминка
Рет қаралды 4,3 МЛН
Добейти 100000 подписчиков | Тгк- @Rom4ik539
0:28
THE POLICE TAKES ME! feat @PANDAGIRLOFFICIAL #shorts
0:31
PANDA BOI
Рет қаралды 19 МЛН
🤣❤️
0:46
Dragon Нургелды 🐉
Рет қаралды 794 М.
When You Get Ran Over By A Car...
0:15
Jojo Sim
Рет қаралды 11 МЛН