[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:game-dev\u002Fgfx-shadows-depth-precision":4,"config":226},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":130,"samples":147},"game-dev","Game Development","","gfx-shadows-depth-precision","Gfx Shadows Depth Precision","en",75,2850,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127],{"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":37,"name":38,"count":11},"game-rendering-pipeline","Game Rendering Pipeline",{"key":40,"name":41,"count":11},"game-state-management","Game State Management",{"key":43,"name":44,"count":11},"gfx-forward-deferred-architectures","Gfx Forward Deferred Architectures",{"key":46,"name":47,"count":11},"gfx-gpu-pipeline-stages","Gfx Gpu Pipeline Stages",{"key":49,"name":50,"count":11},"gfx-post-processing-aa-hdr","Gfx Post Processing Aa Hdr",{"key":52,"name":53,"count":11},"gfx-shading-lighting-pbr","Gfx Shading Lighting Pbr",{"key":8,"name":9,"count":11},{"key":56,"name":57,"count":11},"gfx-textures-sampling-compression","Gfx Textures Sampling Compression",{"key":59,"name":60,"count":11},"gp-ability-cooldown-damage","Gp Ability Cooldown Damage",{"key":62,"name":63,"count":11},"gp-animation-state-locomotion","Gp Animation State Locomotion",{"key":65,"name":66,"count":11},"gp-camera-follow-targeting","Gp Camera Follow Targeting",{"key":68,"name":69,"count":11},"gp-character-controller-movement","Gp Character Controller Movement",{"key":71,"name":72,"count":11},"gp-frame-windows-game-feel","Gp Frame Windows Game Feel",{"key":74,"name":75,"count":11},"gp-interaction-detection-triggers","Gp Interaction Detection Triggers",{"key":77,"name":78,"count":11},"nc-rollback-determinism","Nc Rollback Determinism",{"key":80,"name":81,"count":11},"nc-security-protocol","Nc Security Protocol",{"key":83,"name":84,"count":11},"nc-serialization-bandwidth","Nc Serialization Bandwidth",{"key":86,"name":87,"count":11},"nc-time-sync-tick","Nc Time Sync Tick",{"key":89,"name":90,"count":11},"nc-topology-nat-relay","Nc Topology Nat Relay",{"key":92,"name":93,"count":11},"nc-transport-reliability","Nc Transport Reliability",{"key":95,"name":96,"count":11},"ue-actor-component-lifecycle","Ue Actor Component Lifecycle",{"key":98,"name":99,"count":11},"ue-blueprint-cpp-interop","Ue Blueprint Cpp Interop",{"key":101,"name":102,"count":11},"ue-containers-strings-memory","Ue Containers Strings Memory",{"key":104,"name":105,"count":11},"ue-gameplay-framework-classes","Ue Gameplay Framework Classes",{"key":107,"name":108,"count":11},"ue-modules-build-packaging","Ue Modules Build Packaging",{"key":110,"name":111,"count":11},"ue-uobject-reflection-gc","Ue Uobject Reflection Gc",{"key":113,"name":114,"count":11},"un-csharp-memory-gc-performance","Un Csharp Memory Gc Performance",{"key":116,"name":117,"count":11},"un-gameobject-component-transform","Un Gameobject Component Transform",{"key":119,"name":120,"count":11},"un-jobs-burst-dots-basics","Un Jobs Burst Dots Basics",{"key":122,"name":123,"count":11},"un-monobehaviour-lifecycle-execution-order","Un Monobehaviour Lifecycle Execution Order",{"key":125,"name":126,"count":11},"un-prefabs-instantiate-pooling-addressables","Un Prefabs Instantiate Pooling Addressables",{"key":128,"name":129,"count":11},"un-scriptableobject-serialization","Un Scriptableobject Serialization",[131,135,138,141,144],{"key":132,"name":133,"count":134},"gameplay","Gameplay",450,{"key":136,"name":137,"count":134},"graphics-rendering","Graphics \u002F Rendering",{"key":139,"name":140,"count":134},"multiplayer-netcode","Multiplayer \u002F Netcode",{"key":142,"name":143,"count":134},"unity-csharp","Unity (C#)",{"key":145,"name":146,"count":134},"unreal-cpp","Unreal (C++)",[148,166,179,193,206,216],{"id":149,"topic":9,"difficulty":150,"body":151,"options":152,"correct_key":154,"explanation":165},"01a01705-2024-7df3-be22-37d89c274bfc",1,"In classic shadow mapping, what is rendered from the light's point of view before the main camera pass?",[153,156,159,162],{"key":154,"text":155},"a","A depth-only image of the scene",{"key":157,"text":158},"b","A fully shaded color image of the scene",{"key":160,"text":161},"c","A screen-space normal buffer",{"key":163,"text":164},"d","A stencil mask of lit pixels","Shadow mapping renders the scene from the light's viewpoint and keeps only depth values. The camera pass later compares each fragment's distance to the light against this stored depth to decide occlusion.",{"id":167,"topic":9,"difficulty":150,"body":168,"options":169,"correct_key":160,"explanation":178},"01a01705-2027-7ac3-8492-a95219bff96e","Which projection is typically used to render the shadow map for a directional light such as sunlight?",[170,172,174,176],{"key":154,"text":171},"Perspective projection",{"key":157,"text":173},"Cube map projection",{"key":160,"text":175},"Orthographic projection",{"key":163,"text":177},"Dual-paraboloid projection","A directional light has parallel rays and no single origin point, so its shadow map is rendered with an orthographic projection; spot lights use perspective, and point lights commonly use a cube map or dual-paraboloid projection.",{"id":180,"topic":9,"difficulty":181,"body":182,"options":183,"correct_key":163,"explanation":192},"01a01705-202a-78ef-8079-7ebf55ac85f7",2,"A point light radiates in every direction. Which approach commonly covers the full sphere of directions for its shadow map?",[184,186,188,190],{"key":154,"text":185},"A single orthographic shadow map",{"key":157,"text":187},"A shadow map aligned to the camera frustum",{"key":160,"text":189},"A cascaded set of orthographic maps",{"key":163,"text":191},"A cube map with one depth pass per face","A point light has no single forward direction, so one perspective map cannot cover it. A common solution renders depth into six faces of a cube map, one per axis direction; dual-paraboloid mapping is an alternative.",{"id":194,"topic":9,"difficulty":181,"body":195,"options":196,"correct_key":157,"explanation":205},"01a01705-202c-7bc1-8fb5-7faafe94f784","A lit flat floor shows dark diagonal stripes that flicker even though nothing occludes it. What artifact is this?",[197,199,201,203],{"key":154,"text":198},"Peter-panning",{"key":157,"text":200},"Shadow acne",{"key":160,"text":202},"Light leaking",{"key":163,"text":204},"Texture bleeding","This is shadow acne: incorrect self-shadowing stripes on an otherwise lit surface, caused by the shadow map's quantized depth wrongly comparing a surface as farther from the light than itself.",{"id":207,"topic":9,"difficulty":181,"body":208,"options":209,"correct_key":160,"explanation":215},"01a01705-2030-739c-a17d-3ca142cb0c26","QA reports a visible gap between a character's feet and its own shadow on the ground. What is this artifact called?",[210,211,213,214],{"key":154,"text":200},{"key":157,"text":212},"Cascade seam",{"key":160,"text":198},{"key":163,"text":202},"Peter-panning is the visible detachment of a shadow from the object casting it, most often caused by a depth bias large enough to push the compared shadow surface too far away.",{"id":217,"topic":9,"difficulty":181,"body":218,"options":219,"correct_key":154,"explanation":225},"01a01705-2031-7e09-a007-70ea4fbbaefd","Light visibly appears in a corner where two shadowed walls should fully block it, near a thin occluding edge. What is this called?",[220,221,222,224],{"key":154,"text":202},{"key":157,"text":200},{"key":160,"text":223},"Z-fighting",{"key":163,"text":198},"Light leaking is light incorrectly reaching an area that should be fully occluded. It commonly shows up near thin occluders where shadow-map resolution or bias is not enough to represent the edge correctly.",{"fields":227,"seniorities":440,"interview_shapes":441,"locales":446,"oauth":448,"question_count":451,"coach_enabled":452,"jd_match_enabled":452},[228,253,273,290,314,327,346,365,387,406,421,431],{"key":229,"name_tr":230,"name_en":230,"sort":150,"specializations":231},"backend","Backend",[232,235,238,241,244,247,250],{"key":233,"name":234,"field":229},"general","Genel",{"key":236,"name":237,"field":229},"go","Go",{"key":239,"name":240,"field":229},"python","Python",{"key":242,"name":243,"field":229},"java","Java",{"key":245,"name":246,"field":229},"csharp","C#\u002F.NET",{"key":248,"name":249,"field":229},"nodejs","Node.js",{"key":251,"name":252,"field":229},"php","PHP",{"key":254,"name_tr":255,"name_en":255,"sort":181,"specializations":256},"frontend","Frontend",[257,258,261,264,267,270],{"key":233,"name":234,"field":254},{"key":259,"name":260,"field":254},"javascript","JavaScript",{"key":262,"name":263,"field":254},"typescript","TypeScript",{"key":265,"name":266,"field":254},"react","React",{"key":268,"name":269,"field":254},"vue","Vue",{"key":271,"name":272,"field":254},"angular","Angular",{"key":274,"name_tr":275,"name_en":275,"sort":276,"specializations":277},"fullstack","Fullstack",3,[278,279,280,281,282,283,284,285,286,287,288,289],{"key":233,"name":234,"field":274},{"key":236,"name":237,"field":229},{"key":239,"name":240,"field":229},{"key":242,"name":243,"field":229},{"key":245,"name":246,"field":229},{"key":248,"name":249,"field":229},{"key":251,"name":252,"field":229},{"key":259,"name":260,"field":254},{"key":262,"name":263,"field":254},{"key":265,"name":266,"field":254},{"key":268,"name":269,"field":254},{"key":271,"name":272,"field":254},{"key":291,"name_tr":292,"name_en":292,"sort":293,"specializations":294},"devops-cloud","DevOps \u002F Cloud",4,[295,296,299,302,305,308,311],{"key":233,"name":234,"field":291},{"key":297,"name":298,"field":291},"aws","AWS",{"key":300,"name":301,"field":291},"gcp","GCP",{"key":303,"name":304,"field":291},"azure","Azure",{"key":306,"name":307,"field":291},"kubernetes","Kubernetes",{"key":309,"name":310,"field":291},"terraform","Terraform",{"key":312,"name":313,"field":291},"linux","Linux",{"key":315,"name_tr":316,"name_en":316,"sort":317,"specializations":318},"ai-engineer","AI Engineer",5,[319,320,321,324],{"key":233,"name":234,"field":315},{"key":239,"name":240,"field":315},{"key":322,"name":323,"field":315},"llm-rag","LLM\u002FRAG",{"key":325,"name":326,"field":315},"mlops","MLOps",{"key":328,"name_tr":329,"name_en":330,"sort":331,"specializations":332},"database","Veritabanı","Database",6,[333,334,337,340,343],{"key":233,"name":234,"field":328},{"key":335,"name":336,"field":328},"postgresql","PostgreSQL",{"key":338,"name":339,"field":328},"mysql","MySQL",{"key":341,"name":342,"field":328},"mongodb","MongoDB",{"key":344,"name":345,"field":328},"redis","Redis",{"key":347,"name_tr":348,"name_en":349,"sort":350,"specializations":351},"mobile","Mobil","Mobile",7,[352,353,356,359,362],{"key":233,"name":234,"field":347},{"key":354,"name":355,"field":347},"ios-swift","iOS (Swift)",{"key":357,"name":358,"field":347},"android-kotlin","Android (Kotlin)",{"key":360,"name":361,"field":347},"flutter","Flutter",{"key":363,"name":364,"field":347},"react-native","React Native",{"key":366,"name_tr":367,"name_en":368,"sort":369,"specializations":370},"security","Güvenlik","Security",8,[371,372,375,378,381,384],{"key":233,"name":234,"field":366},{"key":373,"name":374,"field":366},"appsec","AppSec",{"key":376,"name":377,"field":366},"offensive-pentest","Offensive \u002F Pentest",{"key":379,"name":380,"field":366},"cloud-security","Cloud Security",{"key":382,"name":383,"field":366},"devsecops","DevSecOps",{"key":385,"name":386,"field":366},"blue-team-incident","Blue Team \u002F Incident",{"key":388,"name_tr":389,"name_en":390,"sort":391,"specializations":392},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[393,394,397,400,403],{"key":233,"name":234,"field":388},{"key":395,"name":396,"field":388},"test-automation","Test Automation",{"key":398,"name":399,"field":388},"sdet","SDET",{"key":401,"name":402,"field":388},"performance-testing","Performance Testing",{"key":404,"name":405,"field":388},"mobile-qa","Mobile QA",{"key":407,"name_tr":408,"name_en":408,"sort":409,"specializations":410},"data-engineer","Data Engineer",10,[411,412,415,418],{"key":233,"name":234,"field":407},{"key":413,"name":414,"field":407},"pipelines-etl","Pipelines \u002F ETL",{"key":416,"name":417,"field":407},"streaming","Streaming",{"key":419,"name":420,"field":407},"warehousing","Warehousing",{"key":5,"name_tr":422,"name_en":6,"sort":423,"specializations":424},"Oyun Geliştirme",11,[425,426,427,428,429,430],{"key":233,"name":234,"field":5},{"key":142,"name":143,"field":5},{"key":145,"name":146,"field":5},{"key":132,"name":133,"field":5},{"key":136,"name":137,"field":5},{"key":139,"name":140,"field":5},{"key":432,"name_tr":433,"name_en":433,"sort":434,"specializations":435},"ml-engineer","ML Engineer",12,[436,437],{"key":233,"name":234,"field":432},{"key":438,"name":439,"field":432},"classical-ml","Classical ML",[14,15,16],{"junior":442,"mid":444,"senior":445},{"questions":443,"median_sec":3},20,{"questions":443,"median_sec":3},{"questions":443,"median_sec":3},[447,10],"tr",[449,450],"google","github",27600,true]