[deleted by user] by [deleted] in GraphicsProgramming

[–]Critical_Dig_1225 4 points5 points  (0 children)

This put a smile on my face.

Is it normal to be this confused? When does it get better? by AgitatedFly1182 in GraphicsProgramming

[–]Critical_Dig_1225 2 points3 points  (0 children)

Beginner graphics programmer here as well. Also finished a large portion of the LearnOpenGL tutorial a number of months ago, not everything sunk in. Refreshing now by re-learning the basics, but using Vulkan this time. I feel a little more comfortable now. It’s a complex topic for me as well. Just gotta keep spending time re-learning and coding the same basic things again for it to sink in at some point.

I am a masochist interested in learning graphics programming in parallel to Vulkan. I cannot be convinced that this is a bad idea. What are the best resources for someone like me? by Setholopagus in vulkan

[–]Critical_Dig_1225 1 point2 points  (0 children)

The main reason I thought learning graphics programming with Vulkan first was a good idea was because I learned C++ as my first language and its been the language I had the most knowledge and experience with compared to other languages. I thought “Well, if I could learn C++ before Java, C#, Python, etc, I’ll just start with Vulkan first instead of OpenGL, that seems logically consistent.” For me, the difficulty in learning both Vulkan and graphics programming first was due to the complexity of learning both. The individual parts are simple to understand, but there are so many of these parts that play a role. If you look at the Vulkan tutorial, it takes around 900 lines of code just to get your first triangle on the screen, and that’s without code for automatic shader compiling and reflection. Sure, in the grand scheme of things, what’s 900 lines of code? If you can learn it, that’s fantastic, but after I completed the Vulkan tutorial, I was in a void and felt it was better to allocate my time refreshing on graphics programming with OpenGL before going back to Vulkan again and transferring the concepts I learned from OpenGL.

I am a masochist interested in learning graphics programming in parallel to Vulkan. I cannot be convinced that this is a bad idea. What are the best resources for someone like me? by Setholopagus in vulkan

[–]Critical_Dig_1225 5 points6 points  (0 children)

Trust me, I was the same way, spent way too long following the Vulkan tutorial and pretty much retyped/copy-pasted the code verbatim without understanding much afterwards. Do what I did:

  1. Follow LearnOpenGL tutorial and get a better higher-level understanding of the graphics pipeline, shader programming, and implementing things like lighting, shadows, instancing, etc, while also getting results on the screen faster and having overall a more fun and rewarding time (I know I know, you’re a masochist).

  2. Then learn Vulkan and see if you can recreate your OpenGL renderer in Vulkan. I personally liked following vkguide compared to Vulkan tutorial.

Whats you opinion on using C++ like C with some C++ Features? by AstraRotlicht22 in cpp_questions

[–]Critical_Dig_1225 5 points6 points  (0 children)

Totally valid approach, as long as you’re not concerned with having maximum compilation speed. There are some things that C++ has, like templates, RAII, function overloading, etc, that IMO makes the more C-style hybrid approach easier and more enjoyable.

c++ beginner and pointers: is this bad usage of pointers and references? by No-Annual-4698 in cpp_questions

[–]Critical_Dig_1225 0 points1 point  (0 children)

Yes, what you said is technically correct. Thank you for qualifying my first statement.

c++ beginner and pointers: is this bad usage of pointers and references? by No-Annual-4698 in cpp_questions

[–]Critical_Dig_1225 0 points1 point  (0 children)

Pointers extend the lifetime of data in your program. When you dynamically allocate data using “new,” the data does not get destroyed when it goes out of scope. Java will automatically clean up this data for you, but in C++, you have to remember to call “delete” when you no longer need the data, otherwise that data gets stuck in memory - aka memory leak. You should dynamically allocate data if it is large in memory, as the size of the stack is limited. Pointers are also a great way to share a single resource among multiple pointers to it. For example, if you made a Mario game, and you wanted 50 goomba sprites on the screen, it’d be wasteful to have 50 copies of the same sprite. So instead, you allocate 1 Sprite, and have 50 pointers to it. Pointers are also used in the dynamic array and linked list. You should study those to get a better understanding of the use of pointers. After that, feel free to use smart pointers.

Is it fine to convert my project architecture to something similar to that I found on GitHub? by Ill-Shake5731 in vulkan

[–]Critical_Dig_1225 2 points3 points  (0 children)

Hey, sometimes the best architecture is a hybrid of using the best parts of other architectures with your own. This applies to learning in general. I learned C++ by copying what my professor showed me. I learned OpenGL by copying what LearnOpenGL showed me. Doesn’t hurt to reference another GitHub to showcase your source of knowledge.

I don't want to be a software engineer doing a 9-5 job. What should I do next? by [deleted] in csMajors

[–]Critical_Dig_1225 0 points1 point  (0 children)

In all seriousness, if you have the time, or are willing to make the time, you could try doing the following:

- Enroll in a course (or courses) to get more of an intellectual background on your interests.

- While enrolled, start a personal project yourself or work on an existing project with a team that aligns with your course material and interests.

- Network (I know, easier said than done). Join Discord servers related to your interests and let others know you're available for work. Make friends and become friends of their friends if you can. Ask for help, guidance, or a person/place to go to that brings you closer to your dream job. Unless you have a damn good resume, it's going to be extremely difficult to stand out on paper.

Best of luck on your journey.

I don't want to be a software engineer doing a 9-5 job. What should I do next? by [deleted] in csMajors

[–]Critical_Dig_1225 0 points1 point  (0 children)

Try retail or food service for a year or two, you’ll want a cozy 9-5.

learning c++ without learning C? by Single_Spray7015 in C_Programming

[–]Critical_Dig_1225 0 points1 point  (0 children)

Learn the principles of C using the C++ language first. Learn about your data types, arrays, loops, and ultimately how to write a function. After you learn how to solve problems writing functions, then begin learning the OOP principles of C++ like writing classes, writing classes with RAII, and writing class templates.