[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:game-dev\u002Fgame-rendering-pipeline":4,"config":126},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":40,"samples":41},"game-dev","Game Development","","game-rendering-pipeline","Game Rendering Pipeline","en",75,600,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,37],{"key":19,"name":20,"count":11},"game-ai-pathfinding","Game Ai Pathfinding",{"key":22,"name":23,"count":11},"game-input-audio","Game Input Audio",{"key":25,"name":26,"count":11},"game-loop-fundamentals","Game Loop Fundamentals",{"key":28,"name":29,"count":11},"game-networking-multiplayer","Game Networking Multiplayer",{"key":31,"name":32,"count":11},"game-performance-optimization","Game Performance Optimization",{"key":34,"name":35,"count":11},"game-physics-collision","Game Physics Collision",{"key":8,"name":9,"count":11},{"key":38,"name":39,"count":11},"game-state-management","Game State Management",[],[42,60,73,87,100,113],{"id":43,"topic":9,"difficulty":44,"body":45,"options":46,"correct_key":51,"explanation":59},"019f6b28-1776-70bd-9e9c-18a74d834814",1,"Which sequence best describes the conceptual stages a game frame goes through, from scene data to a finished pixel?",[47,50,53,56],{"key":48,"text":49},"a","Pixel shading, geometry submission, scene traversal, rasterization",{"key":51,"text":52},"b","Scene submission, transformation, rasterization, pixel processing",{"key":54,"text":55},"c","Rasterization, scene loading, geometry culling, texture upload",{"key":57,"text":58},"d","Pixel processing, scene traversal, geometry batching, transformation","The conceptual rendering pipeline moves from scene\u002Fgeometry data, through transformation into screen space, then rasterization converts shapes into candidate pixels, and finally per-pixel processing determines the final color. The other orderings put a later stage before its input exists.",{"id":61,"topic":9,"difficulty":44,"body":62,"options":63,"correct_key":57,"explanation":72},"019f6b28-1776-7871-8a6d-a5829f5611f9","In the rendering pipeline, what does the rasterization stage fundamentally do?",[64,66,68,70],{"key":48,"text":65},"It loads texture data from disk into memory",{"key":51,"text":67},"It decides which objects are inside the camera's view volume",{"key":54,"text":69},"It calculates the final lighting equation for each object",{"key":57,"text":71},"It converts geometric shapes into candidate screen pixels","Rasterization takes geometric primitives (already transformed into screen space) and determines which pixels they cover, producing fragments that later stages can shade. Texture loading, visibility decisions, and full lighting are separate concerns.",{"id":74,"topic":9,"difficulty":75,"body":76,"options":77,"correct_key":48,"explanation":86},"019f6b28-1777-708e-8625-76016bec0394",2,"Why does the rendering pipeline transform objects before rasterizing them, instead of rasterizing raw scene coordinates directly?",[78,80,82,84],{"key":48,"text":79},"Rasterization operates on screen-space coordinates, requiring transformation from world space first",{"key":51,"text":81},"Because transformation is what loads the object's texture into memory",{"key":54,"text":83},"Because rasterization can only process one triangle per frame otherwise",{"key":57,"text":85},"Because the pipeline always renders objects in the order they were created, and transformation enforces that order","Rasterization needs to know where a shape lands on the 2D screen grid, which requires converting world-space geometry through view and projection transforms into screen space first. Texture loading and creation-order sequencing are unrelated to this requirement.",{"id":88,"topic":9,"difficulty":44,"body":89,"options":90,"correct_key":54,"explanation":99},"019f6b28-1777-77cd-a369-41b42974fd79","What is a draw call, at a conceptual level?",[91,93,95,97],{"key":48,"text":92},"A function that calculates how many frames per second the game is running at",{"key":51,"text":94},"A request sent from the player's input device to move the camera",{"key":54,"text":96},"A command telling rendering hardware to draw geometry with given settings",{"key":57,"text":98},"A background thread that loads level data from disk","A draw call is the instruction that tells the rendering hardware 'draw this geometry now, with this current configuration.' It is not related to frame-rate measurement, input handling, or disk streaming, which are separate systems.",{"id":101,"topic":9,"difficulty":75,"body":102,"options":103,"correct_key":54,"explanation":112},"019f6b28-1777-7dfc-a978-a95005470b9b","Why is issuing a large number of draw calls per frame considered expensive?",[104,106,108,110],{"key":48,"text":105},"Because each draw call permanently deletes the geometry it drew afterward",{"key":51,"text":107},"Because draw calls can only be issued once per second by design",{"key":54,"text":109},"Draw-call overhead adds up beyond the drawing itself as count grows",{"key":57,"text":111},"Because the game must pause the simulation while every draw call executes","Beyond the actual drawing work, each draw call incurs fixed overhead for setting up state and submitting the command. With thousands of small draw calls, this per-call overhead can dominate total frame cost even if the geometry itself is simple.",{"id":114,"topic":9,"difficulty":75,"body":115,"options":116,"correct_key":51,"explanation":125},"019f6b28-1778-7691-ac2d-5916493af8ea","A scene renders 5,000 small props, each issued as its own separate draw call, and the frame rate is low even though the total polygon count is modest. What is the most likely conceptual cause?",[117,119,121,123],{"key":48,"text":118},"The GPU cannot store more than 5,000 polygons in memory at once",{"key":51,"text":120},"High draw call count creates overhead dominating the frame",{"key":54,"text":122},"The scene has too many light sources for the camera to process",{"key":57,"text":124},"The props are using too many input controller bindings","Low polygon count but low frame rate with thousands of separate draw calls is a classic symptom of draw-call overhead: the cost is in the number of submissions, not the geometric complexity. Memory capacity, lighting count, and input bindings are unrelated symptoms.",{"fields":127,"seniorities":311,"interview_shapes":312,"locales":317,"oauth":319,"question_count":322,"coach_enabled":323,"jd_match_enabled":323},[128,153,173,190,214,227,246,265,287,294,300,305],{"key":129,"name_tr":130,"name_en":130,"sort":44,"specializations":131},"backend","Backend",[132,135,138,141,144,147,150],{"key":133,"name":134,"field":129},"general","Genel",{"key":136,"name":137,"field":129},"go","Go",{"key":139,"name":140,"field":129},"python","Python",{"key":142,"name":143,"field":129},"java","Java",{"key":145,"name":146,"field":129},"csharp","C#\u002F.NET",{"key":148,"name":149,"field":129},"nodejs","Node.js",{"key":151,"name":152,"field":129},"php","PHP",{"key":154,"name_tr":155,"name_en":155,"sort":75,"specializations":156},"frontend","Frontend",[157,158,161,164,167,170],{"key":133,"name":134,"field":154},{"key":159,"name":160,"field":154},"javascript","JavaScript",{"key":162,"name":163,"field":154},"typescript","TypeScript",{"key":165,"name":166,"field":154},"react","React",{"key":168,"name":169,"field":154},"vue","Vue",{"key":171,"name":172,"field":154},"angular","Angular",{"key":174,"name_tr":175,"name_en":175,"sort":176,"specializations":177},"fullstack","Fullstack",3,[178,179,180,181,182,183,184,185,186,187,188,189],{"key":133,"name":134,"field":174},{"key":136,"name":137,"field":129},{"key":139,"name":140,"field":129},{"key":142,"name":143,"field":129},{"key":145,"name":146,"field":129},{"key":148,"name":149,"field":129},{"key":151,"name":152,"field":129},{"key":159,"name":160,"field":154},{"key":162,"name":163,"field":154},{"key":165,"name":166,"field":154},{"key":168,"name":169,"field":154},{"key":171,"name":172,"field":154},{"key":191,"name_tr":192,"name_en":192,"sort":193,"specializations":194},"devops-cloud","DevOps \u002F Cloud",4,[195,196,199,202,205,208,211],{"key":133,"name":134,"field":191},{"key":197,"name":198,"field":191},"aws","AWS",{"key":200,"name":201,"field":191},"gcp","GCP",{"key":203,"name":204,"field":191},"azure","Azure",{"key":206,"name":207,"field":191},"kubernetes","Kubernetes",{"key":209,"name":210,"field":191},"terraform","Terraform",{"key":212,"name":213,"field":191},"linux","Linux",{"key":215,"name_tr":216,"name_en":216,"sort":217,"specializations":218},"ai-engineer","AI Engineer",5,[219,220,221,224],{"key":133,"name":134,"field":215},{"key":139,"name":140,"field":215},{"key":222,"name":223,"field":215},"llm-rag","LLM\u002FRAG",{"key":225,"name":226,"field":215},"mlops","MLOps",{"key":228,"name_tr":229,"name_en":230,"sort":231,"specializations":232},"database","Veritabanı","Database",6,[233,234,237,240,243],{"key":133,"name":134,"field":228},{"key":235,"name":236,"field":228},"postgresql","PostgreSQL",{"key":238,"name":239,"field":228},"mysql","MySQL",{"key":241,"name":242,"field":228},"mongodb","MongoDB",{"key":244,"name":245,"field":228},"redis","Redis",{"key":247,"name_tr":248,"name_en":249,"sort":250,"specializations":251},"mobile","Mobil","Mobile",7,[252,253,256,259,262],{"key":133,"name":134,"field":247},{"key":254,"name":255,"field":247},"ios-swift","iOS (Swift)",{"key":257,"name":258,"field":247},"android-kotlin","Android (Kotlin)",{"key":260,"name":261,"field":247},"flutter","Flutter",{"key":263,"name":264,"field":247},"react-native","React Native",{"key":266,"name_tr":267,"name_en":268,"sort":269,"specializations":270},"security","Güvenlik","Security",8,[271,272,275,278,281,284],{"key":133,"name":134,"field":266},{"key":273,"name":274,"field":266},"appsec","AppSec",{"key":276,"name":277,"field":266},"offensive-pentest","Offensive \u002F Pentest",{"key":279,"name":280,"field":266},"cloud-security","Cloud Security",{"key":282,"name":283,"field":266},"devsecops","DevSecOps",{"key":285,"name":286,"field":266},"blue-team-incident","Blue Team \u002F Incident",{"key":288,"name_tr":289,"name_en":290,"sort":291,"specializations":292},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[293],{"key":133,"name":134,"field":288},{"key":295,"name_tr":296,"name_en":296,"sort":297,"specializations":298},"data-engineer","Data Engineer",10,[299],{"key":133,"name":134,"field":295},{"key":5,"name_tr":301,"name_en":6,"sort":302,"specializations":303},"Oyun Geliştirme",11,[304],{"key":133,"name":134,"field":5},{"key":306,"name_tr":307,"name_en":307,"sort":308,"specializations":309},"ml-engineer","ML Engineer",12,[310],{"key":133,"name":134,"field":306},[14,15,16],{"junior":313,"mid":315,"senior":316},{"questions":314,"median_sec":3},20,{"questions":314,"median_sec":3},{"questions":314,"median_sec":3},[318,10],"tr",[320,321],"google","github",21750,true]