Game Developer
Graphics and rendering questions
155 questions on Graphics and rendering for game developers, easiest first.
Easy 43
- Why use a sprite atlaseasy
- Why textures have mipmapseasy
- Camera snaps to the playereasy
- Painting a 2D platformer leveleasy
- Floatier jump for one charactereasy
- Camera framing without custom codeeasy
- Main job of a vertex shadereasy
- How often a fragment shader runseasy
- What the depth buffer storeseasy
- Perspective or orthographic cameraeasy
- What back-face culling skipseasy
- What UV coordinates areeasy
- Frame budget at 60 FPSeasy
- Light type for the suneasy
- Tiling a floor textureeasy
- Cause of screen tearingeasy
- Uniform or vertex attributeeasy
- Why use a normal mapeasy
- What frustum culling doeseasy
- What anti-aliasing fixeseasy
- Why double bufferingeasy
- Blurry canvas on a phoneeasy
- Driving a browser render loopeasy
- Why bake lightmapseasy
- Texture type for a skyboxeasy
- Blurry road in the distanceeasy
- Lighting moving objects in a baked leveleasy
- Bullet holes on wallseasy
- Memory grows on each level loadeasy
- V-Sync trade-offeasy
- Sprites that always face youeasy
- Stripes in a dark sky gradienteasy
- Edges of a sprite show its neighboureasy
- A security camera monitoreasy
- What one draw call iseasy
- Where skinning usually runseasy
- Why meshes use index bufferseasy
- Cartoon-style lightingeasy
- Finding why a mesh is invisibleeasy
- Darkening the screen cornerseasy
- Blurring the background in a cutsceneeasy
- Drawing a full-screen passeasy
- Opaque before transparenteasy
Medium 62
- Too many draw callsmedium
- Camera smoothing changes with FPSmedium
- Thousands of detailed treesmedium
- Drawing rooms behind wallsmedium
- Shader build time explodedmedium
- Many identical rocksmedium
- Textures use too much memory on mobilemedium
- Camera shake that stacks badlymedium
- Changing one enemy's colourmedium
- Drawing 5,000 identical treesmedium
- Rooms behind walls still rendermedium
- High-poly trees far awaymedium
- Why an object breaks batchingmedium
- Order of model, view and projectionmedium
- Clip space to NDCmedium
- Lambert diffuse termmedium
- The Blinn-Phong half vectormedium
- Point light at twice the distancemedium
- Memory for a 2048 texturemedium
- Blurry pixel art spritesmedium
- Which textures are sRGBmedium
- Why tone mapping is neededmedium
- Standard alpha blending resultmedium
- Dark halos around spritesmedium
- A job for the stencil buffermedium
- What 4x MSAA multipliesmedium
- Trails behind moving objectsmedium
- Metallic and roughness inputsmedium
- Base reflectance of plasticmedium
- Blocky shadow edgesmedium
- Softening shadow edges cheaplymedium
- What SSAO approximatesmedium
- Bloom on everythingmedium
- Cost of static batchingmedium
- Different colours per instancemedium
- Open world texture memorymedium
- Reflections slide across the floormedium
- Reflections vanish at screen edgesmedium
- What temporal upscalers domedium
- Holding frame rate in busy scenesmedium
- Load and store actions on mobilemedium
- mediump in mobile shadersmedium
- A good fit for a compute shadermedium
- What a pipeline state object holdsmedium
- Why command buffers help threadingmedium
- Canvas goes black on mobilemedium
- Smooth CSS animationmedium
- Sorting particles for blendingmedium
- Additive sparks need no sortingmedium
- Applying a colour grade fastmedium
- Popping with GPU occlusion queriesmedium
- Branches that cost both waysmedium
- Exponential fog amountmedium
- Water reflects more at the horizonmedium
- Outlines with an inverted hullmedium
- A burn-away dissolve effectmedium
- Stretched textures on cliffsmedium
- Text stays sharp when zoomedmedium
- Input to per-object motion blurmedium
- Texture array instead of an atlasmedium
- Measuring one pass on the GPUmedium
- Waving flags in the vertex shadermedium
Hard 50
- GPU-bound on mobile with particleshard
- Flickering distant surfaceshard
- Lighting wrong on stretched meshhard
- Lights add up too harshlyhard
- Transparent objects in wrong orderhard
- Drawbacks of deferred renderinghard
- Striped shadow artefactshard
- Alpha-tested foliage on mobilehard
- Stutter the first time an effect appearshard
- Shader build takes hourshard
- Shader not SRP Batcher compatiblehard
- Batches fine, SetPass calls highhard
- Glass panes flicker in front of each otherhard
- Near plane and depth precisionhard
- Why reversed-Z helpshard
- Lighting flips on mirrored UVshard
- Fill rate for heavy overdrawhard
- Hundreds of small lights in forwardhard
- Size of a G-bufferhard
- Discard makes opaque slowerhard
- Gradient edges look too darkhard
- Shadows detached from feethard
- Rough metal looks mirror-likehard
- Bumps lit from the wrong sidehard
- Shadow edges crawl as camera moveshard
- Image looks washed outhard
- Deferred plus glass windowshard
- Is the frame GPU-boundhard
- What mesh shaders replacehard
- Virtualised geometry like Nanitehard
- Ray tracing with moving charactershard
- Halving path tracing noisehard
- Transparency without sortinghard
- Crisp grass edges with MSAAhard
- Shadow texels per metrehard
- Compressing normal mapshard
- Smearing on animated charactershard
- Why clusters use log depth sliceshard
- Frame time spikes on readbackhard
- MSAA in a deferred rendererhard
- Light shafts through foghard
- GPU-driven occlusion cullinghard
- Benefit of bindless textureshard
- Dense meshes shade slowlyhard
- Texture seams inside an ifhard
- Storing ambient light in probeshard
- Depth in brick walls without geometryhard
- Output for an HDR10 TVhard
- Vertex shader runs too oftenhard
- Combining two normal mapshard