CS2's Magic Menu
Вставка
- Опубліковано 8 тра 2024
- Here, let me reveal to you the secrets of the Source 2 engine, and how you too can fill the world with tens of thousands of shiny balls
0:00 - Tools menu
0:29 - Fullbright and lighting overview
1:30 - Static VS realtime shadows
2:46 - I fly to Morocco
3:49 - Shadow settings compared to real-life
5:20 - Light squares
6:20 - Light BALLS
6:59 - PBR
7:49 - Ambient Occlusion
8:20 - Third person
8:35 - Cubemaps!
9:20 - Optimisation - Ігри
Very cool that you went all the way to morocco just to make sure the shadows there were being rendered properly
I know right? This kind of enthusiasm for journalism is sorely missed in the gaming community. And the fact that he took time out of his own freetime just to travel to Italy and Morocco for a work trip instead of going on a holiday? Truly a soon-to-be Pulitzer-award-recipient.
By going he also made sure the update would drop. Two birds with one stone
"For the most part, the shadows actually looked better in real life than in Source 2, though I couldn't help but notice this particular shadow was still somewhat blocky around the edges. God pls fix."
Someone's gotta do it.
it's a tax write-off
2:54 Builders of those doors would be so proud if they knew their creation was visited by a Valve employee.
I hope 3kliksphilip's brother left a sticky note on the door frame.
You kinda feel sorry for the texture artists tbh, when the lit but untextured map looks so beautiful. I can see why SUPERHOT went down this route of graphics...
Bro thought we wouldnt notice
Wtf bro how do you post 6 days ago
Bruh
How did you comment 6 days ago?
bro time travelled
8:22 "Toggle third person and you can see how you darken the atmosphere around you wherever you go. And in the game!" brutal lol
Truly sadge
hits too close to home
It's so refreshing to see a youtuber doing a deep analysis of what source 2 brings to the table. All the other youtubers are like, ooh it's shiny, ooh the movement feels weird, ...
it is definitely relevant to comment on how bad the movement feels considering how important it is to many CS players...
He EVen go MORocco to doublr cheCk the shadow.!
@@ElderlyAnteaterit feels the same dude
@@loganatori6117 hmm I wonder what "9 months ago" means?
@@ElderlyAnteater means you're an idiot lmao
Local CS maniac goes to Morocco to compare CS2 graphics to real life
7:00 Albedo is one of the 3 base textures used in a PBR workflow. It is basically the unlit solid color of the texture, and along with roughness and metalness, it can create a physically accurate material.
In physics, albedo is the fraction of light which you reflect. So, you can represent it as the base color, “this is what the material will reflect if hit with white light”
@@Fs3i idd, it existed before the push towards PBR as it's commonly used as base colour.
In other words, it is essentially just the Diffuse Map
@@quintonlee4107 nah its more like Albedo is the base color and Diffuse is the light scatter
@@quintonlee4107 Not really - think of a diffuse map (in the Source Engine sense) as an albedo with more baked in information, such as shading and whatnot. It worked for years but the drive for realism has left these mostly outdated as you can only really add on normal maps for faux depth, and specularity to make it more/less shiny.
The goal of albedo maps are to be as flat as possible; essentially they're just the base colors that you'd see if a white light was shined at the object. You then add on extra information such as roughness, metalness, and normal maps, which light will interact with to create a physically based material that looks far more accurate. These materials can adapt entirely to different environments and lighting conditions while diffuse maps are much more static.
This video makes me really appreciate how much goes into just making the lighting of a map
I used to think making games couldn't be very hard, not that I add ever done a game but in my mind it was "how hard can it be, if there's so many people doing it?" so I decided to learn programing and do a game of my own and ... I quickly found out that making games, specially alone, is very hard.
"dont you just want to lick it"
Philip is like that one crazy uncle who randomly says things that make you disturbed
is he wrong though
My monkey brain's single neuron wants to lick it
Thousands of reflective balls
You're everywhere dude
I literally just stopped the video after hearing this and went straight to the comments
Hey Phillip! The shading you see in halfbright is called Matcap or Studio lighting.
Studio lighting is where a file containing light info is passed onto the faces in the scene, resulting in the shaded effect you see.
Matcap is based off a 1:1 image with a high resolution. The image only contains a perfect sphere with the desired face shading applied, and the image is then used to shade the scene. Clever people can use a fixed camera angle and plot materials onto a Matcap, resulting in a very quickly rendering video, at the cost of production time, so it's useful for rerenders.
If you found this interesting, please look further into these quick methods of approximate lighting by reading further on Google.
furry detected
@@awsomebot1furries probably do more to benefit society than you do
@@cul-de-sac I'm sure all the furry art they commissioned has been really beneficial to human progress LMAO
Why wouldn't they just perform a per-vertex lighting calculation using the dot product of the surface normal and the camera angle? It looks to me like the classic fake lighting used in the early 3D games like star fox. Is there something I am missing?
Edit: OP literally just made this up. Blender has a Viewport Shader tab with a "Studio Lighting" and "Matcap" option. The author of this comment seems to have extrapolated that the similar looking lighting in the Blender software means that these Source 2 options are using those techniques. The use of Matcaps is largely limited to sculpting software. Studio Lighting is Blender specific so it doesn't make any sense to say that Source 2 uses Studio Lighting for it's "halfbright".
@@awsomebot1 i know a furry who owns a pharmacy so.
the Morocco part actually helped me understand shadow a bit more for my drawings, did not expect to learn this at all from a CS/S2 video lol
I don't play Counter-Strike but I'm glad CS2 is coming out just because of these videos
The man went to Morocco to compare shadows with CS. That's dedication!
This is the most 3klikphilip a video can get for cs2
The main menu theme together with philips music layered on top of each other made my night
didn't notice that at first, it sounds great. his attention to detail is incredible
2:49 Now thats dedication, Philip!
i like the flexibility source 2 allows devs and mappers to have
I too would flex with my maps
6:55 a really cool trick that Valve could do is to have an algorithm that populates the world with light probes based on where the player is likely to be. More probes closer to the ground, less probes in areas you can't reach or in the sky. This could improve the graphic detail a lot and decimate the map render time.
Bot nav maps could be a way of doing that, so good idea!
@@SingeStheos yeah, its greedy mesh algorith in 3D. Honestly someone should contact Valve with this idea XD I think it could be absolutely massive
You can probably interpolate between probes, so I think it would be worse to implement your idea (same result on dense regions, bad ones on other regions). Plus the fact that there are so many probes everywhere shows that it does not come with too much of a performance / map size issue. Only question left is compilation time. Well if you are willing to increase the density locally, you're gonna have at least the same overall complexity I am guessing.
Using non grid-based probes requires a separate table of probe positions used for finding the closest probe to each dynamic objects' position instead of rounding the position to a grid and indexing. This introduces huge performance costs because searching through a large, irregular table takes much, much longer than indexing.
To avoid this (using a grid-based system), more likely locations for dynamic objects could include grids at increased fidelity. This is an decent solution for performance because it avoids long search times, but this comes at the cost of more file size. A separate table is required to denote where these increased fidelity grids are, and finding light data requires a few extra steps during runtime, especially in areas more common for the player to traverse, which introduces extra lag in possibly the worst place in the physical game world, where players spend most of their time. Also, the data structure naturally contains some redundant data where grids may overlap, especially in high-density areas (the most important).
To avoid using this unnecessary disk space, either the data will be irregularly spaced (introducing more runtime lag again), or the data structure will be indexed in such a way that avoids duplicate data by writing over unnecessary bits. This is complex from a memory-management perspective, as well as a customizability perspective. Similar algorithms (that actually prevent this redundancy problem) do exist, but optimizing it for CS2 purposes may be difficult (it's hard to say, really), and creating custom maps or adding objects to the scene forces lighting recalculations. This is technically an option, but makes custom projects using Source 2 much more complicated than using a regularly spaced grid to determine probe locations.
Unless someone is using a powerful computer with lots of disk space, this is impractical. Also, somebody would actually have to create the Source 2 mod and a 3D heatmap editor for this to be implemented, because it certainly isn't a viable option for the masses. I do appreciate the good thoughts though! As someone who likes to create games in my spare time, it's always nice to see other people trying to solve these kinds of problems too, because eventually the best solutions will become commonplace standards among graphics software which nobody even really thinks twice about. If you also enjoy these (rather in-depth) software problem-solving situations, I recommend Nemean's video on the Fast Inverse Square Root as popularized by Quake.
TL;DR I don't think this would work at all practically, especially not for the small improvements that this could make, but I enjoy the discussion nonetheless.
Low grav or noclipping players still need proper lighting applied to them. Weapons and grenades can also get launched into the sky and need to keep looking good.
3kliksphillip is the creator the community can't live without, but proably don't deserve! Keep it up Phillip! ❤
love you phil!
You either live long enough to die the hero or die long enough to villain the whatever.
This shit is so corny as hell
When you were looking at thousands of balls around 6:30 (lmao thousands of balls) I believe that it is not rendering points where lighting has been precompiled, but rather the points where lighting could (and in many cases has been) precomputed. The image of balls you saw is the result of applying modulo to Euclidean space causing a single ball to be rendered infinite times. The same principle is used in real-time rendering of fractals and stuff.
This was a fascinating watch, thank you!
I can't wait to see what the community can achieve with this tools!
I bet these videos make the graphics guys at Valve so. damn. proud!
Why
@@hellofoodthere8374cause usually nobody ever really pays attention to how much goes into a good looking game, people take it for granted.
This is so fascinating to see how an "engine" works, there are countless components to this new engine
For anyone that still wants to do this for themselves and is getting some kind of error while launching the game.
Launch CS2 normally, then go to Settings, then Game and then select 'Yes' on Install Counter-Strike Workshop Tools. After doing this, exit the game and wait for an update to install, put -tools in the launch settings and voilà. The game should now launch with an additional window, which are the Workshop Tools, ignore these and press the developer console button (this is usually ~, the tilde key, under the Esc button) and you've got your new Source2, Vconsole2 developer console, which should be its own window.
- Also note you won't be allowed to play multiplayer with this on, just remove the -tools from the launch settings
thanks! very helpful
Thanks!
I really appreciate the effort you put into subtitles, mr kliks ❤ thank you
As I always, very cool video. And the fact that you visited Morocco made it extra cool for me. I hope you enjoyed your stay here ❤
Love these nerdy things you do. Being a game dev, These videos are so fun for me.
Philip digging every possible feature of Source 2 mapping is always admirable to see and not just that but also taking trips to compare maps to in real life locations.
there's something mesmerizing about going around looking at the cubemaps in these maps, i'm really not sure why
i guess it's just really satisfying seeing them line up so nicely
Albeideo means color, its the color/texture and nothing else.
As for the shadows, GTA V has this feature where far away objects cast blurry shadows, thanks to Nvidia's PCSS. Easiest to see on a lamppole.
Fun fact, the blurry edge of a shadow is called the penumbra. Second fun fact, rays other than light rays also have a penumbra, like X-rays.
The various PBR properties like albedo and AO etc are explained quite accessibly in the article "Real Shading in Unreal Engine 4 by Brian Karis, Epic Games", at the "Material Model" section on page 8.
This videos pacing was great, I got lost in it till I realised it was going to be over.
I feel as though textureless visuals look timeless, or beautiful always, especially combined with lighting, because you, even subconsciously, see the resolution of a texture, but if everything is white, the resolution is technically infinite, and the better lighting gets, the harder that effect sells.
Awesome that you visited my country, hope you had a good time. You are welcome any time.
Coming from someone who used to both watch and edit CoD4, these tools open up so many possibilities for editors in the CS scene. Can’t wait to see shat people come up with!
Just a guess on the balls. Perhaps all these balls outsiide of the playable area are needed for the method used to calculated the lighting value of each ball. It could be that each ball is reliant on the balls next to it. And a couple of iterative calculations are used. So the balls outside of the playable domain could be like the undisturbed lightning balls. Since the balls are pre calculated it wouldn't really hurt performance.
Probably more that its easier to just tell the mapping tool to calculate everywhere than it is to specify exactly where is playable and where isn't playable. I'd imagine if they have so many of them then they shouldn't take up that much space in the map file.
Or maybe they use less probes, but then when you enable this tool, it's generates these balls at an unreasonablely dense and far away space, and that their only purpose is to show you what objects would look like underneath them. But yeah it could also just be auto generated. Storage and vram are so inexpensive nowadays.
or maybe the peobe algoeithm is just optimised enoigh to reasomably use this amount of probes and get good results.
The real answer is that the mappers do specify exactly what areas to generate these probes for, but lighting will be BADLY broken for any dynamically lit object that exists in an area not covered by them, this means if you can potentially throw a grenade there (even if its outside the map) it needs to be covered. Some other objects like antennas and satellite dishes in the skybox also rely on this non-baked lighting to be lit properly. There are settings on the volumes that generate the probes however that allow you to generate them less densely which appears to be done here, with more probes densely packed into actual playable space vs outside the level.
There can be props moving about even outside the playable arae (i.e. the 3D skybox) e.g. planes.
These CS2 technical videos really bring me back to watching your early CSGO videos after school.
This is your best video in a few years imo
Man CS2 seems like a lot of fun, i am really excited!
I wanna play a game with the shiny cubemap option on now, that looks so trippy.
Albedo from the official ValveSoftware page:
"An albedo, often interchangeably referred to as diffuse map, is a term used to describe reflection coefficient of a material surface containing view-independent Base Color information without any additional lighting or shadow information. Often stored into a Image Texture.
It's used to tell which color tint and initially add basic details for a Diffuse surface. And defines what we normally think of a texture as being before enhanced by other "treatment" textures like bump maps or specular masks."
It is a diffuse map.
Unity also uses the term albedo for the same.
A subject that won't be covered anywhere else although it has a huge impact on ig content makers, hence the game itself. Happy that your channel exists although like many people here I haven't played cs for years.
Hasn't been long but I already missed this type of videos :)
6:30
I imagine these voxels are also used for the smoke physics
nah they aren't
I can't believe phillip visited Morocco just to show us how shadows work
I don't know why, but I enjoy seeing this kind of "behind the scenes" a lot
Dude really went into Morocco and immediately started analyzing the shadows
can't wait for deep dive into Workshop Tools
I love the optimisation part
this video really lets me appreciate the map and light design the developers put into the area where i live .
6:20 YEEESSSSS
Basic breakdown of PBR Materials:
Albedo: The unlit colour of a material
Normal: The direction the light should bounce.
Specular: The colour the material reflects, this also works in black and white, so generally the lighter the specular the brighter the reflection.
Metallic: How metallic an object is. 0 is not metal, 1 is metal.
Roughness: How rough or glossy a surface is. 0 roughness would be a mirror, 1 roughness would be absolutely no reflection.
AO: Contact shadows and just generally simulating objects being close with a texture which is much cheaper than doing it with real time lighting.
Emissive: Is used for giving a texture the appearance of emitting light on a texture level. These usually don't emit any actual light, but will show up in reflections.
Those are the main ones that are used in basically every PBR shader. There's also some other maps that are used like thickness for determining how thick and object is for determining things like refraction and subsurface scattering.
The reason for the large number of wasted "balls" is probably to make look-up faster. The amount of data stored for each probe is very small, so they can be packed into a large buffer on the GPU that you can lookup into faster, by simply calculating the index based on the current vertex/fragment's world space position. However, because calculating the index like this is only really possible if your probe volume is a cuboid, you have to stretch the volume to cover all parts of the level that need GI. You could add multiple probe volumes with different sizes to save some VRAM (this is actually very common in other engines), but it would come at the expensive of higher memory bandwidth and computation. Either you use multiple render passes, which is bad for achieving good utilisation on modern cards, or you increase execution time, memory bandwidth and register usage by dynamically checking which volume to sample in the shader. Generally, if we have enough VRAM to just fit everything (RAM scales, clock speed does not), it makes sense to pack the whole thing in one buffer. That being said, if you wanted to dramatically increase the probe density to get more accurate lighting, then you might run run out of memory and have to resort to another method.
I almost never play csgo or cs2, like 2 hours a year, really. But I enjoy your videos so much, for many years now. Man
I like how you're rediscovering physics with shadows
Being able to see all this cubemaps stacked in palace right next to each other is just so trippy... I'll never get over how easily we can fool our brains with things that look approximately right.
Now I'm hyped for the CS2 mapping series
so exciting! good stuff!
Layering the Philip music with the CSGO music sounded really interesting sonically! At the start of the video while talking about -tools.
9:09 Amazing transition.
6:20 this is kinda satisfying. like seeing the straight lines in the balls just looks amazing
Your enthusiasm for computer graphics is lovely and the exact reason why I believe you would greatly benefit from an advanced computer graphics course from some uni!
RTX mods: 8:37
Portal-based culling occurs on the CPU, whereas CS2 seems to have GPU-based culling (based on what you are showing here, I don't have access to CS2). You still can't just add a portal to your face. E.g., in a room, if the camera isn't looking at any portal, you can consider everything outside the room occluded.
the real life comparisons to video game tech are amazing
Thanks philip, very cool
thanks philip very cool
I have noticed these half shadows when comparing shadows in games to real shadows, it's nice to know it's not just me considering these things when out and about
I didn't expect real time IRL shadow analysis
cs2 is so awesome! surely I'll get beta access any time now :)
Just the fact that you went to Morocco just to check out a games shadows 😂 great work!
The last part looks sick
Thanks Philip, very cool
The ball invasion made me feel really eerie
What a fucking high quality video. Love it
Variable shadow penumbra can be used. I believe that Crysis 2 used it quite a bit, considering it was a mainstream game. PC and DX11 though, but still quite nice to see.
Can't wait for an in real life's shadows comparaison, heard about some cool new graphics optimizations...
I really don’t understand quite why I’m so interested in everyone of your videos
I knew it's going to be interesting after seeing like the first 5s of the vid
i fricking love cubemaps
8:20 oh shit, I'm used to AO being locked into camera's screen space perspective, great to see that people somehow figured out how to implement it differently
whoa! disabling the textures at 5:30 and viewing only the lighting eerily reminds of Receiver 1
"That's because the Sun is big"
Thanks Philip, the more you know!
Nice vid
Hi Phillip! The blurriness of shadows is due to what's called "Umbra" and "Penumbra"
en.wikipedia.org/wiki/Umbra,_penumbra_and_antumbra
man that drawgray looks fucking nice, wish valve would add that and visible only player chams with blue and red colors for extra clarity, and then my competetive itch is scratched
Source1 actually has $albedo as an alternative to $basetexture in most engine branch. It's broken for most combinations but can sometimes work as a basetexture that doesn't self shadow with normalmaps.
Bro went to Morocco to comapare the shadows. 💀 Now that's dedication.
Albedo map is the colors of the textures without any effect such as opacity, roughness, emmissives. All that combined creates the material itself. Like the green leather covering B site's roof
Man im massive jealous of the Morocco trip
I love mat_fullbright 17 (where every surface is just the cubemap). Favorite debug view.
Really cool to see how much Valve are doing to make this a great game.
10:30 This whole video gives me the vibes of the hitchhikers guide to the Galaxy The bit words showing you the bable fish
Albedo is just another word for a regular color texture. A texture that decides waht colors are on a surface when no lighting is applied. When you enable that option it seems to just shown the albedo texture on each object exactly as that texture would be displayed if you looked at it in the files.
big up morocco and big up 3klik for visiting morocco 🎉
Amazing, everytime. A bit fast in your explanations to follow, but very interesting! thx, bro!
"albedo" is the word used for the color map textures. its simply just the colors painted on the textures without the physically based materials like roughness, specularity (reflectivity), etc
albedo is one of the many texture maps that goes into making a pbr texture, it's pretty much just the solid colour information/image that is accompanied by the other textures such as roughness and AO.
You always find a way of saying some jokes in-between the explanation that are inexplicably funny.