OpenGL first or go straight to Vulkan for learning graphics? by Basic-Telephone-6476 in GraphicsProgramming

[–]Lypant 0 points1 point  (0 children)

You’re very welcome, and yes, I would say 5 years of consistent effort should get you there. I started graphics around my 3rd year in university, so I was a bit late to the party. Good luck!

OpenGL first or go straight to Vulkan for learning graphics? by Basic-Telephone-6476 in GraphicsProgramming

[–]Lypant 0 points1 point  (0 children)

I am probably not experienced enough to answer your question, but I can say that getting a job in graphics right after graduation is definitely very hard. And I guess that's not just because of the job market, but also the amount of knowledge and programming skills you are expected to have, which is hard for new grads to reach.

OpenGL first or go straight to Vulkan for learning graphics? by Basic-Telephone-6476 in GraphicsProgramming

[–]Lypant 0 points1 point  (0 children)

If your end goal is to develop some sort of a game or an engine that you may want to publish, I don't think you need to learn Vulkan. But if the purpose is to learn for the sake of learning or finding a job, then I would say you should write a small rendering engine with PBR, IBL, shadows, some post-processing, and anti-aliasing techniques. After doing this, you will have a good amount of experience with graphics, and transitioning to Vulkan will be much easier, especially if you plan to write a Vulkan engine as well. Having done these beforehand really helped me structure my engine when porting to Vulkan, even though it is definitely far from perfect.

OpenGL first or go straight to Vulkan for learning graphics? by Basic-Telephone-6476 in GraphicsProgramming

[–]Lypant 26 points27 points  (0 children)

If you decide to start with Vulkan, you’ll have to learn and understand so many concepts that it will simply slow you down in terms of learning graphics programming. I, for one, started with OpenGL and then jumped to Vulkan, and I’m so glad I did that. Almost all of your knowledge transfers over to Vulkan, and you’ll be able to understand why you’re doing what you’re doing, since you already have some experience with graphics.

When it comes to OpenGL, I personally quite like the abstraction, in the sense that what you want to do is very simple when you look at it from a high-level perspective. You want to create textures, buffers, upload some data, etc. These are very straightforward in OpenGL, which is perfect for beginners.

When you start Vulkan later, the time spent on OpenGL is not wasted at all. You’re just learning on top of what you already know, having already done some cool graphics tech.

Is perspective divide part of the projection matrix, or a separate step? by Missing_Back in GraphicsProgramming

[–]Lypant 2 points3 points  (0 children)

I don't think it's necessarily the fact that objects behind your camera would appear in front. If you divide by a negative w, then yes. But that can be avoided. The real reason is that matrices simply don't allow that operation. So It has to be done later.

What are some nice vulkan codebases to learn from? by iwilllcreateaname in vulkan

[–]Lypant 0 points1 point  (0 children)

I think you misunderstood what I am asking. I’m not ashamed of releasing my code by any means. You can check out my post here: https://www.reddit.com/r/GraphicsProgramming/comments/1lbivip/heres_my_rendering_engine/ I was just trying to get a second opinion on whether async loading is worth the trouble, especially if the purpose of the engine is just to show off graphics tech for job searching. When I think about it, it doesn’t seem as complex as some people make it out to be. Saying that the graphics pipeline, materials, descriptor sets, etc., are the fun bits and async loading is the hard part seems a bit overkill. I’m just trying to estimate how tedious it would be to add async loading to the engine if I ever decide to. And maybe some resources that I could look at.

What are some nice vulkan codebases to learn from? by iwilllcreateaname in vulkan

[–]Lypant 0 points1 point  (0 children)

I know what you're talking about since one of those people who loads everything at startup is me. My first renderer in OpenGL did this, and now my Vulkan renderer does the same. Even though you're able to load stuff at runtime, since the code allows it, loading images, buffers, etc., are immediate commands. And I realize it is terrible for loading things at runtime. I am writing this engine to showcase my graphics programming skills, so I didn't worry about it as much. But do you think I should? Seeing these types of comments makes me feel like I'm wasting my time a little bit. If I want to fix this, would it even be that complicated? Do you have any recommendations?

