What C++ features should I know about for a graphics programming job interview?

static void main
  • What C++ features should I know about for a graphics programming job interview? static void main

    I really don't want to be boring, I searched a lot but didn't found a focused answer to this question. I wanted to focus on the role of C++ in graphics programming.

    Can somebody explain, which are most likely/ most often used C++ features (such as data structures), which are used in graphics programming? I am supposed to have an interview on this topic, so please shed some light on the features I should emphasize for an interview specific to C++ graphics programming.

  • For a job interview, I would suggest you worry less about the ability to recite commonly-used features and techniques (if you're doing this by rote, any good interviewer will see right through you and you'll fail the interview, and if they're not a good interviewer you probably don't want to be working for them).

    Instead, since graphics programming is often a performance-critical area, focus more on understanding the performance implications of common language features. Understand things like:

    • the performance characteristics of pass-by-reference versus pass-by-value.
    • the importance of cache coherency and its impact on performance
    • the cost of allocations during a frame and how to alleviate said cost
    • how dynamic dispatch is typically implemented and what that means for performance

    Bonus points if you can correctly demarcate what is a standard C++ guarantee and what is an implementation detail (virtual functions, for example, are the latter -- albeit a very common one).

    Each of those topics is a great question on its own (although some more appropriate for StackOverflow than here), so if you want further direction in your study I recommend you post new questions.

    Finally, a comment on the original thrust of your question: graphics programming is a language-agnostic domain. The algorithms used will vary widely depending on the kind of rendering one is after, the requirements and limitations of one's platform, and the individual effects one wants to achieve. The combination of all of that will dictate ideal data structures and techniques (although even with that much specificity, there's no obvious "best" choice) and thus what language features may ultimately be employed to achieve the desired results.

Tags
c++ graphics graphics-programming interview
Related questions and answers
  • Are you aware of a complete (or almost complete) cross platform math library for use in OpenGL ES 2.0 games? The library should contain: Matrix2x2, Matrix 3x3, Matrix4x4 classes Quaternions Vector2, Vector3, Vector4 Classes Euler Angle Class Operations amongh the above mentioned classes, conversions, etc.. Standardly used math operations in 3D graphics (Dot Product, Cross Product, SLERP, etc...) Is there such Math API available either standalone or as a part of any package? Programming Language: Visual C++ but planned to be ported to OS X and Android OS.

  • As most of game programming is done - I read on this very site - in C/C++ I was wondering if there is any learning/studying material for C/C++ that would target specifically game programming. I am not looking for material about "developing games" or "software architecture for games", but rather for material that uses "game programming" as the CONTEXT for introducing and illustrating C/C++ features, idioms, programming techniques, etc... With a simile: think to the GOF book on design patterns. There, they used "developing a text-editor" as a context for introducing design patterns

  • the above mentioned features plus things I haven't considered yet Programming language is: C++. Currently, I'm developing under Windows 7, Visual Studio 2010, and OpenGL ES 2.0 emulator. Later...Say I develop a game for mobile platform running OpenGL ES 2.0. I have done 2D part, and now I wish to import some 3D objects. The imported 3D objects must contain the following: Vertices positions Normals UVs Texturing information Animation information Collision mesh Maybe some other things... I am aware, that I could and (maybe should) create my own file format that brings these data from

  • but forced myself to wait on, as there are only so many hours in the day to devote to projects. I am an experienced web developer (12 years) with most of my experience programming in C# and .Net (8 years). I am also a capable graphic designer. I have a surface knowledge of C++, though it's been 10 years since I wrote any C++ code. I also played with the DirectX 5 API back then as well. I am happy to outsource graphics and sound, leaving me with coding, game design, level design and so forth. Do I need to learn C++ properly, or can I rely on my C# and .Net knowledge? If I'm going to leave C

  • I'm trying to find a solid architecture for authenticating users against a database. I have a game client, which I plan to serve up a request with. The transport doesn't really matter... if I can leverage the session features or not, as I haven't looked that for into it, but it'd be great if I could. It will probably be a mix of storing some session information in the database and if I can leverage Shiro's session features then that's a bonus. My real question is about the handshake between the client and server. If I use WS-Security isn't all that taken care of for me? Does

  • I have a few books on Design Patterns, and have read some articles, but cannot intuitively figure out which programming design patterns would be useful in game development. For example, I have... of these would be useful, or in fact if any of these are the design patterns I should be learning and trying to use. Perhaps there are other, more game-programming-specific design patterns that I am... helpful as well if you have them. I am at the moment most interested in ActionScript 3 and C++ implementations, but could definitely benefit from experience and examples from any language. Thanks!

  • I am a 2D Game Programmer.Some programming languages which I am good at are C,Java ,C#. I also know Actionscript 2.0,3.0 and some javascript. I'm interested in learning 3D Game programming. So far from the research I have accumulated by googling and reading different game development forums and articles. I've noticed that most programmers tend to prefer C++.Also in an online game programming... for 3d game programming. Also include links to good 3d game programming articles for the already 2d game programmer. P.S : IMHO , I also find C++ to be cryptic.

  • Lately I have been working on a game that i plan to make online. I have used different libraries to make this game as far as i could, but I feel that I should rethink on how Im sertting this game up, so I planned to start over. The libraries that I have used are SFML, OpenGL, and Bullet Physics, along with GLM to load the models. But the problem is that the 3D graphics arent working.... The libraries that I would need are ones that fit the criteria of making a simple 3d game(online): 3D Graphics(including a model loader of some sort(if it works with blender that would be even

  • for. By this I mean I've always heard that graphics programming is hard. So for someone with basic c++ skills and an OK level of discrete mathematics, is it feasible to complete this project spec... in the world. I'm OK at C++ but its one language I would really like to explore and make my primary language. (assuming there are jobs for grads in this area) This project will most likely define the career...Final year student from an IT college in Ireland. I'm not really sure if this is the right place to post but It seems that graphics programming is very closely related to games and the people here

Data information