This project was created to learn the basics of 3D. Of course, in terms of performance, Python is not the best option for this kind of thing, but it was pretty fun. And sorry for some grammatical errors
@starklosch2 жыл бұрын
Don't worry. I just read that python will be faster in the next version.
@atharvkumar25642 жыл бұрын
How do you make that voice?
@ak-gi3eu2 жыл бұрын
do you know what techstack they used in blender ?
@aaaowski70482 жыл бұрын
>from scratch lololol that means no libraries, right?
@borisu772 жыл бұрын
it will always be much slower than strong-typed compiled languages, by design
@backroomsorigin2 жыл бұрын
As someone with a degree in Computer Graphics, this 15 minute video pretty much sums up 2 entire years of university studies. Good job
@zwwx2142 Жыл бұрын
can you give me advice recommendations I'm a beginner in Python
@aleksanderniemirka5258 Жыл бұрын
wtf do you do on such a degree lol, i study computer science and this covers only half of the lecture
@popbob4780 Жыл бұрын
@@aleksanderniemirka5258 even if that would be a lot
@marcocazar42669 ай бұрын
Genial, yo hice lo mismo con vectores, pero es lento, con matrices por lo visto es más fácil y rápido. Muy buen video.
@ameerkhan32574 ай бұрын
@@aleksanderniemirka5258 not really. It's probably a semester's worth.
@djangofakkeldij2 жыл бұрын
This is by far the best beginner friendly game engine tutorial. Good job!
@koferperk2 жыл бұрын
indeed, very comprehensive!
@holygraphite12922 жыл бұрын
😆 😆 😆
@user-dh8oi2mk4f2 жыл бұрын
I wouldn't really call this a game engine tutorial, more like a computer graphics tutorial. For any real game engine, you would definitely want to access the GPU with something like OpenGL or DirectX.
@fulcanelly2 жыл бұрын
but it's really hard to listen
@fulcanelly2 жыл бұрын
@@user-dh8oi2mk4f why would I?
@stafan1029382 жыл бұрын
This has seriously helped me understand so many complex topics that I've been trying to get my head around for so long but have never clicked. Now I can go away and learn about them properly in depth with the context for their use in my mind. Great work, seriously!
@josemfernandeza5979 Жыл бұрын
A whole semester worth of classes in a single video, essential for my final exam and project, I owe you one.
@dr4kk0nnysinc592 жыл бұрын
Subscribed, liked, added to favorites and sent this video to a bunch of friends. Great job with the video man, you deserve infinite success
@p.k.9532 жыл бұрын
I did the same as well 🔥🔥👍👍
@Show-wi7cw Жыл бұрын
😮😮😮😮😮😊😊😊😊😊
@skilz80982 жыл бұрын
Very nice job and clear explanation of laying down the basic foundations in such a short period of time and not bad for a wireframe renderer within Python. It still has a ways to go when it comes to adding in materials and textures to each of the faces. Then you have lighting and shadow casting calculations which leads to shaders and pre and post processing within the graphics pipeline. After that, then it's a matter of building a Scene Graph where one object node can be in a nested tree like structure making it either a parent or a child node of another. Then once you have your tree structure or scene graph in place comes the concept of partitioning it to reduce your polygon count during the render frame calls such as quad trees or octrees as well as using or implementing a batch rendering process... There are many more things that go into a 3D Engine such as collisions, physics, particle generators, animations, GUIs, HUDs, etc... I'd happily call it a 3D Renderer or Model Viewer at this point, yet it still has a lot to be desired before calling it an "engine"... I'm only saying this not to put down your work, but from personal experience since I have made a 3D Graphics/Game Engine from Scratch in C++... And this here only touches the ground work or the basics... Keep up the good work, I'd love to see future videos to expand on this project. Maybe make a series out of it... P.S. Also most of this processing and drawing of vertices within this video is being done on the CPU... Most of this ought to be processed and passed off to the GPU... The GPU can process all of the vertex, pixel, index, lighting and shading calculations much more efficiently and significantly faster than the CPU. This is where graphics APIs such as OpenGL, Vulkan and DirectX come into play especially with their Graphics and Shader Pipelines.
@quefour97102 жыл бұрын
@skilz8098 Do you have a video series where you walk through the design and coding of your gaming engine you mentioned in your response….? I am interested in learning if you have such a video series on building a 3D Engine.
@skilz80982 жыл бұрын
@@quefour9710 Unfortunately I do not. And I spent several years in researching and learning how to build one. This goes back from about 2003 - 2015. It wasn't overnight and there is a lot involved. Currently I don't have the time nor the proper equipment to make a video series as I'm working a full time job. I would have referred you to some of the resources that I used but again many of them no longer exist. I gained information from 3DBuzz, MarekKnows and a few other sites that no longer exist. You can find some of their material on KZbin. I also purchases a handful of books that are great reference materials but are now a bit dated yet their general principles still apply... There is a couple of websites that are still available that I can refer you to that is very good and is still up and running and they are www.learnopengl.com and www.rastertek.com and through them and other resources I've learned both the OpenGL and DirectX APIs as well as GLSL and HLSL. I also started to learn Vulkan too along with Spir-V however, instead of writing direct Spir-V code, I used tools to convert GLSL automatically into compiled Spir-V code. There's plenty of information out there, you just have to be willing to put in the time to do the research. And this only involves the "programming" side of things. You'll also want to brush up on your math skills, especially geometry, trigonometry, linear algebra(vectors, matrices and systems of linear equations), as well as classical physics.
@brunorcabral2 жыл бұрын
I am also interested in seeing your code step by step
@hamzaf1911 ай бұрын
7:29 Thank you for explaining that one! I had issues really understanding the fourth homogeneous coordinate but now it's all made clear. Insanely instructive video.
@tristanv6202 Жыл бұрын
This is wonderful and I have never seen such clean and effective python tutorial like this. I can only image what you could do with TensorFlow or PyTorch.
@ristopaasivirta97702 жыл бұрын
I wish this sort of video tutorial existed when I was young and learning about 3D engines and matrices.
@johnsmith1953x2 жыл бұрын
*I remember when I wrote my first 3D engine on the Commodore64 back in the mid-eighties* I was so proud of myself too!!
@slimfpv2 жыл бұрын
The quality of this video is insane and im really happy for you it gets so much attention!!!
@eureka3342 жыл бұрын
This is by far the most underrated channel on KZbin
@sheylagreenperez11962 жыл бұрын
I paused as you went along and did the steps myself and that helped a TON.
@7addisalem772 жыл бұрын
This is by far the best beginner friendly game engine tutorial as a beginer i still fight to understand it but keep up the amazing job bro
@unluckyaf76732 жыл бұрын
I feel the need to congratulate you, because this video was hard to make. Keep up the good work mate! Well done!
@HazardousAbacus Жыл бұрын
Thanks!
@CoderSpaceChannel Жыл бұрын
Thank you very much!
@homemrisonho50512 жыл бұрын
What a passion! What a dedication! What amazingness!
@theshoulderofgiants2 жыл бұрын
u deserve way more subs ..keep up the amazing work 💓💓
@homemrisonho50512 жыл бұрын
I just did! (ノ゚0゚)ノ
@samarthpyati28552 жыл бұрын
You are very underrated my friend
@Somonreactionbd2 жыл бұрын
even on my weak computer the installation did not take much time, thank you very much
@ivanmironov5992 жыл бұрын
For those following the video, when writing out the code, it should be noted that "vertexes" is not a word and will not register IntelliSense to pop up, but "vertices" will.
@CoderSpaceChannel2 жыл бұрын
Yes, most people prefer the term "Vertices". Both are perfectly acceptable according to: www.merriam-webster.com/dictionary/vertexes
@arjoai Жыл бұрын
This is by far the best implementation video on 3D engines
@alexl4447 Жыл бұрын
Wow, thank you for this most easily explanation. This will be my start of programming 3D models
@twitch.sae72 жыл бұрын
TNice tutorials tutorial is so useful,I tried tons of other tutorials but tNice tutorials was the best one
@oeunsothearin96962 жыл бұрын
The introduction was very helpful, thanks!
@hacerdemirel98332 жыл бұрын
Very good! Thank you so much. I have already know most of that video. But I got the little miss parts. Perfect.
@calculuslifer40242 жыл бұрын
Bro has been coding since 1960... kudos
@arrozyadifalaqi92922 жыл бұрын
Nice video man, clear and concise explanation! Thanks a lot!
@AlpagaCoding Жыл бұрын
Amazing! Thanks so much for this, I have been studying a bit of theory about this, and was looking for a practical example using python, it helped me a lot, please make more videos like this!😄
@xskerrittx12 жыл бұрын
Please do another video on this! Not just wireframe, actual sides/faces to the 3d shapes! Lighting, etc!
@V1SupremeMachine11 ай бұрын
10:35 "You can bend over and turn around" I died💀😂
@29yakuba7 ай бұрын
Wow finally I will make my own Blender ..thanks
@mangosorbet81835 ай бұрын
I wish we got this video long time ago so I can learn computer science more easily
@footballCartoon91 Жыл бұрын
@4:08 for 3d vector in python is it better to represent it using tuple instead of creating a class? because if we create a class we can do operator overloading for translation and scaling when required instead of multiply by 4x4 matrix
@kossairezig2 жыл бұрын
THANK YOU SO MUCH THIS WAS EXTREMELY HELPFUL :D
@jacob171 Жыл бұрын
I am newb and a bit lost when i try to run the code at this point 9:24 it returns two errors stating "RuntimeWarning: divide by zero encountered in divide vertexes /= vertexes[:, -1].reshape(-1, 1)" and "RuntimeWarning: invalid value encountered in divide vertexes /= vertexes[:, -1].reshape(-1, 1)" i know this probably is an easy fix and maybe ill fix it before i get a reply but thanks anyway in advance!
@locowachipanga5612 жыл бұрын
Thank you very much, this is pure gold.
@yolamontalvan9502 Жыл бұрын
Great video easy to understand. Thank you. You forgot to mention what graphics software did you use to make your animations.
@stonyfever Жыл бұрын
Hello, I have an issue with vertices being shown behind the camera. I want to study how to implement frustum culling into your project, but I’m not sure where to begin. Any suggestions?
@coolbrotherf1272 жыл бұрын
It's true, it is nice to look at the cube.
@timpi4ever2 жыл бұрын
This is just beyond amazing 💯
@lucaskr062 жыл бұрын
I keep coming back to those basics videos because I STILL don't know how to properly use the software. I'm gonna cry
@yohanaasintha55622 жыл бұрын
Thanks for the video! Very helpful and easy to follow instructions
@farazumer7961 Жыл бұрын
Very helpful explanation in easy way for beginners to understand game programming ant its complex geomerty
@Radu2 жыл бұрын
Very nice :-) congratulations! Subscribed.
@alessandromarin38032 жыл бұрын
You catch on really fast, it seems complex but once you learn the basics it pretty much branches into experintation
@Lux-h4h7h Жыл бұрын
Can you use the code on this video as an engine? it seems to me like you'll have to code the equaltion again for every object!
@darklaker Жыл бұрын
Clean and powerful code, i'll take the idea to test a dual camera projection on nreal air glasses since they are capable of showing stereo images. Thanks a lot.
@mikey-zk9nd2 жыл бұрын
You just deserved much more thab "just" over 300k subbers.
@bonean01182 жыл бұрын
Hi, can anyone answer me wht does he use pi / 3 to calculate the v_fov at 6:00?
@starklosch2 жыл бұрын
Nice video. Perhaps it would have been a good idea to mention that you used row major matrices and post multiplication. Notation may be confusing.
@Mochammadsholehanwari2 жыл бұрын
Love your stuff! Big help!
@user-cw2gj2vw7w2 жыл бұрын
Рад, что теперь у вас будет и иностранная аудитория
@atharvkumar25642 жыл бұрын
Congratulations !!! You crossed 1k
@CoderSpaceChannel2 жыл бұрын
wow! it made my day! thanks! 🥳
@teslastellar2 жыл бұрын
Great tutorials 👍 subscribed 👍 keep up the good work.
@aidenpike248010 ай бұрын
Hey there, I know this video is decently old now, but I'm having issues at around 13:47 with the following error: self.faces = numpy.array([numpy.array(face) for face in faces]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (1033679,) + inhomogeneous part. Would you happen to know what is causing this? I'm getting a lot of forums that are saying it's an issue with numpy, but I'm not entirely sure how to fix it.
@kimeg7294 Жыл бұрын
I've been analyzing this engine and was successful to get proper perspective and camera view working on my project. However as I move the camera forward and go past an object, the object reappears and moves away from the screen when it really should be BEHIND the camera view. It seems that your engine is having this issue as well, so I was playing with both engines to see if can be fixed but no progress yet. I suspect it may has to do with the vertical asymptote of the tangent function approaching either direction of infinity as the camera gets closer to the world coordinate origin.
@CoderSpaceChannel Жыл бұрын
need to implement Frustum Culling
@badamson6 ай бұрын
hi there, idk if you still care about this, but the way i solved this was realising that any coord with a z value (z buffer) greater than 1 was a vert in the phantom mirrored reappearing object. i just set any of these verts to have a y coord of 0, and then the numba function that checks if the coord is clipped will remove it along with all the other clipped verts
@kimeg72942 ай бұрын
@@badamson Thank you for sharing. I just came back after years of busy work (very boring and time consuming stuff). Graphics programming really makes everything fun and refreshing.
@badamson2 ай бұрын
@@kimeg7294 i’m glad you’ve managed to catch a break! i’ve moved onto c++ vulkan stuff now and it’s a whole other level of complicated 😭😭😭
@widizeiga31202 жыл бұрын
bro thanks so much, you actually made soft soft easy to understand
@tibetphoto5852 жыл бұрын
TNice tutorials is video is amazing! thanks for posting.
@atharvkumar25642 жыл бұрын
I am your subscriber since you had 50 subs, today you have 973 subscriber.I like to see your channel grow in just three days + 500 subs in three days
@CoderSpaceChannel2 жыл бұрын
thanks. this is really amazing and unexpected for me 🙃
@dorukkarall96312 жыл бұрын
Aweso tutorial bro! I like how you gets down to bus
@LetsSmiley5 ай бұрын
"Python" and "From scratch" is a wiilld combination
@Noliv32 жыл бұрын
s and a couple EDM and Dubstep goals for myself, and I guess I better start learning sowhere. Thanks for the great vid!
@ilookintofuture8 ай бұрын
you saved my grades thank you
@hugowinnberg2 жыл бұрын
This was amazing man greate tutorial
@Potatoinc-2 жыл бұрын
very helpful and simple man.. i tNice tutorialnk i'm gonna see all your videos
@raphofthehills44052 жыл бұрын
Great mix of math basics & implementation tutorial. Which Python editor & Color Theme do you use ?
@CoderSpaceChannel2 жыл бұрын
Thanks. This is Pycharm and monokai color scheme
@Seb-et-Vous2 жыл бұрын
Thank you So much for ur ti and support
@CTIN--NguyenQuyHaoNhien2 жыл бұрын
7:30 why has the w changed to a different number ? In all earlier matrix multiplications, you didn't change the w value
@abdallahgaming5482 жыл бұрын
yours is perfect. These are going to takes loads of ti off the learning process.
@kfirsw2 жыл бұрын
Thank you so much this helped a lot!!!! You saved my life
@khalil6022 Жыл бұрын
So I'm running numpy 1.24.3 and when I try to run the program I get a inhomogeneous shape error for when you create the faces np.array in the Object3D class Apparently from some stackoverflow answers it seems that this problem is fixed if you downgrade to a older version of numpy Unfortunately I was too lazy to do that and noticing that the shape of the faces object that you wanted to create in the Object3D is the same as that of the faces object you get in the constructor, only difference being is that it is all np.arrays instead of a normal array... I decided to replace self.faces = np.array([np.array(face) for face in faces]) with self.faces = faces and it worked..? idk honestly ima just leave it here if anyone has this error too and actually knows how to fix it
@HabiburRahman-dh7oy2 жыл бұрын
Thanks for lesson number one I'm going to leave ssages on a few of your posts and maybe even a few links to soft I make in the
@eliascregard3962 жыл бұрын
Really cool thing you have made here, but I have an issue. I'm at 9:25 and when I start the program the screen is green but i see no cube I checked through all the draw functions and they seem to be as they should I even tried drawing another line across the screen and that worked to Could you help me?
@CoderSpaceChannel2 жыл бұрын
There is a link to the project code in the video description.
@آلجباوي-ز7ص2 жыл бұрын
my fav and tysvm for this tutorial it was helpful❤️.
@Dabbl1ng2 жыл бұрын
When I click play @ 1:07, no window pops up it just say's down the bottom "Hi, Pycharm" anyone know what I'm doing wrong? :S
@yt_superman7383 Жыл бұрын
If you set the playback speed to 0.5 or lower the tutorial becomes actually followable! :D
@TheRealScinacz Жыл бұрын
Hey so i know that this video is pretty old but i was following the tutorial and got this problem: RuntimeWarning: divide by zero encountered in divide vertexes /= vertexes[:, -1].reshape(-1, 1) RuntimeWarning: divide by zero encountered in divide vertexes /= vertexes[:, -1].reshape(-1, 1) Does anyone know how to fix this (from what i looked i have everything inputted correctly) (timestamp: 9:38)
@jonpeterson2870Ай бұрын
Right here with ya.... Trying to figure this one out.
@garvitjain1623 Жыл бұрын
please help I am having ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (2946,) + inhomogeneous part. This error, can't figure out why numpy is giving this?
@Sk83rNinjaАй бұрын
hey me too!
@CubixCreations2 жыл бұрын
What text-to-speech software do you use? It's pretty unnoticable and sounds great!
@CoderSpaceChannel2 жыл бұрын
cloud.google.com/text-to-speech
@yolamontalvan9502 Жыл бұрын
I wish I could program as fast as you do. With that speed I could triple the number of programs produced.😊
@josephtanko2 жыл бұрын
Great tutorial, mine worked! But for some reason Files I export from blender can't be read
@samarthpyati28552 жыл бұрын
Please create a further Series
@mcnilages80232 жыл бұрын
but notNice tutorialng seems to work. Tried built-in content, and scarlett solo. What's the hardware you have? windows mac? special soft card?
@ezrachua1317 Жыл бұрын
can you code up a 4d game? I think that would make a great video.
@rizzbod2 жыл бұрын
Soo good video content. Thnx buddy
@codecaine Жыл бұрын
Excellent work
@FilterYT2 жыл бұрын
Pretty Cool, Thanks!
@sksahil43744 ай бұрын
Awesome job man 😮😮😮
@urielvargas6777 Жыл бұрын
Is ther any sample of plane intersecting algorithm. I am looking for some calculations or code same like of how to get the line of intersection of 2 triangles in the space
@its_code2 жыл бұрын
Wow 😳😲 amazing 😍 video
@tstornado14102 жыл бұрын
where I’d record one track of the soft and than use a second Edison to record scrubbing through the soft to mimic a wave table.
@rubensteinhauer24422 жыл бұрын
Ok and do you got a video for how to load a plugin in to the software ?
@mystic9609 Жыл бұрын
Isn't pygame a 2d module? So is 3D just a 2D screen that somehow turned into a camera that can move freely with 3D Objects? I'm confuse please explain to me, I'm learning
@justaneric Жыл бұрын
Great video! How would I add texturing to my imported OBJ models though?
@Sk83rNinjaАй бұрын
i attempted to render a AAA wireframe model of a sports car... it rendered but the pc heated up a lot
@abulak34772 жыл бұрын
While seeing the video, I said to myself, "Sure, this channel has over 400 thousand subscribers." I noticed after watching the video that it only has 1.12 thousand subscribers. Now you want to make a video showing how to create a KZbin Algorithm for youtube
@nobafan7515 Жыл бұрын
Will you be able to cover 3d model animations? I heard early 3d games had to make characters out of multiple objs until they found a way to make character models more realisticallythat bend and morph the mesh. Can you do that some day?
@ElderBug246 ай бұрын
Why are the lines called faces and how do i display faces, i mean like a surface ?
@godlgyro52332 жыл бұрын
Help I don’t know how to use the app my dad bought all the plugin s how do u use the app??