[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:game-dev\u002Fgfx-textures-sampling-compression":4,"config":232},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","Oyun Geliştirme","","gfx-textures-sampling-compression","Gfx Textures Sampling Compression","tr",75,2850,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,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":55,"name":56,"count":11},"gfx-shadows-depth-precision","Gfx Shadows Depth Precision",{"key":8,"name":9,"count":11},{"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,180,193,206,219],{"id":149,"topic":9,"difficulty":150,"body":151,"options":152,"correct_key":157,"explanation":165},"01a01705-2063-735b-9961-e1263b7bd6e8",1,"Bir tekstür ekranda kaynak çözünürlüğüne göre çok daha küçük gösterildiğinde (minification), yüksek frekanslı detay kareler arasında parıldayabilir ya da moiré deseni oluşturabilir. Tam olarak bunu önlemek için tekstürü birden çok çözünürlükte önceden filtreleyen teknik hangisidir?",[153,156,159,162],{"key":154,"text":155},"a","Supersampling",{"key":157,"text":158},"b","Mipmapping",{"key":160,"text":161},"c","Anisotropic filtering",{"key":163,"text":164},"d","Atlas paketleme","Mipmapping, bir tekstürün art arda yarı boyutlu ve önceden filtrelenmiş kopyalarından bir zincir üretir. Minification sırasında GPU tam çözünürlük yerine uygun küçüklükteki bir seviyeyi örnekler; yüksek frekanslı detay zaten ortalanmış olduğundan parıldamaya dönüşemez.",{"id":167,"topic":9,"difficulty":168,"body":169,"options":170,"correct_key":160,"explanation":179},"01a01705-2065-78a1-93c6-a650159b1c95",2,"Bir tekstürün taban seviyesinin üzerine, 1x1'e kadar tam bir mip zinciri ekleniyor. Bu zincir, sadece taban seviyeye kıyasla toplam belleği yaklaşık ne kadar artırır?",[171,173,175,177],{"key":154,"text":172},"Yaklaşık %100",{"key":157,"text":174},"Yaklaşık %50",{"key":160,"text":176},"Yaklaşık %33",{"key":163,"text":178},"Yaklaşık %10","Her mip seviyesi bir üstündekinin 1\u002F4'ü kadar teksel içerir, dolayısıyla toplam bellek taban * (1 + 1\u002F4 + 1\u002F16 + ...) = taban * 4\u002F3'tür. Taban seviyenin ötesindeki kuyruk, taban boyutunun yaklaşık üçte biri, yani yaklaşık %33 fazladır.",{"id":181,"topic":9,"difficulty":168,"body":182,"options":183,"correct_key":154,"explanation":192},"01a01705-2066-7b44-b454-061f5898d15d","GPU, bir fragment için hangi mip seviyesinin örnekleneceğine karar verirken öncelikli olarak hangi büyüklüğe bakar?",[184,186,188,190],{"key":154,"text":185},"UV koordinatlarının ekran pikseli başına ne hızla değiştiği",{"key":157,"text":187},"Kameradan yüzeye olan dünya-uzayı mesafesi",{"key":160,"text":189},"Tekstür dosyasının diskteki bayt cinsinden boyutu",{"key":163,"text":191},"Fragment shader'daki komut sayısı","Mip seviyesi (LOD), UV koordinatlarının komşu ekran pikselleri arasında ne hızla değiştiğinden türetilir: hızlı değişim tekstürün minify edildiği, yani küçük bir mip seçilmesi gerektiği anlamına gelir; yavaş değişim ise doğal boyuta yakın olunduğunu gösterir. Dünya-uzayı mesafesi bununla ilişkilidir ama donanımın fiilen ölçtüğü büyüklük bu değildir.",{"id":194,"topic":9,"difficulty":168,"body":195,"options":196,"correct_key":163,"explanation":205},"01a01705-2067-75e3-b4c6-2a2bac68689d","Uzaktaki, yoğun detaylı bir zemin tekstürü kamera hareket ettikçe belirgin biçimde parıldıyor ve titriyor, oysa aynı tekstürün yakın yüzeylerdeki hâli sorunsuz görünüyor. En olası neden nedir?",[197,199,201,203],{"key":154,"text":198},"Tekstürün wrap modu repeat yerine clamp-to-edge olarak ayarlanmış",{"key":157,"text":200},"Tekstür, sıkıştırılmamış yerine blok-sıkıştırılmış bir format kullanıyor",{"key":160,"text":202},"Taban mip seviyesinin çözünürlüğü çok yüksek",{"key":163,"text":204},"Mip zinciri yok, ya da sampler minification için onu kullanmıyor","Aynı tekstürün yakında sorunsuz göründüğü ama uzakta parıldadığı\u002Ftitrediği durum, minification aliasing'in klasik belirtisidir: mip zinciri yoksa (ya da sampler onu kullanmıyorsa) GPU, tekstür ekranda çok daha az piksel kaplasa bile tam çözünürlükten point\u002Fbilinear örnekleme yapmak zorunda kalır ve yüksek frekanslı detay karadan kareye alias olur.",{"id":207,"topic":9,"difficulty":168,"body":208,"options":209,"correct_key":160,"explanation":218},"01a01705-206a-7419-9f94-b4abab718b0c","```glsl\n\u002F\u002F pseudo host-taraflı sampler kurulumu\nglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);\n\u002F\u002F GL_TEXTURE_MAG_FILTER dokunulmadan GL varsayılanında bırakılıyor\n```\nBu tekstür magnify edildiğinde (doğal çözünürlüğünden daha yakından görüntülendiğinde) fiilen hangi filtre uygulanır?",[210,212,214,216],{"key":154,"text":211},"Minification filtresiyle aynı olan GL_LINEAR_MIPMAP_LINEAR",{"key":157,"text":213},"En yakın mip seviyesi seçilir ve GL_NEAREST ile örneklenir",{"key":160,"text":215},"Magnification'ın varsayılan filtresi olan GL_LINEAR",{"key":163,"text":217},"Hiçbir filtreleme uygulanmaz, ham tekseller gösterilir","GL_TEXTURE_MIN_FILTER ile GL_TEXTURE_MAG_FILTER birbirinden bağımsız state'lerdir ve mipmap modları yalnızca minification tarafında bulunur. Kod yalnızca min filtreyi ayarlıyor, dolayısıyla magnification kendi varsayılanı olan GL_LINEAR'a döner.",{"id":220,"topic":9,"difficulty":221,"body":222,"options":223,"correct_key":154,"explanation":231},"01a01705-206b-7710-8872-ae44b64c2594",3,"Bir zemin tekstürü çok eğik\u002Fsıyırma açısıyla görüntülendiğinde, mipmap zinciri ve trilinear filtreleme doğru kurulmuş olsa bile olması gerekenden belirgin biçimde daha bulanık görünüyor. Bunu düzeltmek için özel olarak tasarlanmış özellik hangisidir?",[224,225,227,229],{"key":154,"text":161},{"key":157,"text":226},"Daha yüksek taban tekstür çözünürlüğü",{"key":160,"text":228},"Daha küçük ayak izli blok sıkıştırma",{"key":163,"text":230},"Daha yakın near clip plane","Standart mip seçimi, minification oranının her yönde aynı olduğunu varsayar; oysa çok eğik bir yüzey ekranın bir yönünde diğerinden çok daha fazla minify edilir. Tek bir izotropik mip seviyesi seçmek, daha az minify edilen yönü gereksiz yere bulanıklaştırır. Anisotropic filtering, uzamış bu ayak izi boyunca birden çok örnek alarak o yönü keskin tutar.",{"fields":233,"seniorities":445,"interview_shapes":446,"locales":451,"oauth":453,"question_count":456,"coach_enabled":457,"jd_match_enabled":457},[234,259,279,295,319,332,351,370,392,411,426,436],{"key":235,"name_tr":236,"name_en":236,"sort":150,"specializations":237},"backend","Backend",[238,241,244,247,250,253,256],{"key":239,"name":240,"field":235},"general","Genel",{"key":242,"name":243,"field":235},"go","Go",{"key":245,"name":246,"field":235},"python","Python",{"key":248,"name":249,"field":235},"java","Java",{"key":251,"name":252,"field":235},"csharp","C#\u002F.NET",{"key":254,"name":255,"field":235},"nodejs","Node.js",{"key":257,"name":258,"field":235},"php","PHP",{"key":260,"name_tr":261,"name_en":261,"sort":168,"specializations":262},"frontend","Frontend",[263,264,267,270,273,276],{"key":239,"name":240,"field":260},{"key":265,"name":266,"field":260},"javascript","JavaScript",{"key":268,"name":269,"field":260},"typescript","TypeScript",{"key":271,"name":272,"field":260},"react","React",{"key":274,"name":275,"field":260},"vue","Vue",{"key":277,"name":278,"field":260},"angular","Angular",{"key":280,"name_tr":281,"name_en":281,"sort":221,"specializations":282},"fullstack","Fullstack",[283,284,285,286,287,288,289,290,291,292,293,294],{"key":239,"name":240,"field":280},{"key":242,"name":243,"field":235},{"key":245,"name":246,"field":235},{"key":248,"name":249,"field":235},{"key":251,"name":252,"field":235},{"key":254,"name":255,"field":235},{"key":257,"name":258,"field":235},{"key":265,"name":266,"field":260},{"key":268,"name":269,"field":260},{"key":271,"name":272,"field":260},{"key":274,"name":275,"field":260},{"key":277,"name":278,"field":260},{"key":296,"name_tr":297,"name_en":297,"sort":298,"specializations":299},"devops-cloud","DevOps \u002F Cloud",4,[300,301,304,307,310,313,316],{"key":239,"name":240,"field":296},{"key":302,"name":303,"field":296},"aws","AWS",{"key":305,"name":306,"field":296},"gcp","GCP",{"key":308,"name":309,"field":296},"azure","Azure",{"key":311,"name":312,"field":296},"kubernetes","Kubernetes",{"key":314,"name":315,"field":296},"terraform","Terraform",{"key":317,"name":318,"field":296},"linux","Linux",{"key":320,"name_tr":321,"name_en":321,"sort":322,"specializations":323},"ai-engineer","AI Engineer",5,[324,325,326,329],{"key":239,"name":240,"field":320},{"key":245,"name":246,"field":320},{"key":327,"name":328,"field":320},"llm-rag","LLM\u002FRAG",{"key":330,"name":331,"field":320},"mlops","MLOps",{"key":333,"name_tr":334,"name_en":335,"sort":336,"specializations":337},"database","Veritabanı","Database",6,[338,339,342,345,348],{"key":239,"name":240,"field":333},{"key":340,"name":341,"field":333},"postgresql","PostgreSQL",{"key":343,"name":344,"field":333},"mysql","MySQL",{"key":346,"name":347,"field":333},"mongodb","MongoDB",{"key":349,"name":350,"field":333},"redis","Redis",{"key":352,"name_tr":353,"name_en":354,"sort":355,"specializations":356},"mobile","Mobil","Mobile",7,[357,358,361,364,367],{"key":239,"name":240,"field":352},{"key":359,"name":360,"field":352},"ios-swift","iOS (Swift)",{"key":362,"name":363,"field":352},"android-kotlin","Android (Kotlin)",{"key":365,"name":366,"field":352},"flutter","Flutter",{"key":368,"name":369,"field":352},"react-native","React Native",{"key":371,"name_tr":372,"name_en":373,"sort":374,"specializations":375},"security","Güvenlik","Security",8,[376,377,380,383,386,389],{"key":239,"name":240,"field":371},{"key":378,"name":379,"field":371},"appsec","AppSec",{"key":381,"name":382,"field":371},"offensive-pentest","Offensive \u002F Pentest",{"key":384,"name":385,"field":371},"cloud-security","Cloud Security",{"key":387,"name":388,"field":371},"devsecops","DevSecOps",{"key":390,"name":391,"field":371},"blue-team-incident","Blue Team \u002F Incident",{"key":393,"name_tr":394,"name_en":395,"sort":396,"specializations":397},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[398,399,402,405,408],{"key":239,"name":240,"field":393},{"key":400,"name":401,"field":393},"test-automation","Test Automation",{"key":403,"name":404,"field":393},"sdet","SDET",{"key":406,"name":407,"field":393},"performance-testing","Performance Testing",{"key":409,"name":410,"field":393},"mobile-qa","Mobile QA",{"key":412,"name_tr":413,"name_en":413,"sort":414,"specializations":415},"data-engineer","Data Engineer",10,[416,417,420,423],{"key":239,"name":240,"field":412},{"key":418,"name":419,"field":412},"pipelines-etl","Pipelines \u002F ETL",{"key":421,"name":422,"field":412},"streaming","Streaming",{"key":424,"name":425,"field":412},"warehousing","Warehousing",{"key":5,"name_tr":6,"name_en":427,"sort":428,"specializations":429},"Game Development",11,[430,431,432,433,434,435],{"key":239,"name":240,"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":437,"name_tr":438,"name_en":438,"sort":439,"specializations":440},"ml-engineer","ML Engineer",12,[441,442],{"key":239,"name":240,"field":437},{"key":443,"name":444,"field":437},"classical-ml","Classical ML",[14,15,16],{"junior":447,"mid":449,"senior":450},{"questions":448,"median_sec":3},20,{"questions":448,"median_sec":3},{"questions":448,"median_sec":3},[10,452],"en",[454,455],"google","github",27600,true]