3D Programming Fundamentals [Introduction] Tutorial 0

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hey everybody my name is chilly and welcome to my 3d fundamentals series this series is going to teach you the principles that underlie all real-time 3d graphics I'm here to peel back the veil of mystery that surrounds 3d graphics and how it actually works if you're looking for just some code to copy and paste so you can cobble together something you don't even really understand you've come to the wrong place we're in the knowledge business here and the knowledge you learn here will apply whether you want to create your own custom 3d engine based on direct3d or OpenGL or use a premade engine like Unreal Engine or unity now the thing about hardware accelerated graphics is you have full control over some parts of it like the pixel shader the vertex shader etc but other parts are mysterious black boxes like the rasterizer 2 clipping calling the perspective divide so on and so forth and for this reason it can be hard to wrap your head around the full picture of 3d graphics constructing every part of the engine ourselves will give you deep understanding of the entire 3d graphics pipeline without all the hidden black box portions of direct3d or OpenGL then once we have this knowledge under a belt we can apply it to creating an engine in direct3d in the next series this is a pretty unique approach you will find anywhere else on YouTube in fact most of my research preparing for this series kept turning up things like lecture slides from master degree university courses so we're going to be exploring what is effectively a graduate school level subject now that sounds pretty cool but don't let it intimidate you there's going to be math but it's far from the worst I've seen if you're prepared to give the ideas some thought and actually try to wrap your head around them they can be readily mastered and mastery will make 3d your rather than the other way around now right let's see what's on the menu this introduction video is going to list the prerequisites of what knowledge you need and what software you need to follow along next video we're going to do a brief tour of the starting code and set the stage so we make sure that we're all on the same page then starting from video 2 which is the third video because real programmers count from zero we will begin our 3d journey proper in terms of hardware and software requirements you're going to need a video card that supports at least direct3d 9 a Windows operating system at least version 7 or later you're going to need Visual Studio community 2015 or later and you're going to need the starting code which is based on the Chile framework now every video in this tutorial series is going to have its own wiki page and those wiki pages will contain links to any material you need for the particular lesson and any other useful information now the tutorial code itself is going to be made available via github and you can find the link to the github repository on the wiki page and what I'm probably going to do is use branches to mark out specific points in the evolution of the engine as we create it alright let's talk about prerequisites this series fits into the bigger picture of the planet chili tutorial program and you need to know the material covered in the preceding series to be able to follow along here now that doesn't mean you need to watch all those videos but if you don't already have the required skills you're gonna have to get them from somewhere so what do you need to know first off this is a 3d theory course not a C++ course I'm not teaching anything about the C++ language here you should have that sorted by now specifically you should know about basic control and data like arrays pointers loops all that jazz you should be familiar with classes special functions operator overloading virtual functions inheritance and templates you should know some sexy C++ 11 stuffs like Move semantics lambdas uniform initialization and you should be familiar with the standard template library specifically you know containers like vector things like unique pointer and working with iterators now I will be teaching many math concepts here but you should already have a firm grounding in two-dimensional math you should have 2d vector math down pretty hard you know dot product like that you should be familiar with your standard transformations especially rotation you should be comfortable with the matrix representations of these transformations you need to understand linear equations you know stuff like alpha blending or drawing a straight line and you should be able to manipulate these simple equations and formulas now as far as graphics goes I man expect that you understand how the general raster works you know how pixels are composed and how they're organized on screen and in memory I expect you understand at least one algorithm for drawing straight lines and it would help a lot if you already understood how to draw solid triangles and 2d textured triangles I'm probably going to review triangle rasterization in this series but I'll also give a link to videos where I give a more detailed description and last but not least you're going to need basic github skills in order to you know get the code and interact with it now this isn't a comprehensive list of everything you need to know but I think it gives you a general idea if there's just a handful of things you're not sure about you can probably figure them out as we go along with the help of Google and the wiki and level up your programming chops a bit either way feel free to check out these 3d videos and decide for yourself just don't get all pissy in the comments if you find out that you're out of your league here man up and get gud instead I've got tons of material here you can use to get up to speed and there's always the Google machine and I'll also try to get up a collection of info on the wiki for preparatory study and review purposes but if there's a ton of here that you don't know what the then you probably need to look at my earlier tutorials this series will focus on fundamental concepts not prettiness or speed and we're gonna stop when we get the basics down because we want to move on to hardware accelerated development as soon as possible here's a brief tentative outline of the topics they're probably going to change somewhat over the course of this series we're going to start off with the basics of 3d space and transformations then we'll move on to triangle rasterization techniques in a 3d correct manner then comes lighting and shading and at the end we'll look at topics like clipping projection transform homogeneous coordinates and camera motion in a large scene now the software architecture of our system is going to mimic the hardware pipeline as much as possible will also choose conventions for example right-handed coordinate system versus left hand coordinate system that matched those of direct3d although the ideas we'll apply equally to OpenGL just with minor changes the idea here is by creating such a system that mimics the hardware pipeline as close as possible you know make it that much easier once we do the transition over to hardware 3d and that all about do it for this intro video I hope it gave you a good idea of what this series is gonna be all about and if it sounds interesting to you and you want to see me make more videos on this topic please hit the like button it means so much for the first video in a series like this either way thanks for watching and I'll see you soon with some more 3d fundamentals Oh
Info
Channel: ChiliTomatoNoodle
Views: 61,027
Rating: undefined out of 5
Keywords: DirectX, Direct3D, D3D, opengl, 3d programming, 3d graphics, 3d game, lesson, how to, C++, guide, code, tutorial, coding, windows, visual studio, game development, chili, chilitomatonoodle, intro, introduction
Id: uehGqieEbus
Channel Id: undefined
Length: 7min 43sec (463 seconds)
Published: Fri Sep 30 2016
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.