Nak Devlog: Back on track
8:20
14 күн бұрын
OpenGL with C++: Instanced Rendering
35:57
Python modules and folders
9:23
21 күн бұрын
OpenGL Oversimplified: Stencil Tests
15:33
OpenGL with C++: View Culling
26:41
21 күн бұрын
Introducing PyKrasue: a faster Pygame
6:23
OpenGL with C++: Image Arrays
26:14
Metal with SwiftUI: Cubemaps
24:33
WebGPU for Beginners: Mipmaps
16:00
OpenGL Oversimplified: Blending
14:58
Concurrent Programming: Taskflow
19:07
Concurrent Programming: SIMD
22:56
10k Subscriber Special
10:53
2 ай бұрын
Пікірлер
@RuthDavis-z7j
@RuthDavis-z7j Сағат бұрын
Hilma Course
@DonBraden-e1f
@DonBraden-e1f 11 сағат бұрын
Rohan Neck
@exeler22
@exeler22 14 сағат бұрын
Finally a triangle! I knew I was in for a journey and a half with vulkan but this has been fun! Thanks for having one of the only resources in existence for how to use vulkan with python, and double thanks for making it so thorough!
@mayonnaise4days571
@mayonnaise4days571 20 сағат бұрын
Oh i was hoping for phase 2 of the teeko game somehow
@mayonnaise4days571
@mayonnaise4days571 Күн бұрын
Okay, morning tutorial complete, I'm gonna' get some dishes done now. You're great, I'm gonna check out your new stuff later!
@mayonnaise4days571
@mayonnaise4days571 Күн бұрын
long live jumble board and print board
@mayonnaise4days571
@mayonnaise4days571 Күн бұрын
And now back to our Rust mentor in the field of bamboo:
@mayonnaise4days571
@mayonnaise4days571 Күн бұрын
Aw shucks is this going to spiral into a Teeko addiction for me, now?
@mayonnaise4days571
@mayonnaise4days571 Күн бұрын
Antonin Carette is a legend
@webgpu
@webgpu 2 күн бұрын
5:25 "i dont use these (workgroup)" - workgroup is the most important address space for PARALLEL ALGORITHMS.
@BakerMerlin
@BakerMerlin 2 күн бұрын
75910 Dimitri Shoals
@mayonnaise4days571
@mayonnaise4days571 2 күн бұрын
Thank you for making this tutorial series! 😊😊
@woohoocares1515
@woohoocares1515 3 күн бұрын
I very much enjoyed the format of this video. While the line-by-line tutorials are very nice, I also like the code-review style as it forces me to actually go through and implement stuff more on my own.
@woohoocares1515
@woohoocares1515 5 күн бұрын
your description of what to do with your fingers around the 14:00 mark was very unintuitive and confusing, everything else was great though :D
@user-zq4lo2cb2t
@user-zq4lo2cb2t 6 күн бұрын
It's little bit old tutorial I googled it, and found some way to fix this tutorial for newer version (2024.9) first, GPURenderPassEncoder should be like this: const renderPass: GPURenderPassEncoder = commandEncoder.beginRenderPass({ colorAttachments: [ { view: textureView, clearValue: { r: 0.5, g: 0.0, b: 0.25, a: 1.0 }, loadOp: 'clear' as GPULoadOp, storeOp: 'store' as GPUStoreOp, }, ], }); you must explicitly define types for loadOp, storeOp using "as" operation second, wgsl language doesn't support @stage no longer. so. instead of "@stage(vertex)" => use "@vertex" this same goes for fragment. you just need to type "@fragment" only. after this, You'll see a triangle. sorry for my short english language. (I'm Korean)
@greg.matthews
@greg.matthews 6 күн бұрын
Is this series going to continue? I hope so. The multithreading is good, but I wonder whether there is more to prevent the command buffer from being fully rerecorded every frame. That seems to slow the whole thing.
@twenty-fifth420
@twenty-fifth420 6 күн бұрын
Huh, I just forked wgpu. This is going to be interesting. WebGpu imo is the future of OpenGL. It is nice to have something that is not locked down like metal or direct x 12 or have the need to bust out the rune book for vulkan. Edit 1:55 Ah, yes, I am familiar with this design pattern. It is called ‘just stuff all your data in a class and your methods are safe enough to work!’m
@GetIntoGameDev
@GetIntoGameDev 6 күн бұрын
🤣
@rahuldas8393
@rahuldas8393 7 күн бұрын
0:23 Yeah back in the 19000000000s things were different
@RavikulRao
@RavikulRao 8 күн бұрын
hello there, great video
@Kaoson73
@Kaoson73 8 күн бұрын
You do not need the line: find_package(OpenGL REQUIRED). This is needed when your app calls OpenGL directly. Your app uses GLAD. You also don't need to write OpenGL::GL under the target_link_libraries function's library list (same reason). Just write "GL" (without the quotes) and you are good to go (if not, add "dl" (without the quotes) to the list). All this policy setting that you needed to do with cmake_policy() is because of this confusion. BTW congrats for finding how to resolve this confusion that you created yourself. Have a good day.
@RavikulRao
@RavikulRao 8 күн бұрын
@31.44 waifu domination hell yeah !!
@WesleyJane-w2r
@WesleyJane-w2r 8 күн бұрын
Schimmel Lock
@GetIntoGameDev
@GetIntoGameDev 8 күн бұрын
Velvet Frost
@Stav_Bodik
@Stav_Bodik 9 күн бұрын
in 30:14 we search for the new min,max corners after applying the transformation model in order to trace the blas boxes with world ray , hmm why we can't trace the blas boxes without applying the transformation to them using the object world ray ? hmmm is that because the tlas is goin to be dynamic ? like changing location and rotation ? and in order to rebuild it each time we need to consider the new transformation's of tlas ?
@GetIntoGameDev
@GetIntoGameDev 8 күн бұрын
Great question! So the tradeoff here is that AABBs have fairly simple intersection tests (compared to oriented bounding boxes), but need to be rebuilt. I haven’t looked at this code in a while but it’s probably possible to use a sort of inverse model technique here too.
@JulesPelak-p5n
@JulesPelak-p5n 9 күн бұрын
Clementine Junctions
@Stav_Bodik
@Stav_Bodik 9 күн бұрын
Thanks you very much for all the amazing work I really appreciate this ! Question, when converting the normal from obj space to world_space (21:47) why do we use the Barycentric method to calculate the normal, we could use the normal that we calculated using the cross of 2 edges cross(edge_ab, edge_ac) ? Why did we add a normal for the 3 vertexes/corners of a triangle , I think it is the same normal on all the plane of the triangle ?
@Stav_Bodik
@Stav_Bodik 9 күн бұрын
If its same normal, and it should be because on a flat plane all the normals has same direction and same size (normalized) (1.0 - u - v) * tri.normal_a + u * tri.normal_b + v * tri.normal_c = (1.0 - u - v) * NORMAL + u * NORMAL + v * NORMAL = NORMAL -NORMAL*u - NORMAL*v + u * NORMAL + v * NORMAL = NORMAL ???
@GetIntoGameDev
@GetIntoGameDev 9 күн бұрын
Great question! So if we’re treating these triangles as true geometric triangles then it’s true we’re pretty much done. However I’m treating the triangles as parts of the model, where triangles are representing curved surfaces with per-vertex normals. In this sense there’s a difference between the geometric normal and the display normal, hence the interpolation with barycentric coordinates.
@Stav_Bodik
@Stav_Bodik 9 күн бұрын
@@GetIntoGameDev But its only treatment right ? They are not curved they are flat same as we loaded them from file and set all corners to same normal, it is only for study ? I mean they are geometric, no one changed them ?
@GetIntoGameDev
@GetIntoGameDev 9 күн бұрын
That’s right, it’s just for lighting/reflections. The correct (flat) normal is used for intersection tests.
@Stav_Bodik
@Stav_Bodik 9 күн бұрын
@@GetIntoGameDev Do you have maybe more advanced tutorials ? when I finish this one I have to study about "Dynamic Fragment Buffer" ?
@ffuhro
@ffuhro 9 күн бұрын
Pretty cool 😊
@twenty-fifth420
@twenty-fifth420 10 күн бұрын
It is hilarious I am now subbed to a channel that I, as a Unix-Rationalist (I use Arch, btw) describes himself/themself as 'windows maximalist'. Thanks to you, I am sort of accelerating to reading the Ada core books. It isnt my first rodeo, I actually am very closely tied to Swift and D, but I like using words. Maybe it is because before this, I was a writer. I don't know.
@GetIntoGameDev
@GetIntoGameDev 10 күн бұрын
Welcome! I’m sort of playing the windows thing up a bit for the video. I’m glad I’m getting you into Ada! It’s a great language ☺️
@twenty-fifth420
@twenty-fifth420 10 күн бұрын
"If a routine does not return a value, it is called a procedure, if a routine does return a value, it is called a function. That is it!" In Swift, I am used to treating plain functions to start, very procedure like where-as later I optimize them into generic, higher order functions if I think it will be more data structure like, or a method if I think it will be more type/operation like. I think what is great that I feel like anyone should rip off for future design is the express explicitness strong types give you, so you sort map and later design overtime whether you are using procedures/functions. In a game, lets say you want to return a 3-D map, so a matrix grid with 3 rows and three columns (I interpret this as a 3-D cube whereas height and angle matter). This can accurately demonstrate a full world, and you can probably optimize this with a game camera by choosing to sort of treat a single row as a 'rotor' that only moves on a single axis in complex number space. Cool, yeah, would I use a procedure or a function? For me, I would use a procedure if I just want to do a subtle operation on the matrix map, and sort of just hide it behind the scenes. If I wanted to do some express mutability for both say my player and myself, I would use a function and probably return that map, another generic, whatever else etc. I like opinionated language design. It makes teaching and reasoning easier. Sometimes I feel like my favorite Swift, is a bit too unopinionated. And if you coded in it, you can maybe see why.
@SilverXenolupus
@SilverXenolupus 11 күн бұрын
I really appreciate these prep tutorials! As a game/graphics dev with very little experience in Web Dev besides working in CSS/HTML, this is really helpful.
@SilverXenolupus
@SilverXenolupus 12 күн бұрын
It is wild to me that your workgroup size was 1x1. I have never seen anyone go below 8x8.
@rafamichalski6150
@rafamichalski6150 12 күн бұрын
There are problems running each Finished project: C1083 Cannot open source file: 'control\app.cpp': No such file or directory . They disappear only after edition of the .vcproj.filters and .vcproj files. Can you commit a working solution?
@twenty-fifth420
@twenty-fifth420 12 күн бұрын
“I am really interested in data oriented design.” Same. I knew that whenever I constructed my first Magic Deck Mana Curve, and the game I made was an RPG, I knew I just like numbers 😂
@bro.why6750
@bro.why6750 13 күн бұрын
This was extremely useful, and your voice is very soothing. Thank u
@ivanyosifov2629
@ivanyosifov2629 13 күн бұрын
Can I ask for future videos to increase the font size of Visual Studio. It's very hard to read. Thank you so much.
@GetIntoGameDev
@GetIntoGameDev 13 күн бұрын
Easy, thanks for the feedback!
@ivanyosifov2629
@ivanyosifov2629 13 күн бұрын
@@GetIntoGameDev No problem man. I really enjoy your tutorials
@ffuhro
@ffuhro 13 күн бұрын
Loved the pacing, thanks!
@SkyFly19853
@SkyFly19853 13 күн бұрын
I hope that one did NOT come with Windows 11...
@GetIntoGameDev
@GetIntoGameDev 13 күн бұрын
Let's just say it didn't come with Windows 12...
@SkyFly19853
@SkyFly19853 13 күн бұрын
@@GetIntoGameDev I plan to install Windows 10 or BSD system if I ever get a new PC...
@artahir123
@artahir123 14 күн бұрын
is this the last video of the series ?
@azaias
@azaias 14 күн бұрын
I recently implemented abstractions for Render Passes and Render Pipelines in python, they're pretty useful for anything that uses multiple render passes, like post processing. Could you possibly make a video on something like this?
@azaias
@azaias 15 күн бұрын
I like the current font, I think it fits the aesthetic of the game pretty nicely
@JulianSpencer-tf7sq
@JulianSpencer-tf7sq 16 күн бұрын
What type of game is Nak?
@GetIntoGameDev
@GetIntoGameDev 15 күн бұрын
It’s a 2D platformer with arena combat
@binkbonkbones3402
@binkbonkbones3402 16 күн бұрын
Hi, I actually have a question Is there an easy way to set a fixed rendering resolution that doesn't require extra processing with a shader? Particularly in something like unity? I want to create the illusion of like a super Nintendo inspired 3d style, but where the rendering resolution is low enough to make it look retro and pixelated without a voxel engine or an advanced shader, I want it to run on phones, and ideally the retro aesthetic should reduce the work load, not increase it
@GetIntoGameDev
@GetIntoGameDev 16 күн бұрын
You could try reducing the framebuffer size, then using glViewPort to tell OpenGL to render to that size, then drawing that framebuffer to the screen. I’d also use gl_nearest texture filtering on the framebuffer Edit: this is with rendering to one external framebuffer then presenting that to the default framebuffer
@grrsa
@grrsa 18 күн бұрын
7:00 - This pattern for removal would put the array out of order. Would the "active" range of the array just be re-sorted as part of a `pre-update`? Edit: clarity and grammar.
@GetIntoGameDev
@GetIntoGameDev 18 күн бұрын
Actually having it in order was just for illustration, the array does not need to be sorted at all!
@charfractal9441
@charfractal9441 18 күн бұрын
i was doing Vulkan for a month and after some point it got so hard, i then found your playlist, and it feels now a lot of things are making sense, thank you for this !! really helped a lot !!
@therealvbw
@therealvbw 19 күн бұрын
Thank you for the breakdown. Are these things fixed once the pipeline is created or can they be modified on an existing pipeline?
@SkyFly19853
@SkyFly19853 19 күн бұрын
Oh... Lists... perfect for tile map.
@shailmurtaza9082
@shailmurtaza9082 20 күн бұрын
Thanks! You made this algorithm very easy to understand.
@RonaldAnthon
@RonaldAnthon 21 күн бұрын
Rust Lang --> Get Good!! 😇
@Udinanon
@Udinanon 22 күн бұрын
This is a very Useful tutorial, but in my case when I capture the scene, the renderdoc scene is basically empty, even though the program is running correctly. I can't figure out if its an issue of the Python libraries being used, of Linux, of RenderDoc or what it is.
@Alexander-il9yx
@Alexander-il9yx 23 күн бұрын
This is awesome man! This is great news for python game developers. (:
@rusty-neko
@rusty-neko 23 күн бұрын
thanks man