yeah man underrated , someone trying to learn and you going so fast is it for people already know everything
@WasNeverBrandon4 күн бұрын
I got everything to work just fine, but how would I go about changing a model's position, scale, and rotation?
@TheGrinch4205 күн бұрын
i found putting "_baseColor" at the end of the mame of my textures, the model will load
@TheGrinch4205 күн бұрын
seems model.cpp expects the texture file to have either "baseColor" or "metallicRoughness" written somewhere inside the name of the texture
@TheGrinch4205 күн бұрын
std::vector<Texture> Model::getTextures() { std::cout << "getTextures - model.cpp" << std::endl; std::vector<Texture> textures; std::string fileStr = std::string(file); std::string fileDirectory = fileStr.substr(0, fileStr.find_last_of('/') + 1); // Go over all images for (unsigned int i = 0; i < JSON["images"].size(); i++) { // uri of current texture std::string texPath = JSON["images"][i]["uri"]; std::cout << "model.cpp - Texture path: " << texPath << std::endl; // Check if the texture has already been loaded bool skip = false; for (unsigned int j = 0; j < loadedTexName.size(); j++) { if (loadedTexName[j] == texPath) { textures.push_back(loadedTex[j]); skip = true; break; } } // If the texture has been loaded, skip this if (!skip) { // Determine the texture type based on the filename const char* texType = "diffuse"; // Default to diffuse if (texPath.find("baseColor") != std::string::npos) { texType = "diffuse"; } else if (texPath.find("metallicRoughness") != std::string::npos) { texType = "specular"; } // Load the texture std::cout << "model.cpp - Loading texture: " << fileDirectory + texPath << std::endl; Texture texture = Texture((fileDirectory + texPath).c_str(), texType, loadedTex.size()); textures.push_back(texture); loadedTex.push_back(texture); loadedTexName.push_back(texPath); } } return textures; }
@CatMan15156 күн бұрын
As usual nothing on properties and how to add stuff there.
@VictorGordan5 күн бұрын
What do you mean exactly?
@aviator14727 күн бұрын
I just dont understand the point of VAO....If it is linked to VBO - why not store VAO in VBO? Why we need VAO at all? I would understand if it was completly independent buffer that i can bind for any VBO whenever i want, but it needs to VBO bind at first so i just dont understand the point of using it...
@SuperLongfield7 күн бұрын
I hadn't touched any C++ code for the past 15 years. Thanks to your tutorials, now I'm in love with it again!
@maessof918 күн бұрын
if you dont want a second model, you can displace the original model 4 times,
@teamredstudio70129 күн бұрын
man if only all tutorials were like this, just a very short yet extremely powerful video. Damn.. I actually know what I'm doing for once. Can't thank you enough!
@CompositeNation11 күн бұрын
Amazing video! Thank you for sharing very helpful!
@Visnii12 күн бұрын
TOTAL WAR SHOGUN 2 MENTIONED BABYYYY
@Visnii13 күн бұрын
just writing here to put my thoughts in the table and see if I understood.. maybe it helps someone glBindVertexArray( ); // this function is called a lot of times, and he mentioned that binding in the universe of OpenGL mean "man... I will use this object from now on" and all function that operate on VAOs will affect the VAO passed as parameter // thats why we have glBindVertexArray(VAO); before creating the VBO and VAO, this is us telling to opengl that the VBO we gonna configure will be for the VAO we passed in the param // thats also why we declare glBindVertexArray(0); at the end, we are done with that VBO for the triangle, we are not changing anyuthing anymore (0); is that tight?
@GeorgeAlabaster14 күн бұрын
absolutely driving me crazy switching screens so fast man jeez
@madpenguin366418 күн бұрын
Hi again. Ive been struggling for ours but for some reason when i run the code my screen becomes white then it just closes. i even copied and pasted your code but i get the same result. Any clue for this reason?
@Obi1-KenBone-Me20 күн бұрын
This tutorial is overcomplicated. There is no reason beginners should waste time trying to handle this monstrosity, they should just learn to read obj and mtl files and copy paste data from them. Later on as they try playing with complex models they should try libraries but even then gltf is a time sink.
@VictorGordan20 күн бұрын
@@Obi1-KenBone-Me honestly, I agree. I think this is my worst and most useless video
@madpenguin366420 күн бұрын
hi again. my code was working fine however when i tried binding it to the textures, it didn't display the image. I tried to follow to see what you did at the end of the video but it was wayyyyyy too fast (Even on 0.25x speed) I was curious to see if i can get the longer form of what you did at the end (I tried copying your Github code but still didn't work (Probs because i named my png different))
@madpenguin366420 күн бұрын
BRO DID YOU MAKE THE TYPING VIDEO 2x speed😅. I swear its either that or you extremely good at typing😭
@VictorGordan20 күн бұрын
@@madpenguin3664 Yeah lol, I sped it up xD
@madpenguin366420 күн бұрын
@@VictorGordan Argh I see, thanks again also for leaving the links to the source codes for FREE. Most youtubers charge for their viewers to see the sources, Highly appreciated
@madpenguin366420 күн бұрын
@@VictorGordan Brooo!!! Since I'm new to c++ i want to thank you again for this organising tutorial. Bruv my code was soooo messy i was struggling to find the characters. now at the end of the video i see it finally paid off. Definitely going to use this knowledge on my project
@madpenguin366421 күн бұрын
I find it concerning the deeper we go, the less views the videos get😭. Do people just give up? Also learning this really helps me understand how game Engines really makes our lives easier. Great Tutorial! Keep it up!
@VictorGordan21 күн бұрын
@@madpenguin3664 yes, I believe many people give up, are simply satisfied with what they’ve learnt, or don’t like the series anymore and so stop watching. Afaik this is common for most tutorial series, and pretty much any series of any kind, views almost always drop
@Mohammed_Developer21 күн бұрын
I had a runtime error
@ironfistdaw24 күн бұрын
sadly, after this video was over i realized these tutorials arent really cutting it for me. there is a total lack of detailed explanations and the footage is all sped up making it difficult to follow. not to say the tutorials are bad, because they are really good. you introduced classes to make life a bit easier and other stuff, but i feel after watching up to this point im sitting with quite a little knowledge.
@jamesthefirst_814724 күн бұрын
this might be very simple but if youre getting a solid black plane instead of having the texture being applied, check if you not only drag and dropped the texture into the Textures folder but also if you copied them into the main directory of the project. without this step the loader cant find the tex
@Goose-Dreams25 күн бұрын
Im getting error in the shaderclass.cpp in the line call "throw(errno)" it said there int memory error
@Goose-Dreams25 күн бұрын
Found the real error is in line that said " glshadersource(fragmentshader, 1, &fragmentsource, NULL); " The wrong is access violation reading location
@Goose-Dreams25 күн бұрын
Im geting a throw error i don't know what to do😔
@Goose-Dreams25 күн бұрын
Throw(errno) saying a int at memory location error
@pearlinwitchew496625 күн бұрын
thankyou
@Dvt49CS26 күн бұрын
i have error for the configuration after you click finish on 1:51
@alwuVEVO23 күн бұрын
go to visual studio click tools tab on the top click tools and features select desktop c++ development and click modify on bottom right
@skitzanimates745627 күн бұрын
Thanks for tutorial! Quick question, in order to do the exercises, what would be the best way for us to create copies in order to tinker with the code without the risk of completely ruining it? Ive tried to duplicate the folders and or main.cpp but it gives me errors. I assume I have to manually relink everything?
@VictorGordan27 күн бұрын
@@skitzanimates7456 use git, easiest way would be to use GitHub with the GitHub GUI app
@skitzanimates745627 күн бұрын
@VictorGordan thank you!
@TheLinuxGallery-qz2vs27 күн бұрын
The first few episodes of this series helped me SO MUCH with openGL and vulkan! This part was actually extremely confusing though, and I couldn't wrap my head around why we would compartmentalize everything to almost a function-by-function file separation. My mental organization has always been: >> parts (shaders in one place, functions in one place, logical complexities in one place...) >> assembly (the pseudocode, written as a compile-able script, with objects from the step above) This DID really help me read FOSS projects though, and I have more of an idea of the decisions people are making when splitting up programs for imports. I still have to cat everything together in order to actually read it, but I'm not writing nearly as many bugs from just consolidating the code!
@Dvt49CS28 күн бұрын
can anybody pls tell me how to download glfw and glad on vscode.
@SillySussySallyАй бұрын
There you fing go, 30 mins worth of info in 4 mins. Straight to the point, no bs! Hats off!
@nonetrix3066Ай бұрын
I made the triangle have a rainbow background and made it red :O
@blessingtonp146Ай бұрын
In the output window, I am not able to scroll or view the object. I am just able to shake the Image. Hope you understand. Please help me.
@pixel690Ай бұрын
just wondering, at 1:15, isnt "#pragma once" meant to do the same thing as the ifndef code?
@VictorGordanАй бұрын
Yes, only difference is that pragma once is for C++ only. I think I used ifndef cause I liked the way it looked back then
@ramonarjonaquinones7453Ай бұрын
Thank you so much for your videos Victor
@MaezumoАй бұрын
This is literally one of the only ImGui+SFML tutorials that I've found to work, the other one is here kzbin.info/www/bejne/l32nmImaib96fdU&ab_channel=RegmiSir Not even the SFML website nor the ImGui GitHub website explain it properly. So many hours wasted until I found your video. You need more likes. Great video, thanks very much man - I'm so relieved. Only real point to add for new viewers is that for SFML 3.0, the while loop is now: while (const std::optional event = window.pollEvent()) // { // ImGui::SFML::ProcessEvent(window, *event); // // if (event->is<sf::Event::Closed>()) // { // window.close(); // } // }
@flaresaccount1754Ай бұрын
Thanks, you've saved me a significant amount of time
@VictorGordanАй бұрын
@@flaresaccount1754 you’re welcome! :)
@TJBEATSAMVАй бұрын
Thanks for the series on OpenGL my man !! Rlly appreciate it !
@kristinavavilova8493Ай бұрын
i want to ask if you can help, it's very important.....i tried to upload my own model but it loaded black. It seems my textures are not loading, what can i do? :( i tried changing default.frag in case of lighting problems but then my figure became multicolored or white
@TheGrinch4205 күн бұрын
model.cpp expects "baseColor" or "metallicRoughness" to be in the name of the textures, so you can either rename the texture to include one of those two things, eg. texture_baseColor.jpg or just get rid of the check for "baseColor" or "metallicRoughness" in model.cpp
@蔡昕晏-v2iАй бұрын
if I want to load the complex model, which part should I revise, or you recommend that using Assimp :(
@VictorGordanАй бұрын
@@蔡昕晏-v2i assimp for sure!
@蔡昕晏-v2iАй бұрын
@@VictorGordan Thank you. I wanna ask that what kind of models can be loaded by your code, what does the model look like?
@VictorGordanАй бұрын
@ my code can only do really basic models, and to be honest my code here is pretty bad, better to use assimp
@蔡昕晏-v2iАй бұрын
@@VictorGordan I see. Thank you.
@21breadjamАй бұрын
help i am getting OpenGL header already included, remove this include, glad already provides it 1>(compiling source file 'main.cpp') error
@sohankaushik7Ай бұрын
Bro, are you going to post any more vids??
@VictorGordanАй бұрын
@@sohankaushik7 I will try to ;-;
@KullthegreatАй бұрын
What happened to this series Gordon ?
@VictorGordanАй бұрын
@@Kullthegreat I finished university, moved cities, and started work so I just had no time for it, and eventually I lost interest in continuing the series :/
@KullthegreatАй бұрын
@VictorGordan I am glad you are doing fine, come back with something you enjoy maybe.
@krajsyboysАй бұрын
Amazing video! I'm definitely going to be referencing this a lot when working on lighting in the future! The single image at 9:17 contains so much information and is so easily readable, no need to jump between different tabs or sections to remember what everything is and does. Just amazing!
@AidenWalkerrrАй бұрын
good tutorial ❤
@LetsgoletsrollАй бұрын
Why every opengl tutorial using c++ instead of c? I mean opengl is written in c and that language is really nice so why not?
@abu008226 күн бұрын
c++ is like a gold standard for video game development or even graphics programming in general.
@viragvarga8055Ай бұрын
Hi, I really like your videos, but I'm having some trouble with connecting the fragment shader along the line, because the color of the triangle is white instead of the color I/you set. I don't really know why or how to solve it. It doesn't show any errors and even the compileError function in shaderClass is silent. I only noticed this mistake a video or two later, but when I compared my files to yours, I couldn't find anything that differs. I know it's a long shot, but maybe you have some suggestion, how to find where the data to/from the fragment shader disappears? Otherwise, great videos, they are a lot of help.
@VictorGordanАй бұрын
@@viragvarga8055 it’s probably a typo in the fragment shader. It’s a common issue
@viragvarga8055Ай бұрын
@@VictorGordan I checked again and used ctrl+c, ctrl+v on the fragment and vertex shader files (to make sure it's identical to yours), and I also checked all the other files as well, but it's still not working, the triangle is still just white. do you have any other ideas, maybe? ( I don't have any error messages or warnings appear either)
@VictorGordanАй бұрын
@ then I don’t really know tbh :/ could be some system specific problem
@viragvarga8055Ай бұрын
In case you have a problem like this, make sure you didn't accidentally create a new GLuint ID variable in one of the functions of VBO.cpp, VAO.cpp, EBO.cpp or shaderClass.cpp. Also, glGetError() is a great way to find problems. Thank you for the help anyway, and the exceptionally quick replies. <3
@orionconstellation2Ай бұрын
can i open imgui menu in game without glfw?
@VictorGordanАй бұрын
@@orionconstellation2 glfw creates the window, so no, without a window you can’t open the UI menu (thought you could create a window with another library such as SDL or SFML)
@orionconstellation2Ай бұрын
@@VictorGordan im trying to create a menu for ets2 , im a beginner lol, i dont understand anything im doing haha, its all help of ai, thank you for the reply
@splits8999Ай бұрын
wow, this is why linux matters
@VictorGordanАй бұрын
To be fair it's mostly a C++ thing rather than an OS problem. C++ just kinda sucks at handling libraries, especially compared to something like python where it's hilariously simple
@splits8999Ай бұрын
@VictorGordan true, tho, tbf i dont have any experience with c++ or opengl but im pretty sure on linux itd be as simple as installing the dynamic library packages system wide, #including akd linking in the makefile? What i was complaining about was mainly all the unzipping and manually moving dlls
@white_clothАй бұрын
Beautiful algorithm on display here. It’s surprising how accurately (not talking about energy conservation) Blinn-Phong can simulate specular lighting in spite of its simplicity and efficiency.
@Domo22xDАй бұрын
Thank you!
@emiliozalva5719Ай бұрын
Very useful. Thank you very much buddy.
@bruthermunbill529Ай бұрын
Great tutorial other than the super fast skipping ahead like at 3:07. The skipping makes it kinda hard to follow along.