Brendan Galea
Brendan Galea
  • 33
  • 1 963 197
ChatGPT controls NPCs in game - Coding Experiment
This is very much just in the proof of concept stage. Basically the game would be like pokemon but all the Non-player characters would be controlled through a combination of built-in ai systems + chatGPT.
Links
github: github.com/blurrypiano/monster-chat
artwork and tileset: cypor.itch.io/12x12-rpg-tileset
tutorial for html pokemon like game: ua-cam.com/video/yP5DKzriqXA/v-deo.html
background music
------------------------------
Track: After Rain - Zackross [Audio Library Release]
Music provided by Audio Library Plus
Watch: • After Rain - Zack...
Free Download / Stream: alplus.io/after-rain
------------------------------
Переглядів: 20 104

Відео

Alpha Blending and Transparency - Vulkan Game Engine Tutorial 27
Переглядів 28 тис.2 роки тому
By setting a fragment's alpha to a value in between 0 and 1 we can render semi-transparent objects. Unfortunately things aren’t that simple. When working with semi-transparent objects, the order in which we render them actually matters! In this tutorial we add a limited blending capability to our point light system, allowing them to be rendered with a nicer appearance. Discard vs Alpha Blending...
Specular Lighting - Vulkan Game Engine Tutorial 26
Переглядів 10 тис.2 роки тому
Specular lighting represents shiny materials by modelling the reflection of light sources on the object. Shiny materials reflect light more strongly in the direction opposite the angle of incidence. This means that unlike diffuse lighting, the position of the camera/viewer now plays a role in the lighting calculation. Inverse View Matrix Paste Bin Link pastebin.com/wBAEhNjz Timestamps 00:00 - I...
Multiple Lights - Vulkan Game Engine Tutorial 25
Переглядів 13 тис.2 роки тому
In this tutorial we add support for multiple point light objects in the scene. Lights will still be stored in the GlobalUbo, however for rendering the light objects we will use push constants. With the simple implementation shown in the video, each light in the scene contributes to every fragment's lighting calculation. For this reason, I set a limit on the total number of lights possible. With...
Billboards - Vulkan Game Engine Tutorial 24
Переглядів 15 тис.2 роки тому
A billboard is a flat 2D object embedded in the 3D world, but has the additional property that it is always facing the camera. No matter how the camera moves or rotates, the billboard will always face the camera to some extent. In this tutorial we implement a second rendering system that uses this billboard technique to render a spherical point light. Offsets Paste Bin Link pastebin.com/ENRQLRR...
Project restructure and cmake - Vulkan Game Engine Tutorial 23
Переглядів 16 тис.2 роки тому
In this tutorial I change the projectto use cmake rather than a simple makefile to make building on multiple platforms simpler and more straightforward. Paste Bin Links Cmakelists.txt: pastebin.com/jzk262hg Env windows example: pastebin.com/mrPVsS1r Env Unix example: pastebin.com/j23jKX7U Timestamps 00:00 - Git repository restructure 02:35 - Tutorial start (CMakeLists) 07:12 - Updating relative...
Vertex vs Fragment Lighting - Vulkan Game Engine Tutorial 22
Переглядів 11 тис.2 роки тому
Currently all lighting calculations are being performed within a vertex shader, meaning that light intensity is only calculated for each vertex, and the computed color is then blended across the fragments of each triangle. Rather than interpolating the final color value, we can instead interpolate the surface normal at each vertex. Then within the fragment shader we use the interpolated normal ...
Intro to Point Lights - Vulkan Game Engine Tutorial 21
Переглядів 13 тис.2 роки тому
Point lights are infinitesimally small sources of light. They differ from directional lighting in two major ways: the direction to the light source will be different for each vertex and the intensity of light is attenuated based on the distance between the vertex and the light’s position. In this tutorial we add a point light object to the global UBO and update the vertex shader to make use of ...
Descriptor Sets - Vulkan Game Engine Tutorial 20
Переглядів 19 тис.2 роки тому
Vulkan uses descriptors as a way to provide resources to our shader programs. Descriptors cannot be bound to a pipeline individually, and must be grouped into a set. Additionally, before pipeline creation, a descriptor set layout must be provided. A descriptor set layout acts as a blueprint, telling the pipeline how many descriptors will be bound, and what types of resources each descriptor use...
NonCoherentAtomSize Bug Fix (Tutorial 19)
Переглядів 7 тис.2 роки тому
In this video we fix an error from tutorial 19 where we weren't taking the nonCoherentAtomSize property into account when flushing the memory range of the uniform's buffer. To flush/invalidate any memory range of a buffer object, unless the ranges size = VK_WHOLE_SIZE (the entire size of the buffer), the range's size and offset must be a multiple of the VkPhysicalDeviceLimits::nonCoherentAtomSi...
Uniform Buffers - Vulkan Game Engine Tutorial 19
Переглядів 14 тис.2 роки тому
In this tutorial we create a buffer abstraction to make working with buffers a bit more convenient. We replace existing usages (vertex and index buffers) with this new abstraction, and then create a uniform buffer object which will store read-only data that can be updated dynamically between frames, to pass additional data to our shaders. Uniform buffer data can be used within shaders, similarl...
Realtime 2D Gravity Simulation
Переглядів 403 тис.2 роки тому
This has been a fun side project I've wanted to work on for a while. I had originally just planned on doing a GPU based particle fluid, but I got sidetracked by the nice looking results of the gravity simulation. (Sorry about all the compression artifacts, kind of impossible to avoid when uploading something like this to youtube) It is still very much a work in progress. This uses a grid based ...
Diffuse Shading - Vulkan Game Engine Tutorial 18
Переглядів 18 тис.2 роки тому
In this tutorial we implement a diffuse lighting model with a constant ambient light term in the vertex shader. This colors the vase object by calculating the intensity of light for each vertex based on how directly the surface at the point faces the incoming light. We use a directional light source, which means the same direction is used for every vertex. This simulates a light source that is ...
Loading 3D Models - Vulkan Game Engine Tutorial 17
Переглядів 20 тис.2 роки тому
In this tutorial we make use of tinyobjloader, a tiny but powerful single file wavefront obj loader, to load 3D models into the engine. This video is primarily based off of Vulkan tutorial : vulkan-tutorial.com/Loading_models Join the discord: discord.gg/CUQkuKsszr ​​ TinyObjLoader Header github.com/tinyobjloader/tinyobjloader/blob/master/tiny_obj_loader.h Models Sharedrive drive.google.com/dri...
Index and Staging Buffers - Vulkan Game Engine Tutorial 16
Переглядів 15 тис.2 роки тому
Index buffers are a way to reduce the amount of gpu memory required to store a model’s attribute data by allowing duplicate vertex data to be removed from the Vertex Buffer. An Index Buffer acts like an array of pointers into the Vertex Buffer, allowing vertex data to be reused by multiple triangles during rendering. A staging buffer is used in the process of transferring data from the host (cp...
Game loops & User input - Vulkan Game Engine Tutorial 15
Переглядів 16 тис.2 роки тому
Game loops & User input - Vulkan Game Engine Tutorial 15
Camera (View) Transform - Vulkan Game Engine Tutorial 14
Переглядів 22 тис.2 роки тому
Camera (View) Transform - Vulkan Game Engine Tutorial 14
Projection Matrices - Vulkan Game Engine Tutorial 13
Переглядів 36 тис.3 роки тому
Projection Matrices - Vulkan Game Engine Tutorial 13
The Math behind (most) 3D games - Perspective Projection
Переглядів 370 тис.3 роки тому
The Math behind (most) 3D games - Perspective Projection
Euler Angles & Homogeneous Coordinates - Vulkan Game Engine Tutorial 12
Переглядів 19 тис.3 роки тому
Euler Angles & Homogeneous Coordinates - Vulkan Game Engine Tutorial 12
Renderer & Systems - Vulkan Game Engine Tutorial 11
Переглядів 27 тис.3 роки тому
Renderer & Systems - Vulkan Game Engine Tutorial 11
2D Transformations - Vulkan Game Engine Tutorial 10
Переглядів 21 тис.3 роки тому
2D Transformations - Vulkan Game Engine Tutorial 10
Push Constants - Vulkan Game Engine Tutorial 09
Переглядів 22 тис.3 роки тому
Push Constants - Vulkan Game Engine Tutorial 09
Swap Chain Recreation & Dynamic Viewports - Vulkan Game Engine Tutorial 08
Переглядів 24 тис.3 роки тому
Swap Chain Recreation & Dynamic Viewports - Vulkan Game Engine Tutorial 08
Fragment Interpolation - Vulkan Game Engine Tutorial 07
Переглядів 23 тис.3 роки тому
Fragment Interpolation - Vulkan Game Engine Tutorial 07
Vertex Buffers - Vulkan Game Engine Tutorial 06
Переглядів 35 тис.3 роки тому
Vertex Buffers - Vulkan Game Engine Tutorial 06
Command Buffers Overview - Vulkan Game Engine Tutorial 05 part 2
Переглядів 35 тис.3 роки тому
Command Buffers Overview - Vulkan Game Engine Tutorial 05 part 2
Swap Chain Overview - Vulkan Game Engine Tutorial 05 part 1
Переглядів 48 тис.3 роки тому
Swap Chain Overview - Vulkan Game Engine Tutorial 05 part 1
Fixed Function Pipeline Stages - Vulkan Game Engine Tutorial 04
Переглядів 47 тис.3 роки тому
Fixed Function Pipeline Stages - Vulkan Game Engine Tutorial 04
Device Setup & Pipeline cont. - Vulkan Game Engine Tutorial 03
Переглядів 73 тис.3 роки тому
Device Setup & Pipeline cont. - Vulkan Game Engine Tutorial 03

КОМЕНТАРІ

  • @bdenix1997
    @bdenix1997 9 годин тому

    instead of compiling every shader as a build step, how about like lets say try to figure out if its modified, then if it is, compile it? can we do something like save every shader file's last modify date and then compare them, if its newer then it means its modified. then we only compile those?

  • @jonwebb5395
    @jonwebb5395 10 годин тому

    This is a great tutorial. However, one question I have is on the lve_device files. This file was not create in the last tutorial and it is not discussed in this tutorial, nor are we asked to download it. Obviously we need it to make this example work, so I downloaded it from the github repository. Is the creation of this file discussed in another tutorial?

  • @ooffoo5130
    @ooffoo5130 День тому

    Hey I might have missed it but is there a particular reason that we want to represent every operation as a linear transformation? Is it just so that we can evaluate the composition of all the transformations into a single matrix?

  • @MK-zj8sc
    @MK-zj8sc 2 дні тому

    I keep getting this error on arch linux: libdecor-gtk-WARNING: Failed to initialize GTK Failed to load plugin 'libdecor-gtk.so': failed to init

  • @atibyte
    @atibyte 2 дні тому

    Nice explanation, thank you.

  • @kakalisaha9428
    @kakalisaha9428 3 дні тому

    The vkCreatePipelineLayout throws an segmentation fault

    • @BrendanGalea
      @BrendanGalea 3 дні тому

      If your on windows check the pinned comment. I think I had a fix mentioned there that i go over in part 2 sorry!

  • @HolloMatlala1
    @HolloMatlala1 4 дні тому

    The 3 body problem will be solved in 3D VR Maths #Metaverse

  • @MusikArsenal
    @MusikArsenal 9 днів тому

    Darn.. this series never progressed far enough to teach textures 😅

  • @burakcanik01
    @burakcanik01 11 днів тому

    This, along with Cem Yuksel's 3D Transformation video really explains the subject well. I've reviewed this subject multiple times throughout the years but I gotta say, this 2-step approach (perspective projection = perspective transformation + orthographic projection) is IMHO the most intuitive and easy to remember way of teaching/studying this subject. Most books/resources tend to focus on deriving the perspective projection matrix from the ground up, often times skipping the inherent connection to orthographic projection. Thank you for a job well done. Cheers!

  • @chimpfwee
    @chimpfwee 12 днів тому

    It made an actual spiral, this is really cool

  • @Kavci034
    @Kavci034 22 дні тому

    4:32 because you changed the path, cmake doesnt recognize the source files before regeneration, and reopening vscode automatically generates cmake files. You can just regenerate from command palette

  • @RocketCityGardener
    @RocketCityGardener 22 дні тому

    I'm using Visual Studio 2019 and I can't figure out how to add a custom build step. Anyone have any luck with that?

    • @RocketCityGardener
      @RocketCityGardener 22 дні тому

      I managed to get it working by adding the following to VulkanTest.vcxproj in the section <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> It's doesn't look for all *.frag and *.vert files currently. Just the specific ones. I'd appreciate any help on making it generic like in the tutorial make file. <CustomBuildStep> <Command>C:\VulkanSDK\1.3.280.0\Bin\glslc.exe $(ProjectDir)simple_shader.vert -o $(ProjectDir)simple_shader.vert.spv</Command> <Outputs>$(ProjectDir)simple_shader.vert.spv</Outputs> <Inputs>$(ProjectDir)simple_shader.vert</Inputs> </CustomBuildStep> <CustomBuildStep> <Command>C:\VulkanSDK\1.3.280.0\Bin\glslc.exe $(ProjectDir)simple_shader.frag -o $(ProjectDir)simple_shader.frag.spv</Command> <Outputs>$(ProjectDir)simple_shader.frag.spv</Outputs> <Inputs>$(ProjectDir)simple_shader.frag</Inputs> </CustomBuildStep>

    • @RocketCityGardener
      @RocketCityGardener 13 днів тому

      I found a way that works for each file you add. It doesn't check for every frag or vert file and then loop however. Select the file in the Solution Explorer. Click the wrench icon in the lower Properties window to open Property Pages. Under Item Type select Custom Build Tool and Hit OK Open Property Pages again There will now be a Custom Build Tool tree, select that. Set Command Line to: C:\VulkanSDK\1.3.280.0\Bin\glslc.exe $(ProjectDir)%(Identity) -o $(ProjectDir)\%(Identity).spv Set Outputs to: $(ProjectDir)\%(Identity).spv And set Link Objects to No (Not sure what this does?) Repeat for both FRAG and VERT files.

  • @wisdomokafor9631
    @wisdomokafor9631 22 дні тому

    I have tried to implement the projection and view matrix in my vulkan application but my screen still blank even after using this method.

  • @eatDAmeats416
    @eatDAmeats416 24 дні тому

    hey was there ever a "device setup" video made about the classes you created?

  • @dusha3030
    @dusha3030 24 дні тому

    3 years after, this is still a Masterpiece, following the tuts rn. I can already tell you play a small part in changing my life. And for that, I want to thank you.

  • @tomfoolery5680
    @tomfoolery5680 Місяць тому

    The 3 billion body problem.

  • @moonyl5341
    @moonyl5341 Місяць тому

    if i stretch the window to be 0 pixels tall then it stops accepting input

  • @karelknightmare6712
    @karelknightmare6712 Місяць тому

    So in the end the frustum matrix is simplified to a ‘pyramid’ matrix so that angles from the center are displayed with respect to their tangential value. Right? 😅

  • @moonyl5341
    @moonyl5341 Місяць тому

    great tutorial but how come its B8G8R8A8 not R8G8B8A8?

  • @GrimReaperNegi
    @GrimReaperNegi Місяць тому

    Imagine if you could do this with games like Sims 3 or Sims 4!!!

  • @coolmanthecool603
    @coolmanthecool603 Місяць тому

    Tutorial 1 had 150k views, this, the second to last tutorial only has (almost) 10k views, only 7% of people actually finish (I didn't do last tutorial, because people probably skipped ahead and just watched to see what they were making, as its got a lot more views than this.

  • @justinhardee82
    @justinhardee82 Місяць тому

    you... are.. the shit bro, str8 up. This is simply amazing, ty for making these videos. You should follow it up with a part two of an engine creation but instead of vulkan using glfw for 3d graphics in a window, you should do it for OpenXR technologies, focusing on either PCVR or better, the Android / C++ native implementation of OpenXR for the meta quest 3. I am learning a lot from you, as opposed to the numerous books I could not quite grasp fully until I found your videos.. not even in the university I attend have I learned as much as I have in the past 20 summin videos of yours I binged in 4 days.. so far thanks

  • @oleksandrhrazhdan242
    @oleksandrhrazhdan242 Місяць тому

    Could ChatGTP help you to continue with Vulkan tutotials?

  • @TaskForge
    @TaskForge Місяць тому

    How to make the makefile? What’s .env?

  • @pedro_soares_bhz
    @pedro_soares_bhz Місяць тому

    Wow, these drawings are so cool, they have a 2000's vibe. Nice.

  • @Natural__Facts
    @Natural__Facts Місяць тому

    I’m working on my NEA project but I am super confused, can I get any contact details to ask for help? Or can you suggest any tutorials that could help me understand this?

  • @user-de5hy7ze1y
    @user-de5hy7ze1y Місяць тому

    where have discord ink

  • @yynill
    @yynill Місяць тому

    in what coding language?

  • @coolmanthecool603
    @coolmanthecool603 Місяць тому

    The way you say homogeneous is strange, I know its the proper way, but its not fluid, hum odge unis

  • @DoctorOfMinecraft
    @DoctorOfMinecraft Місяць тому

    how does the non linear z buffering effects the light calculations? or are they too small to care about?

    • @BrendanGalea
      @BrendanGalea Місяць тому

      When doing light calculations you want to use the world space x,y,z values so the non linear z value (screen space) in the depth buffer does not play a role in the calculation. The z depth buffering value is only really used for determining which fragment is closest so only the ordering matters. However for some more advanced techniques such as screen space ambient occulsion or when using shadow maps the non linear z buffering does start to matter and is something that should be kept in mind. It’s a bit beyond the scope of a UA-cam comment to be able to go into. But any good tutorial that depends on depth dependent information should cover how it is relevant in the context of the tutorials topic.

  • @StevenMartinGuitar
    @StevenMartinGuitar Місяць тому

    If anyone is wondering "Why is he doing most of the legwork for us - HOW WILL I EVER LEARN MYSELF?!!!!" .... Let me tell you ... I had that same thought. So I stopped watching this series and put it to one side. I then proceeded to go through the Vulkan-Tutorial chapter by chapter, reading everything and typing it all out...line....by....line. It was a freaking painful SLOG. 1000+ lines of code later, most of which I barely understood what I was copying out (and I'm an experienced C++ programmer just new to graphics) and you've JUST ABOUT rendered a simple triangle on the screen. It's a real motivation killer and I think that is EXACTLY what Brendan's example code aims to solve. Tuck away the excruciating detail in a few classes and let the learner understand the core concepts rather getting bogged down in why the VkImageViewCreateInfo::subresourceRange.baseMipLevel must be '0' in this particular example. I'm still working through some of the final chapters / more advanced topics, and I have a 'better' understanding on things but the reason I've now gone back to re-watch/continue this video series is to actually learn what the heck I was just typing for many hours :D

  • @devilbager
    @devilbager Місяць тому

    The problem with this tutorial is that this is a Vulkan tutorial. Although this series is most likely completed, I wanted to point out that what makes copying code so bad is that it's defeating the entire purpose of Vulkan, by copying code which is integral to Vulkan and what actually makes Vulkan it's own. The main goal of Vulkan is not to render a cube, this could be done with OpenGL or any other API, but what makes Vulkan different from an OpenGL tutorial is it's verbose low level design like setting up a logical device, etc. You can't learn a language like Spanish by using google translate. Of course this is just my opinion but again the viewers should not be dependent on downloaded code that they don't understand as beginners, which should have been the main talking points of this tutorial. Anyways that's my only issue with it, I do really like the quality of this series and how beginner friendly it is (excluding the copying).

    • @BrendanGalea
      @BrendanGalea Місяць тому

      Thanks for the honest critical feedback. I agree with what you’re saying. However if I was to do this again I would do it in the same way. I want to build up more of the surrounding context around renderpasses, framebuffers, etc where the tutorials covering each of these topics can really go into the proper depth, before going back and then going over the swap chain and device code. When I was first writing the tutorials for the device and swap chain code it was just information overload so I scrapped them and went the other direction. So hopefully in about 4ish months when I have a chance to start making videos again there will be just a few more topics covered before we finally go back to rewrite the swap chain and device code

  • @alexfrozen
    @alexfrozen Місяць тому

    What is advantage of uniform buffers over storage buffer? If it has so big limitation in size, which big loose over storages, there should be something bad side of storage buffer over uniforms. What's that?

    • @BrendanGalea
      @BrendanGalea Місяць тому

      Not positive and haven’t benchmarked it myself but I believe it comes down mostly to performance. The hard thing is it’s definitely device dependent what it actually going on behind the scenes. Uniform buffers are read only in shader code and also have a more limited size. Also it’s typically recommended to avoid frequently updating uniform buffer data. Because of this it’s feasible that some gpu devices may be using a different type of memory with faster read performance to optimize speed for reading uniform data in shaders. Sorry for the lackluster answer. I guess a good rule of thumb is that if you’re not targeting any specific device then use uniform buffers when you require only read only access in shaders and when the size limitations aren’t an issue. If targeting a specific device and performance is critical, best to do benchmarking to determine the differences.

  • @aeliusdawn
    @aeliusdawn Місяць тому

    4:00 "Since we've not using Vulkan" I assume you meant to say OpenGL?

  • @Chevifier
    @Chevifier Місяць тому

    Wooot!! Red triangle!! I gotta call home for this. Hey Mom! check this out😅

  • @randospawn7495
    @randospawn7495 Місяць тому

    Making a vulkan game engine by myself just wanted to see how to link it lol

  • @Raymond13557
    @Raymond13557 Місяць тому

    I'd like to use something like this for my game, you have to find a ring in a haunted house but the townsfolk are terrified of the ghosts. the ghost is not all that scary but he IS mean however, so you could defeat it by using a magic stone. Once you defeat the ghost another quest could show up to defeat a demon that is in a building

  • @salieridr9730
    @salieridr9730 Місяць тому

    I love your tutorials! I am following the official Vulakn Tutorials but I think it is hard for me to understand how it works. Your explanation is very clear!

  • @Fireblazer777
    @Fireblazer777 2 місяці тому

    Great explanation!

  • @mrshodz
    @mrshodz 2 місяці тому

    Your videos are some of the best on 3D programming!

  • @user-fl1dc9ju3g
    @user-fl1dc9ju3g 2 місяці тому

    Bruh made a whole universe

  • @Aurora12488
    @Aurora12488 2 місяці тому

    This is almost the perfect derivation of perspective projection (especially since it includes both the off-axis and FOV versions!). However, I wish you would have talked more about why applying the first perspective transform gets us into a space that allows for trivially transforming with the orthographic projection matrix. It doesn't seem intuitive to me. Firstly, I think it would have helped to emphasize that multiplying by n and dividing by z actually turns the slanted edge of the frustum into the right-angled straight edge of the desired rectangular prism because everything on that will end up landing at the exact same x value (or y, for the top, respectively). Secondly, however, we should note that what we get after multiplying with our perspective matrix is *not* a 3D rectangular prism, since its components haven't been divided by the w component (i.e. z value) yet. It's a seemingly somewhat arbitrary 4-dimensional entity, and so it's unclear from my limited linear algebra skills why doing the perspective divide and then applying the orthographic projection is equivalent to doing the orthographic projection and then the perspective divide. There seems to be a deeper "truth" to homogeneous coordinate equivalence that is more than just a notational convenience. If you had touched a little on that, this would have been the de-facto, perfect explanation.

    • @Aurora12488
      @Aurora12488 2 місяці тому

      Hmm, trying to figure it out more, it seems like the "divide-by-w" can really just be considered to be multiplying the matrix-vector multiplication by the scalar 1/w. And if you have a scalar a and a matrix-vector multiplication M times v, M[av] = a[Mv] (as well as [aM]v). I think that's the last piece of the puzzle.

  • @herohiralal3255
    @herohiralal3255 2 місяці тому

    Are you the same person as Joseph Anderson? The guy who makes game critique videos? You sound so similar...

  • @piotrek7633
    @piotrek7633 2 місяці тому

    6:55 why isn't that possible exactly?

    • @Aurora12488
      @Aurora12488 2 місяці тому

      Because matrices only allow for the resulting values to be linear combinations of the form Ax + By + Cz + Dw, where A,B,C, and D are just regular old numbers. In other words, matrix-vector multiplication takes a set of raw numbers, multiplies them component-wise with the vector's components, and then adds them together. There's no way to represent dividing one of the vector's components by a different one of its components. Now obviously you could make, for instance, A = 1/z before-hand and bake that into the matrix, but then *every single vertex* would need a special matrix because every vertex has a unique 3D position and thus a unique z value. So instead, we can use homogeneous coordinates to allow us to use a single matrix for all vertices of a given object, and then do the z division as a separate, final step.

  • @mrshodz
    @mrshodz 2 місяці тому

    Brilliant video.

  • @atismoke
    @atismoke 2 місяці тому

    This is beautiful! What happens when its in 3D though?

    • @BrendanGalea
      @BrendanGalea 2 місяці тому

      This method probably wouldn’t work well in 3D. In 3d most of space is empty so doing a dense grid representation would be a lot slower.

    • @atismoke
      @atismoke 2 місяці тому

      @@BrendanGalea ah, makes sense.

  • @maconcamp472
    @maconcamp472 2 місяці тому

    This represents our world peace! Galaxy collisions!!!🐼🐾

  • @fernandogoncalves7297
    @fernandogoncalves7297 2 місяці тому

    Bro got me good with the code to download, unfortunatelly for me, im implementing the tutorial with other names so i'll take my time translating everything. Still think that i`ll end up learnng a lot, so thanks!!! I`m really enjoying thinks so far! Edit, it was actually very fast, nice.

  • @10bokaj
    @10bokaj 2 місяці тому

    opengl looks down the positive z-axis? it is the y-axis that are swapped?