Тёмный
No video :(

CS2's Responsive Smoke with Godot 4 In 5 Minutes 

Crigz Vs Game Dev
Подписаться 14 тыс.
Просмотров 97 тыс.
50% 1

Here's how I implemented a similar mechanic to Counter-Strike 2's Responsive Fog in Godot 4 in 5 minutes.
Resources:
Github - github.com/CBe...
Fog Blog - godotengine.or...
Cs2 Trailer - • Counter-Strike 2: Offi...
Fog in Godot: • What the FOG? Godot 4
Volumetric Fog in Unity - • Coding Adventure: Clouds
Models:
sketchfab.com/...
sketchfab.com/...

Опубликовано:

 

5 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 187   
@vintprox
@vintprox Год назад
This is staggering how we can pierce through the fog and get an immersive response.
@demian5631
@demian5631 Год назад
Awesome! I think having the cylinder Fog Volume scale up and rotate as it punches a hole through the Volume would add a nice little bit of realism, as it would emulate the air Vortex a bullet leaves in its wake.
@crigz
@crigz Год назад
Yeah that sounds like a great idea!
@epmcgee
@epmcgee Год назад
"This is a 16x16 noise texture," that is a QR code, sir.
@askeladden450
@askeladden450 Год назад
i like everyone was like 'wow look at that smoke in cs2, revolutionary!' and then you just come along and create it in 5 minutes in a free and open source tool. Just shows how powerful godot 4 is. And how good you are ofc.
@ThiagoJaqueta
@ThiagoJaqueta Год назад
I think when people say revolutionary, it's not really about the tech, but about the design of the mechanics. I personally never seen such an interesting implementation of smoke grenades in a game before, and we've had smoke grenades in games for over 20 years. Closest thing I've seen was Redeye's smoke grenade on Dirty Bomb, you could counter him by using explosives to disperse his smoke grenade, but the smoke would just disappear permanently after the explosion.
@askeladden450
@askeladden450 Год назад
@@ThiagoJaqueta yea, but a lot of people including me thought they had to simulate the smoke to get this effect and were amazed it was performing well. Its pretty awesome that Godot allows this kind of flexibility with volumetric fogs. Also, correct me if i'm wrong, i dont think unity has such volumetric fog, even in hdrp.
@Morimea
@Morimea Год назад
For me in 2008 "god rays" effect in Crysis was "revolutionary DX10 feature" because I knew nothing about computer graphic. Knowledge of "computer graphic" is not something important, and people who overreact about it - they need touch grass.
@2nafish117
@2nafish117 Год назад
@@ThiagoJaqueta a fellow db player? Nice to meet one in the wild
@ChrisD__
@ChrisD__ Год назад
@@Morimea Boooo! This is fun hobby and career path, let people have their fun with it. Knowledge is always valuable.
@MakotoIchinose
@MakotoIchinose Год назад
I'm more inclined to think CS2's implementation is "fake" volumetric sprite with the position and visibility controlled by 3D voxels (as shown in the BtS part of the trailer video), as opposed to single 3D volume like that, which the former could offer more performance than the latter.
@crigz
@crigz Год назад
I cover that quickly at the end of the video. The way Godot implements the volumes there isn't much performance impact for using volumes as voxels.
@Pandaxtor
@Pandaxtor Год назад
Which make sense considering how picky CS players are with their frame rates. Anything that hogs your pc to 30 fps (even 60 fps) is a big no no.
@Thirty-Two
@Thirty-Two Год назад
@@Pandaxtor only 60?
@Pandaxtor
@Pandaxtor Год назад
@@Thirty-Two CS players want thier game to run at +120 fps.
@reJECT0
@reJECT0 Год назад
​@@Pandaxtor240+ is standard, a lot of CS players are moving to 240Hz monitors
@unfa00
@unfa00 Год назад
I was wondering about this ever since I saw footage from the game. Thank you for making it real and showing everyone how it can be done :)
@bosnianlain
@bosnianlain Год назад
oh its the linux music dude, hello
@unfa00
@unfa00 Месяц назад
@@bosnianlain Hi :)
@merthyr1831
@merthyr1831 Год назад
Amazing work, and a great demo of Godot's new potential!
@Polygarden
@Polygarden Год назад
Great tutorial! I didn't even know that there is a fog shader type available. Very helpful content, thank you very much!
@FrizyOficial
@FrizyOficial Год назад
valve: 10 years crigz: 5 minutes
@inedholp1565
@inedholp1565 Год назад
tbf, i think the way volumes were handled in source were limiting, so they had to upgrade the engine to fix it
@envisionformula4007
@envisionformula4007 Год назад
@@inedholp1565 yes. godot had the volumetric fog available for crigz to use, whereas valve had to implement everything from the ground up
@0xDreamy
@0xDreamy Год назад
@@envisionformula4007 isnt valves csgo team still way bigger than godot's team
@gizzmicbob
@gizzmicbob Год назад
CS2 smokes look much better than shown here. I'd guess the performance was much better as well, Valve has a history of doing their best to make their games run on a potato. Not necessarily a fair comparison. As the first reply in this thread mentioned, Source 1 at this point is so old, trying to implement volumetric smokes would've been a mess. The smokes have not been what's taken them so long though, no one is "impressed with the tech" - we're surprised at the gameplay it offers. Valve basically built Source 2 from the ground up. They were trying to remove all legacy code to build a much better engine from the start. Godot has been around much longer than the first version of Source 2, it should be more feature rich. They've built engine features when they've needed them. CS2 had tons of basic game engine features missing that had to first be developed. Even with a good engine, building a game takes time. I believe over the years, they've only had a handful of developers working on the game. If you research how Valve operates, the employees are given more freedom is taking on tasks they want to. Valve has about 1.1k employees for ALL their games, web development, marketing, app development, Linux compatibility development, hardware engineering/design, engine development, customer support, etc.. But all that aside, Valve has only recently expressed interest in CS2. They've dabbled in it over the years, but with CS:GO only growing, the last thing they want to do is make changes that players don't like. The only reason they believe they can release CS2 is because it's almost identical to CS:GO in most ways. The major changes are expected to happen slowly after the game's release - rather change small things and see how the community reacts. Valorant certainly would've given them a wake-up call. It has more accessibility features and runs like a modern game in comparison. This has driven some of the more casual players to switch. Developing further in Source 1 would just take excessive amounts of development time for small features and bring bugs along with it. The original CS:GO codebase was developed by an 3rd-party as a port of CS:S to consoles. It is an absolute mess to work with. Most of the bugs and long-standing issues are due to the messy codebase or limitations of Source 1.
@thacoolest13
@thacoolest13 Год назад
Guys stop taking this literally
@sporktank
@sporktank Год назад
TIL about volumetric fog! Great video, particularly liked the bullet effect. 😁
@clankfish
@clankfish Год назад
wow, looks great. you made this look easy
@crigz
@crigz Год назад
Godot 4 was the MVP here, the FogVolume node does all the work!
@octagear
@octagear Год назад
thank you vvvery much for making me aware that negative density is an option in fog volume composition :D very nice video to quickly sum up the workings of volumetric fog in Godot based on an example (oh an i used that 3d noise texture example for testing as well, hail the poster ;P)
@circuitguy9750
@circuitguy9750 Год назад
Wow! The true skill here was not only doing this, but making it look easy.
@unfa00
@unfa00 Месяц назад
BTW, Godot now has a built-in 3D Noise Texture resource where you can easily generate a volumetric noise texture using the same noise tool you already know from it.
@collin4555
@collin4555 3 месяца назад
Oh this is marvelously simple and adaptable. Thank you for sharing!
@AslanSilva
@AslanSilva Год назад
Crigz delivers once again!
@NoVIcE_Source
@NoVIcE_Source Год назад
wow this is actually a very good vid
@unfa00
@unfa00 Месяц назад
Awesome to see you here :)
@alexkfridges
@alexkfridges Год назад
Now synchronise it over a client server architecture real quick and youre done ! Haha I'm kidding, great video.
@Archive-w5s
@Archive-w5s Год назад
my dream is to be as proficient as you are at game development, great video
@psuw
@psuw Год назад
Damn I really wanted to follow but then I realised I already do
@hiiambarney4489
@hiiambarney4489 Год назад
This starting with counterstrike footage I instantly thought threeclicksphillip started learning godot
@penguins4583
@penguins4583 Год назад
"Created" in 5 minutes with built-in fog. Step 1: make the sandwich. Step 2: Done!
@majohime
@majohime Год назад
Love your videos. Please make something about 3d outlines, and also xray silhouette outlines (like in Left4Dead). I think it's interesting topic that can be implemented with shaders and maybe some subviewport magic.
@crigz
@crigz Год назад
Great idea!
@merthyr1831
@merthyr1831 Год назад
Brilliant idea. I tried to do something similar in Unity when I was working on a university project, but it was incredibly hard to do with how Unity handles submeshes that I gave up.
@igorgiuseppe1862
@igorgiuseppe1862 Год назад
maybe what you want is fresnel shader: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-gruiNVU7x7Q.html its not hard to achieve an similiar effect in godot.
@majohime
@majohime Год назад
@@igorgiuseppe1862 It's cool effect for highlighting object but it does outline-like thing only on simple shapes like sphere. Testing it on more complex mesh and it looks just like shader for something like unit selection highlight for strategy games. What I am talking about could be achieved with secondary viewport that could render unshaded copy of mesh and then canvas shader could use SubViewport Image as texture and do some outline drawing on it to then render above user's screen. I have that idea in mind but it so messy, I'll have to make subviewport, special camera for it that just copies everything player sees but with another Cull Mask, I'll have to resize that viewport with window in separate script, and apart from that somehow create image editing shader which I have no idea about. It will be fun If Valve just used Inverse Hull Method and somehow made it visible through walls
@igorgiuseppe1862
@igorgiuseppe1862 Год назад
@@majohime i dont know how games do it nowadays, but in the begining they indeed duplicate the geometry/render. it was an waste of resourcesm but got the effect done
@Blenderislove
@Blenderislove Год назад
Awesome demo, thanks for making it public!
@fikotta5428
@fikotta5428 Год назад
nice unique video :)
@hungryhedgehog4201
@hungryhedgehog4201 Год назад
cool to see how up to date godot is
@Waffles_Syrup
@Waffles_Syrup Год назад
The only thing you missed from the cs2 smoke is that shooting through the center will not work, only shooting through the edges of the smoke will create the small tunnel.
@eldafint
@eldafint Год назад
That's not how the smokes work in CS2, you can shoot holes in them anywhere but it's most effective along the edges
@vortex_7
@vortex_7 Год назад
@@eldafint yeah i think he means that
@pierrotA
@pierrotA Год назад
I do not think it would be so hard to implement. I think the easiest way is surely to scan the adjacent smoke cubes density and normalise the value (0-1) by interpolation. You can then multiply your normalised value to the effect size and duration. Could take some ressources scaning for the adjacent cube when their is a lot of bullets in the same frame. To mitigate that, you could store a matrix of values that got updated each time a smoke cube is spawned/removed, calculate everything in the matrix, and only apply the effect every now and then.
@josebarria3233
@josebarria3233 19 дней назад
I knew Godot was good but damn.. this is fire 🔥
@tsuki0sm4nthus
@tsuki0sm4nthus Год назад
I was about to look for CS2 smoke for godot because I was trying to make a bootleg CS game and yt blessed me today!
@moe__dev
@moe__dev Год назад
Your a life saver.
@samuraikina5908
@samuraikina5908 Год назад
This is awesome , could you make steering behaviours for 3d, seek , avoid obstacles and also strafe? 😃
@crigz
@crigz Год назад
I'll take a look!
@samuraikina5908
@samuraikina5908 Год назад
@@crigz thanks a lot 😁👌
@USBEN.
@USBEN. Год назад
Solid useful content. Subbed.
@tiagotiagot
@tiagotiagot Год назад
Could this, with a modified shader, be used for something like a celular-automata based interactive fire simulation?
@jkr9594
@jkr9594 Год назад
Now this is getting interesting!
@chrisxdeboy
@chrisxdeboy Год назад
Depends on if you can give it an emissive property
@unfa00
@unfa00 Месяц назад
I think you could use it for visualization, but for simulation you'd probably need to make a Compute Shader.
@delkawy
@delkawy Год назад
Great video! I have a suggestion, something that I have never seen in other tutorials: a floor system like Tibia, where someone on an upper floor (+1) can see someone below, you can see this in any video of the game.
@YourFavoriteEnemy
@YourFavoriteEnemy Год назад
Thank you! By the way I came up with your channel thanks to gamedevJourney and his godot community spotlight. You have a really interesting channel.
@crigz
@crigz Год назад
@GameDevJourney is a legend
@VitegO4
@VitegO4 Год назад
the difficulty isn't in effect itself, but to make it synchronized in online game with high ping limits
@crigz
@crigz Год назад
It's no harder to sync over a network than any other game object.
@VitegO4
@VitegO4 Год назад
​@@crigz unless u use dedicated server model and have to broadcast it to all players in real time
@Ngong8
@Ngong8 Год назад
Good to know Godot 4 can achieve something like this! I wonder if this can be done to AI visual detection dynamically whenever the smoke being 'interacted' by bullets or explosions.
@ShinSpiegel
@ShinSpiegel Год назад
Mother of god, this is freaking amazing video.
@WestEast3259585
@WestEast3259585 Год назад
this smoke is more advanced than the real life smoke man
@rzoom895
@rzoom895 4 месяца назад
Does this smoke go through walls, and would a frag grenade on the opposite side of the wall impact the smoke, even though it's on the other side?
@ElGhost-p6t
@ElGhost-p6t 4 месяца назад
Hi, your tutorial is very good, but every time I start the game, the error "Cannot call method "set_ease" on a null value" appears. Can you help me?
@darknetworld
@darknetworld Год назад
Great work! I wonder how to build this later.
@dankmemequeen9581
@dankmemequeen9581 Год назад
Valve thinks they reinvented the wheel, then this guy shows what they did in 5 minutes XD. Nice video.
@vibaj16
@vibaj16 10 месяцев назад
minus the lighting, multiplayer stability, more "wispy" smoke effect, smoke following players running through it, etc
@nmhpyt
@nmhpyt Год назад
Thank god this is source two the 2nd
@SamuTheFrog
@SamuTheFrog 2 месяца назад
Wow dude Never guessed it woulda been this simple.lmao
@micmacha
@micmacha Год назад
I love froxels... the CSG side will eat a jagged hole in your frame rate though. Gotta treat it case-by-case.
@bertangokalp9002
@bertangokalp9002 Год назад
Please do multiplayer tutorial you are my savior if you do this!
@xnet-pvzok728
@xnet-pvzok728 Год назад
Squad was doing this before it was cool
@PrueferAuge
@PrueferAuge 5 месяцев назад
i cannot put the noise png into the density texture. i get this error: The selected resource (CompressedTexture2D) does not match any type expected for this property (Texture3D). im using the image from github
@hery8148
@hery8148 9 месяцев назад
How do you create fog directly around you? How do you stylize the fog and how do you make fog ally / enemy (allies see the smoke but can see through it and their opponents can not).
@Mikelica69
@Mikelica69 Год назад
Fantastic!!
@the-guy-beyond-the-socket
@the-guy-beyond-the-socket 11 месяцев назад
how did you just drag&dropped .png into density tecture variable? for me it complains that it need 3d texture however there is no way to make one, only placeholders and blanks.
@hieptranngoc2584
@hieptranngoc2584 Год назад
nice
@Strixluca
@Strixluca Год назад
i love to see more videos bro
@kiri9979
@kiri9979 7 месяцев назад
easiest sub of my life
@millerbyte
@millerbyte 3 месяца назад
Brilliant
@owenlloyd2528
@owenlloyd2528 Год назад
Thank you
@bleepblooplucaname
@bleepblooplucaname Год назад
Cool stuff
@recepkarademir
@recepkarademir Год назад
Perfect
@TheCatofCaesar
@TheCatofCaesar Год назад
awesome!
@KarlTheCool
@KarlTheCool Год назад
Funny thing is this version is slightly better the cutouts align with the player's aim and not the view model.
@bbom9197
@bbom9197 Год назад
❤❤❤ more videos like this
@user-xd6mk4fp2l
@user-xd6mk4fp2l Год назад
Wow cool!
@largeuselessness
@largeuselessness Год назад
amazing
@solitary200
@solitary200 Год назад
Oh, and maybe a VFX overview would be good too :)
@majoramarii
@majoramarii Год назад
0:20 how did you use world environment? I cant see any world environment node
@makarkuznetsov9619
@makarkuznetsov9619 Год назад
Great's work! I want you to make a realistic explosion and a guide like this. Thanks!
@solitary200
@solitary200 Год назад
Could you create a tutorial on gun hand IK in Godot 4?!
@DarkShroom
@DarkShroom Год назад
great video
@sslaxx
@sslaxx Год назад
Have you seen HungryProton's take on this? They're using voxels.
@naraz927
@naraz927 Год назад
yo can you make a video on how we can limit the colour palette of a viewport? (so that it works for both 2d and 3d)
@solitary200
@solitary200 Год назад
Can you do a root animation overview?
@stefanb4389
@stefanb4389 Год назад
Please, create a tutorial for 3D character "Click and Go" controller same as ROSE Online MMORPG and also handling stairs/steps movement using that controller. Thank you. :)
@sanyi9667
@sanyi9667 Год назад
Have you seen the new UE5.2 features? is Godot4 capable of creating softbody kind of objects? deflated tires or realistic muscles?
@pierrotA
@pierrotA Год назад
Softbody, yes. Deflated tires, yes. Realistic muscles... Define realistic ? Of course UE5 is way more advanced that Godot in a lot of things (light, physics, reflections,...). You can do anything but it is hard to install/use/learn. It's very heavy (ressources/size) and hard to optimize. Godot is very light (ressources and size), easy to install/use/learn, and allows you to do very advanced things (like that smoke) very quickly. Everything work with node which allow a very fluid work flow. Those two engines are not even concurrent, they are too different. It's like saying that a forge is better that a barbecue because you cannot melt iron ingots in a BBQ. It may be true, but trying to cook a steak inside a forge is as stupid as forging in a BBQ.
@sanyi9667
@sanyi9667 Год назад
@@pierrotA big words indeed - I understand your point but softbodies are not really that good in Godot. Try working with a softbody as a cloth, there is clipping through everywhere no matter what you do. It is sad but in those cases UE5 is better. I hope in the future someone will improve those godot physics. I swear I'd do it myself if I knew
@pierrotA
@pierrotA Год назад
@@sanyi9667 IMO, cloths in softbody are always a mess to make, on all engines... But once again, UE5 is way more advanced that Godot. I never saw anyone say otherwise. Once you master it, you can do amazing things. I was a VR dev, I know well that Godot is not as advanced. But Godot is very light and work instantly on all OS. It can be very good if you want to make a relatively small game without all the pain that UE5 will eventually cause you (oh you forget a coma and you save ? You have created an interface and you remove it without saving ? You sneeze a little too hard ? You fool... nothing will launch now. Good luck).
@acf2802
@acf2802 4 месяца назад
This is a "we have smoke grenades at home" moment.
@Avsword
@Avsword Год назад
3ksphilip?
@urielohim
@urielohim Год назад
How does Godot handle replication?
@WalmartVaxei
@WalmartVaxei Год назад
valve is scared of this man
@firerunnew
@firerunnew Год назад
Cool! 0_O
@user-ty5wt1hh7i
@user-ty5wt1hh7i 10 месяцев назад
круто!
@TennessseTimmy
@TennessseTimmy Год назад
This is proof that graphics are worth nothing. But game design is hard and innovation is worth way more than people think
@SnakeEngine
@SnakeEngine Год назад
Until you see Unrecord.
@TennessseTimmy
@TennessseTimmy Год назад
@@SnakeEngine seen it, but that's the point, I get the audio visual experience from RU-vid, I don't even have to play the game. Therefore graphics don't matter.
@vibaj16
@vibaj16 10 месяцев назад
graphics are still worth plenty
@MrFutureDirector
@MrFutureDirector Год назад
a grenade should push the fog away from the explosion
@pingvin9166
@pingvin9166 Год назад
Given that godo4 was released relatively recently and earlier than gc:go, my question is, why do valves steal the toolkit with godot?
@crigz
@crigz Год назад
Hahaha damn sneaky Valve!
@pingvin9166
@pingvin9166 Год назад
@Pogging Scout It's a joke...... I guess.
@igorgiuseppe1862
@igorgiuseppe1862 Год назад
it must be a joke, but its not impossible to happen. godot is opensource so anyone can look at the source code, 4.0 was realased to close to CS:GO 2 so its unlikely that they had time to copy the code and implement in their own engine, but godot 4.0 took 3 years to be relased so its not like this feature was implemented in just a few days, anyone had access to the code in its beta phase and could fork it in their own direction before godot 4 relased. And finally even if valve did it, it wouldnt be anything ilegal or unethical, godot is MIT , anyone is allowed to fork its code and relase it under a different licence unlike licences like GPL.
@wialwydice
@wialwydice Год назад
smoke in cs2, it's idea so good, reaIisation vaIve cringe, sry for my very bad eng
@Art1stical
@Art1stical Год назад
Okay. Now sync it to a network without glitching or lagging.
@kyoseryt
@kyoseryt Год назад
U sound like 3kliksphilips long lost cousin
@maniksharma9736
@maniksharma9736 Год назад
Algorithm!
@smit17xp
@smit17xp Год назад
Why valve took so much time to implements this 5 Minute feature ?
@JeloOW
@JeloOW Год назад
wasnt possible in source 1 and they only started porting csgo to source 2 like 3 years ago
@marwan7614
@marwan7614 Год назад
5 minutes ?? its minutes for you cause the godot team did all the work.
@madbruv
@madbruv Год назад
6CLICKSPHILIP?
@faultboy
@faultboy Год назад
No we only need working Physics that the grenade does not glitch all over the place :(
@jlyn8228
@jlyn8228 Год назад
4kliksphilip!
@KaioMobile
@KaioMobile Год назад
Seus vídeos são muito bom, que pena que não entendo quase nada kkk, eu acho que se vc dublasse seus vídeos em português seria muito bom
@yiannis1236
@yiannis1236 Год назад
Godot 4 winning
@RobGeeDev
@RobGeeDev Год назад
If its so easy make csgo then 4Heed
@JokeryEU
@JokeryEU Год назад
since when you can make holes in smoke with bullets ? thats not realistic at all unless they are exploding bullets. also when an object passes through smoke it will the smoke with it a bit so it cant make holes. Talking about the cs2 smoke logic
@randalhopkins9984
@randalhopkins9984 Год назад
I don't think it's supposed to be realistic it is for gameplay
@grin4329
@grin4329 Год назад
Wtf 😂
@2pingu937
@2pingu937 Год назад
I really wasn't amazed with Valves showcase. After some of the technical feats they pulled off during lockdown for HL:Alyx, this is just a dissapointment.
@hornyclown
@hornyclown Год назад
Took valve 3 years to do this
@Boildroid
@Boildroid Год назад
can I use fog to make responsive clouds?
@liamarchesin8461
@liamarchesin8461 Год назад
Hey! Nice video, but I need help with my code: func spawnProjetil(): var cena = load("res://projetil/projetil.tscn") var instancia = cena.instantiate() get_tree().current_scene.add_child(novo_no) novo_no.add_child(instancia) instancia.global_position = $head.global_position instancia.apply_impulse(-$head.global_transform.basis.z * 10.0) Im trying to recreate the grenade, It spawns inside the player's head and there is no impulse... idk what to do!!
@liamarchesin8461
@liamarchesin8461 Год назад
I noticed that my godot preview physics only works when I alt tab the window, so the code is correct but i dont know how to fix this problem with physics
Далее
Godot 4 Post Processing: 3D Pixel Art Shader
9:48
Просмотров 64 тыс.
Unreal Engine 5 | Blueprint For Beginners (2023)
2:52:04
Просмотров 442 тыс.
ЭТО мне КУПИЛИ ПОДПИСЧИКИ 📦
22:33
Making a 3D First Person Game in Godot | Devlog 1
8:42
I Tried Recreating Counter Strike 2's Smoke Grenades
33:55
5 Games Made in Godot To Inspire You
4:14
Просмотров 58 тыс.
How Big Budget AAA Games Render Clouds
10:45
Просмотров 271 тыс.
Godot FINALLY Got Better Softbody
2:00
Просмотров 16 тыс.
5 Games Made in Godot To Inspire You
4:36
Просмотров 23 тыс.
Giving Personality to Procedural Animations using Math
15:30
1 Year of Developing My Game in Godot
19:19
Просмотров 182 тыс.
I Turned Fake Mobile Game Ad into a Real Game
10:26
Просмотров 3,5 млн