- 198
- 764 447
Game Engine Series
Netherlands
เข้าร่วมเมื่อ 21 พ.ค. 2020
Hello there! My name is Arash Khatami and I'm writing a game engine using C++ programming language. This channel is dedicated to my process of writing code for the engine and the concept art I make for use with the games that I'm going to make with this game engine.
Game Engine Programming 073.1 - Sampling methods for pre-filtering diffuse Image Based Lighting
✅ Support Game Engine Series patreon.com/gameengineseries or ko-fi.com/gameengineseries
In the previous episode we extended the functionality of content tools so that it can now create environment cube maps from equirectangular images. These environment maps can be used as a global light source for the objects in the scene. This is known as image based lighting, or IBL, which we'll be working on in this and the next few episodes of the series.
🟥(Red Episode)
The assets I used in this video are available for Patreon and Ko-fi supporters of the channel:
www.patreon.com/collection/270663
ko-fi.com/gameengineseries/shop
SampleVizinator 3000:
Patreon: www.patreon.com/posts/samplevizinator-116367054
Ko-fi: ko-fi.com/s/0639d09206
✅ Donations:
www.paypal.com/paypalme/arashkhatami
ko-fi.com/gameengineseries
✅ Discord
discord.gg/75ZmXwz
✅ Twitter
PrimalNippleMan
🐱 Mr. Frummel & Louis' unreal adventures
mr.frummel
💜 Big thanks to Tribal Elders:
Von Bismarck, Lester Lin, Zachary Shrout
💚 Big thanks to Chief patrons:
Simon, Eero Laine, deathcat00
🧡 Big thanks to Shaman patrons:
Shaun Mitchell, Talis Lincoln, Miime, Timmy Jenkins, David Ducados, Soheb Bhimani, Wladimir Termont
Further reading:
Wikipedia Riemann sum: en.wikipedia.org/wiki/Riemann_sum
Cube map texel solid angle: www.rorydriscoll.com/2012/01/15/cubemap-texel-solid-angle/
Stupid Spherical Harmonics: www.ppsloan.org/publications/StupidSH36.pdf
Matt Pettineo's code: github.com/TheRealMJP/MemPoolTest/blob/main/SampleFramework12/v1.04/Graphics/SH.cpp#L117
Direct3D Cube maps: learn.microsoft.com/en-us/windows/win32/direct3d9/cubic-environment-mapping
00:00 - intro
by Arash Khatami
-------------------------------------------------------------
#PrimalEngine #GameEngineSeries #GameEngineProgramming #TheGameEngineProgrammingSeries
In the previous episode we extended the functionality of content tools so that it can now create environment cube maps from equirectangular images. These environment maps can be used as a global light source for the objects in the scene. This is known as image based lighting, or IBL, which we'll be working on in this and the next few episodes of the series.
🟥(Red Episode)
The assets I used in this video are available for Patreon and Ko-fi supporters of the channel:
www.patreon.com/collection/270663
ko-fi.com/gameengineseries/shop
SampleVizinator 3000:
Patreon: www.patreon.com/posts/samplevizinator-116367054
Ko-fi: ko-fi.com/s/0639d09206
✅ Donations:
www.paypal.com/paypalme/arashkhatami
ko-fi.com/gameengineseries
✅ Discord
discord.gg/75ZmXwz
PrimalNippleMan
🐱 Mr. Frummel & Louis' unreal adventures
mr.frummel
💜 Big thanks to Tribal Elders:
Von Bismarck, Lester Lin, Zachary Shrout
💚 Big thanks to Chief patrons:
Simon, Eero Laine, deathcat00
🧡 Big thanks to Shaman patrons:
Shaun Mitchell, Talis Lincoln, Miime, Timmy Jenkins, David Ducados, Soheb Bhimani, Wladimir Termont
Further reading:
Wikipedia Riemann sum: en.wikipedia.org/wiki/Riemann_sum
Cube map texel solid angle: www.rorydriscoll.com/2012/01/15/cubemap-texel-solid-angle/
Stupid Spherical Harmonics: www.ppsloan.org/publications/StupidSH36.pdf
Matt Pettineo's code: github.com/TheRealMJP/MemPoolTest/blob/main/SampleFramework12/v1.04/Graphics/SH.cpp#L117
Direct3D Cube maps: learn.microsoft.com/en-us/windows/win32/direct3d9/cubic-environment-mapping
00:00 - intro
by Arash Khatami
-------------------------------------------------------------
#PrimalEngine #GameEngineSeries #GameEngineProgramming #TheGameEngineProgrammingSeries
มุมมอง: 185
วีดีโอ
Game Engine Programming 072.3 - Viewing cube maps in the editor
มุมมอง 1.2K14 วันที่ผ่านมา
✅ Support Game Engine Series patreon.com/gameengineseries or ko-fi.com/gameengineseries In today's video, we're going to look at how cube maps are created and displayed using the editor. 🟩(Green Episode) The assets I used in this video are available for Patreon and Ko-fi supporters of the channel: www.patreon.com/collection/270663 ko-fi.com/gameengineseries/shop ✅ Donations: www.paypal.com/payp...
Game Engine Programming 072.2 - Using the GPU to Convert equirectangular images to cube maps
มุมมอง 1.1K28 วันที่ผ่านมา
✅ Support Game Engine Series patreon.com/gameengineseries or ko-fi.com/gameengineseries In the last video, we discussed the algorithm for converting equirectangular environment maps to cube maps and we looked at how this is implemented using code that runs on the CPU. This conversion can be made faster by an order of magnitude if we were able to run it on the GPU. Today, we're going to see how ...
Game Engine Programming 072.1 - Converting equirectangular HDR images to cube maps using the CPU
มุมมอง 1.5Kหลายเดือนก่อน
✅ Support Game Engine Series patreon.com/gameengineseries or ko-fi.com/gameengineseries This video discusses the idea of approximate global illumination using the image based lighting technique. As a first step, we're going to use the CPU to convert equirectangular environment maps to cube map textures. 🟥(Red Episode) The assets I used in this video are available for Patreon and Ko-fi supporter...
Game Engine Programming 071.3 - Finish implementation of PBR
มุมมอง 2.6K2 หลายเดือนก่อน
✅ Support Game Engine Series patreon.com/gameengineseries or ko-fi.com/gameengineseries In this video, we'll expand the demo scene with additional objects, using the new geometry component and the PBR material properties. We're also going to implement the Cook-Torrance BRDF function in order to finish Physically Based Rendering. 🟥(Red Episode) The assets I used in this video are available for P...
Evolution of Primal Engine 2024: Thank you for 10.000 Subs!
มุมมอง 8992 หลายเดือนก่อน
A little time-lapse of Primal Engine's development from the very beginning till now (mid 2024). I made this video to thank everyone who has supported this channel through the years. Thank you all for your encouragement! ✅ Support Game Engine Series patreon.com/gameengineseries or ko-fi.com/gameengineseries
Explaining my game engine in 2024 - Part1: Triangle mesh tangent space, normal map identification
มุมมอง 9612 หลายเดือนก่อน
✅ Support Game Engine Series patreon.com/gameengineseries or ko-fi.com/gameengineseries This video is a compilation of the bits in my video series about game engine programming, where I explain various aspects of my game engine and other related subjects. ✅ Donations: www.paypal.com/paypalme/arashkhatami ko-fi.com/gameengineseries ✅ Discord discord.gg/75ZmXwz ✅ Twitter PrimalNippleM...
Game Engine Programming 071.2 - Adding PBR material properties and the geometry component
มุมมอง 1.4K2 หลายเดือนก่อน
✅ Support Game Engine Series patreon.com/gameengineseries or ko-fi.com/gameengineseries Today, we'll add the new data to the materials that can be set in order to define PBR properties of materials that don't use textures. We'll also add the geometry component for game entities. 🟥(Red Episode) The assets I used in this video are available for Patreon and Ko-fi supporters of the channel: www.pat...
Game Engine Programming 071.1 - Introduction to Physically Based Rendering
มุมมอง 2.2K3 หลายเดือนก่อน
✅ Support Game Engine Series patreon.com/gameengineseries or ko-fi.com/gameengineseries In this video, I'll give an overview of theory and mathematics behind physically based rendering (PBR) with Cook-Torrance GGX BRDF. 🟥(Red Episode) The assets I used in this video are available for Patreon and Ko-fi supporters of the channel: www.patreon.com/collection/270663 ko-fi.com/gameengineseries/shop ✅...
Game Engine Programming 070.3 - Mikk TSpace
มุมมอง 2.1K3 หลายเดือนก่อน
✅ Support Game Engine Series patreon.com/gameengineseries or ko-fi.com/gameengineseries Previously we discussed how a tangent frame can be calculated for any triangle mesh, given that it contains vertex normals and vertex UVs. We didn't however look at how a normal map is constructed, which obviously is less relevant for using it, but is important to know nevertheless. 🟥(Red Episode) The assets...
Game Engine Programming 070.2 - Texturing with normal maps in HLSL
มุมมอง 1.9K4 หลายเดือนก่อน
✅ Support Game Engine Series patreon.com/gameengineseries or ko-fi.com/gameengineseries In this video, we'll implement normal map texturing in HLSL. We'll sample from the normal map and use a per-pixel tangent-space to transform the vectors to world-space where they can be used for lighting calculations. 🟥(Red Episode) The assets I used in this video are available for Patreon and Ko-fi supporte...
Game Engine Programming 070.1 - Constructing a tangent space for triangle meshes
มุมมอง 1.9K4 หลายเดือนก่อน
✅ Support Game Engine Series patreon.com/gameengineseries or ko-fi.com/gameengineseries In this episode, we'll look at how normal vectors can be tweaked per-pixel in order to make the surfaces to appear having finer geometric details. This technique is known as tangent-space normal mapping, and in today's video we're going to implement the tangent-space part which we'll be using in the next vid...
Explaining my game engine in 2023 - Part7: Block Compression texture formats, sRGB color space
มุมมอง 6164 หลายเดือนก่อน
✅ Support Game Engine Series patreon.com/gameengineseries or ko-fi.com/gameengineseries This video is a compilation of the bits in my video series about game engine programming, where I explain various aspects of my game engine and other related subjects. ✅ Donations: www.paypal.com/paypalme/arashkhatami ko-fi.com/gameengineseries ✅ Discord discord.gg/75ZmXwz ✅ Twitter PrimalNippleM...
Game Engine Programming 069.2 - Texturing with bindless resources
มุมมอง 1.7K4 หลายเดือนก่อน
✅ Support Game Engine Series patreon.com/gameengineseries or ko-fi.com/gameengineseries Previously we set up our pixel shader so that it can sample and use textures. Today we're going to add texture samplers to the low-level renderer and use them in the root signature. In addition, we'll send descriptor indices of the textures used in each material to the GPU, so that the pixel shader can use t...
Game Engine Programming 069.1 - Prepare the pixel shader for texture sampling
มุมมอง 1.2K5 หลายเดือนก่อน
✅ Support Game Engine Series patreon.com/gameengineseries or ko-fi.com/gameengineseries Now that we have a set of textures ready for our 3d model, we can update our pixel shader to sample from these textures. In today's video we're going to do a few bug fixes and update the pixel shader. In the next video, we'll update the C code in order to pass descriptor indices to the pixel shader.🟥(Red Epi...
Game Engine Programming 068.2 - Test texture upload
มุมมอง 1.3K5 หลายเดือนก่อน
Game Engine Programming 068.2 - Test texture upload
Game Engine Programming 068.1 - Uploading textures to GPU
มุมมอง 1.2K5 หลายเดือนก่อน
Game Engine Programming 068.1 - Uploading textures to GPU
Explaining my game engine in 2023 - Part6: HLSL waves + texture import pipeline
มุมมอง 7266 หลายเดือนก่อน
Explaining my game engine in 2023 - Part6: HLSL waves texture import pipeline
Game Engine Programming 067.4 - Re-importing textures
มุมมอง 1.3K6 หลายเดือนก่อน
Game Engine Programming 067.4 - Re-importing textures
Game Engine Programming 067.3 - Adding texture import settings controls
มุมมอง 9406 หลายเดือนก่อน
Game Engine Programming 067.3 - Adding texture import settings controls
Game Engine Programming 067.2 - More texture import settings configuration
มุมมอง 8246 หลายเดือนก่อน
Game Engine Programming 067.2 - More texture import settings configuration
Game Engine Programming 067.1 - Texture import settings configuration
มุมมอง 9136 หลายเดือนก่อน
Game Engine Programming 067.1 - Texture import settings configuration
Explaining my game engine in 2023 - Part5: Light Culling with Approximate Sphere-Cone Intersection
มุมมอง 4917 หลายเดือนก่อน
Explaining my game engine in 2023 - Part5: Light Culling with Approximate Sphere-Cone Intersection
Game Engine Programming 066.4 - Import progression and coalescing meshes
มุมมอง 1.4K7 หลายเดือนก่อน
Game Engine Programming 066.4 - Import progression and coalescing meshes
Game Engine Programming 066.3 - Display statistics for importing assets
มุมมอง 1.2K7 หลายเดือนก่อน
Game Engine Programming 066.3 - Display statistics for importing assets
Explaining my game engine in 2023 - Part4: Foreward+ light buffers, intersection testing
มุมมอง 6337 หลายเดือนก่อน
Explaining my game engine in 2023 - Part4: Foreward light buffers, intersection testing
Game Engine Programming 066.2 - Folder selection dialog
มุมมอง 1.6K8 หลายเดือนก่อน
Game Engine Programming 066.2 - Folder selection dialog
Game Engine Programming 066.1 - More geometry import settings configuration
มุมมอง 8308 หลายเดือนก่อน
Game Engine Programming 066.1 - More geometry import settings configuration
Game Engine Programming 065.2 - Geometry import settings configuration
มุมมอง 9348 หลายเดือนก่อน
Game Engine Programming 065.2 - Geometry import settings configuration
Game Engine Programming 065.1 - Import settings configuration and asset proxies
มุมมอง 1.4K9 หลายเดือนก่อน
Game Engine Programming 065.1 - Import settings configuration and asset proxies
😍
Are there any books or resources you could recommend for aspiring learners?
Yes, I put a list of resources in the FAQ channel of our Discord server.
This is awesome, you have my respect.❤
I have one doubt. I want to make game from scratch. Do i want to make the game using opengl directly or should i first make the engine and then make the game from it. I can't get the proper clarity of these things. Please to share your opinions.
This is incredible
Can I ask, did you study Game development at university?
No, you can't learn most of this at the university. I learned by doing self-study and practicing.
This game engine programmer questions his sanity, on the regular.
diagram is not clear . due to your hand written & draw a line . upload new designed diagram use any editer. do not write or draw by hand plz
♥♥♥
I was angry until I realized just how stupid this gets
❤❤❤
gonna watch your entire playlist
Hi!, it seems like an impressive series, i am interested in creating a voxel engine using direct x 12 mesh shader as a project, do you think this series will be a good starting point to use for this kind of project?
if you specify the resource like this pack://application:,,,/PrimalEditor;component/Resources/ContentBrowser/TileView.png then the error is gone
Why do we need to add the _refreshTime to ContentBrowser again? I suppose the point of refactoring was to encapsulate it inside ContentWatcher among other things
It's been a while. I've to look it up again to figure out why that is. I'll get back to you!
I looked it up and now I remember why. ContentBrowser subscribes to ContentModified event of the ContentWatcher. Although the ContentWatcher has a refresh timer, it can still raise ContentModiefied events rapidly, once for each item that was changed. That's why ContentBrowser has its own refresh timer. Hope that makes sense.
Every time I try to write what you have I end up getting errors from the code that should I do.
One year's worth of game engine coding in the first 5 seconds of the video. This is truly a remarkable series! Keep up the brilliant work my friend!
Thank you, sir! 🙂
Ive started this course, thank you for still continuing to go on with this even after 4 years. i pray that you live a long and a prosperous life for the knowledge that you are sharing to the world, much love.
Can I ask how you are selecting types of different lengths to the next space. Like at 14:12. I know I could use Alt + Click drag to select the lines + Shift + End key to select the contents of those entire lines but i can't figure out how to select up to the end of the type or name. Such a useful thing would help me improve my coding speed. Its actually better illustrated at 14:23.
You can hold ctrl+shift and press the right arrow key to select till the end of a string. holding ctrl+shift+alt you can select till the beginning of the next word in the string.
@@GameEngineSeries Thanks🙏
Damn such a nice tutorial coming right when i needed it :D
HAPPY 10K ARASH🥳🎉
Thanks! 🙂
Ahh, so the kitty been the one coding this whole time. You just been doing commentary.
Yes, it's like Ratatouille, but with cats and programming 😄
Why you have just 10000 subs? this channel is super underated
in case someone forgot to add inside OpenSelectedProject when dialogResult is set to true win.DataContext = project;
I've completed through ep. 5! I'm excited to continue along with the series, thank you for the hard work.
Can i get the code from any where
You are the genius can you make a short 1 to 2 hour video on building a graphics, multiplayer game from the scrach without using the game engine. In any programing language ex- c++, python or java.
Quality of the video is holly shit
Hey! Thanks for the video. Do you mind if I create a Github repository and tries to make it following your tutorials ? I would credit you :)
Not at all! Go ahead and enjoy coding along!
For some reason i can't seem to get the messages to appear in the logger view. The messages are being stored in FilteredMessages but they cant be visible. Although when i was testing i got an error about a wrong path and it did show when the application wasnt running. (Yes the Logger.Add function is being called)
There's a Discord server you can feel free to join and ask for help. Please do read the rules first about asking for help. Thanks.
can u also do ambient occlusion, raymarched lighting, screenspace reflections and color grading?
one day, i will come back here and learn, your knowledge makes respect
Hmmmm, so for some weird reason my grid splitters are not working at all and the vertical one is at the left and the horizontal ones are the same size on the top. (i also cant move em) Edit: I hate grids, i had to add more row definitions for it to work. But at least it works.
Are you a wizard?
4th episode, just 161 more to go...
how did you change the property name at one time by select them both? Is there any shortcut?
Quite a bit later than your post so you likely figured it out already but just in case: Alt drag across lines to edit multiple on the same column Alt+Shift click two spots for the same effect Alt+Ctrl Click to edit any number of spots at the same time (doesnt have to be same column)
What program did you use to make this drawing at minute 3:10?
Photoshop
What's the benefit of determining whether a texture is a normal map? Do you use this for a kind of automated importing system in your engine?
Yes, there's a game editor where you can import a bunch of images at once, and we determine what format fits the best for each image. If an image is likely to be a normal map, then the corresponding format will be used (i.e. BC5).
Hi, will you implement the physics system in the future?
Hello, yes I will implement a basic physics system.
Thank you for this resource 😍
Hello good sir, I’ve embarked on the journey of creating my own game engine myself through this tutorial. I’ve successfully completed the second video and I’ll start the third tomorrow, I really appreciate you doing this. As you’ve stated these videos may not initially gain a lot of attention but it will increasingly grow across time without a doubt. You are a gem in the game engine development community.
Hey, thank you so much! Enjoy tinkering and learning! I'll keep the videos coming 🙂
@@GameEngineSeries it’s been an absolute blast so far ☺️
This is very interesting. Thank you.
😻
Is There a Good Editor Video Coming?
I was literally here when you had less than 100 subs. proud of your milestone man.
Thanks for being with us since the very beginning! 😊