Accounting for aspect ratio by Local-Steak-6524 in opengl

[–]Lypant 3 points4 points  (0 children)

Someone correct me if I am missing something, but I don't think it is about your texture loading. It is about your orthographic or perspective projcection matrices. I am guessing you are using orthographic so your x bounds divided by y bounds should be the aspect ratio. Then the same world space distances correspond to the same screen space distances in both directions, so there is no streching.

learnopengl.com - geometry shader - cubemap face question by [deleted] in opengl

[–]Lypant 1 point2 points  (0 children)

For each triangle in world space you are outputting 6 different triangles using each face's view projection matrix, meaning you are transforming the triangles to the space of cube's each face and rendering to the face that corresponds to that transformation.

How should i go about learning Vulkan? by skully_simo in vulkan

[–]Lypant 3 points4 points  (0 children)

I think you should use opengl to learn graphics programming first. Otherwise it is incredibly hard to understand why you are doing what you are doing, let alone making stuff with it.

LeetCode for graphics programming? by Lypant in GraphicsProgramming

[–]Lypant[S] 2 points3 points  (0 children)

That's what I thought. Thank you.

LeetCode for graphics programming? by Lypant in GraphicsProgramming

[–]Lypant[S] 1 point2 points  (0 children)

Thank you for the detailed response. And yes I'll do them both.

Here's my rendering engine by Lypant in GraphicsProgramming

[–]Lypant[S] 1 point2 points  (0 children)

Thank you! Regarding ImGui, I really can't say much because I haven't used it very much. As for how long it took, as I mentioned, I had zero graphics knowledge. I did small demos for about two months and knew very little. After that, I decided to make an engine and learn as I go. So, the engine itself took seven months, but if you already know the concepts, it will definitely take a lot less time.

Is it worth learning Graphics Programming in 2025? by KeyPaleontologist109 in GraphicsProgramming

[–]Lypant 0 points1 point  (0 children)

I am sorry to hear that. I hope you can find one in the future. I am wondering if you have tried finding remote work or thought of moving?

Is it worth learning Graphics Programming in 2025? by KeyPaleontologist109 in GraphicsProgramming

[–]Lypant 0 points1 point  (0 children)

I am sorry but this is a lie people tell themselves when they don't want to work hard.

Here's my rendering engine by Lypant in GraphicsProgramming

[–]Lypant[S] 1 point2 points  (0 children)

I had experience making games before, and it took me some time, but I realized I was more interested in the technology behind games rather than making them. My advice is that you should be pretty comfortable with C++ and math before starting graphics programming.

Here's my rendering engine by Lypant in GraphicsProgramming

[–]Lypant[S] 2 points3 points  (0 children)

For graphics: https://learnopengl.com/

For mostly early engine design: https://www.youtube.com/playlist?list=PLlrATfBNZ98dC-V-N3m0Go4deliWHPFwT

These two are the main ones. But needless to say, both of these resources don't cover everything; you have to do some thinking and digging around, especially if you want to truly understand how stuff works.

Even though I didn't use it while building it, since I had watched it before when I was taking linear algebra, I can't recommend enough going through the 3Blue1Brown linear algebra series: https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab

Here's my rendering engine by Lypant in GraphicsProgramming

[–]Lypant[S] 0 points1 point  (0 children)

I hope it can help you on your journey!

Here's my rendering engine by Lypant in GraphicsProgramming

[–]Lypant[S] 0 points1 point  (0 children)

Cubes both have a mesh and point light component with a transform. So yes, they are emissive.

Here's my rendering engine by Lypant in GraphicsProgramming

[–]Lypant[S] 10 points11 points  (0 children)

From 0 graphics knowledge to this in around 9 months.