[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr: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","Oyun Geliştirme","","game-rendering-pipeline","Game Rendering Pipeline","tr",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,"Bir oyun karesinin sahne verisinden bitmiş bir piksele giden aşamalarını en iyi hangi sıra tanımlar?",[47,50,53,56],{"key":48,"text":49},"a","Piksel gölgeleme, geometri gönderimi, sahne dolaşımı, rasterizasyon",{"key":51,"text":52},"b","Sahne\u002Fgeometri gönderimi, dönüşüm, rasterizasyon, piksel işleme",{"key":54,"text":55},"c","Rasterizasyon, sahne yükleme, geometri ayıklama, doku yükleme",{"key":57,"text":58},"d","Piksel işleme, sahne dolaşımı, geometri gruplama, dönüşüm","Kavramsal render pipeline, sahne\u002Fgeometri verisinden başlar, ekran uzayına dönüşümden geçer, rasterizasyon şekilleri aday piksellere çevirir ve son olarak piksel başına işlem nihai rengi belirler. Diğer sıralamalarda girdisi henüz oluşmamış bir aşama daha önce gelir.",{"id":61,"topic":9,"difficulty":44,"body":62,"options":63,"correct_key":57,"explanation":72},"019f6b28-1776-7871-8a6d-a5829f5611f9","Render pipeline'da rasterizasyon aşaması temelde ne yapar?",[64,66,68,70],{"key":48,"text":65},"Diskteki doku verisini belleğe yükler",{"key":51,"text":67},"Hangi nesnelerin kamera görüş hacminin içinde olduğuna karar verir",{"key":54,"text":69},"Her nesne için nihai aydınlatma denklemini hesaplar",{"key":57,"text":71},"Geometrik şekilleri aday ekran piksellerine çevirir","Rasterizasyon, zaten ekran uzayına dönüştürülmüş geometrik ilkelleri alır ve hangi pikselleri kapladıklarını belirleyip sonraki aşamaların gölgeleyeceği fragment'ları üretir. Doku yükleme, görünürlük kararı ve tam aydınlatma ayrı konulardır.",{"id":74,"topic":9,"difficulty":75,"body":76,"options":77,"correct_key":48,"explanation":86},"019f6b28-1777-708e-8625-76016bec0394",2,"Render pipeline nesneleri rasterize etmeden önce neden dönüştürür, ham sahne koordinatlarını doğrudan rasterize etmez?",[78,80,82,84],{"key":48,"text":79},"Rasterizasyon ekran-uzayı koordinatlarıyla çalışır, bu yüzden şekiller önce dönüştürülmelidir",{"key":51,"text":81},"Çünkü dönüşüm, nesnenin dokusunu belleğe yükleyen adımdır",{"key":54,"text":83},"Çünkü rasterizasyon aksi halde karede yalnızca bir üçgen işleyebilir",{"key":57,"text":85},"Çünkü pipeline nesneleri her zaman oluşturulma sırasına göre render eder ve dönüşüm bu sırayı zorunlu kılar","Rasterizasyonun bir şeklin 2D ekran ızgarasında nereye düştüğünü bilmesi gerekir; bu da dünya-uzayı geometrisinin önce görüş ve projeksiyon dönüşümleriyle ekran uzayına çevrilmesini gerektirir. Doku yükleme ve oluşturulma sırası bu gereklilikle ilgisizdir.",{"id":88,"topic":9,"difficulty":44,"body":89,"options":90,"correct_key":54,"explanation":99},"019f6b28-1777-77cd-a369-41b42974fd79","Kavramsal düzeyde bir draw call (çizim çağrısı) nedir?",[91,93,95,97],{"key":48,"text":92},"Oyunun saniyede kaç kare çalıştığını hesaplayan bir fonksiyon",{"key":51,"text":94},"Oyuncunun giriş cihazından kamerayı hareket ettirmek için gönderilen bir istek",{"key":54,"text":96},"Belirli ayarlarla geometri çizmesi için render donanımına verilen bir komut",{"key":57,"text":98},"Disk'ten seviye verisini yükleyen bir arka plan iş parçacığı","Draw call, render donanımına 'bu geometriyi şimdi, şu anki yapılandırmayla çiz' diyen komuttur. Kare hızı ölçümü, girdi işleme ya da disk akışı ile ilgisi yoktur; bunlar ayrı sistemlerdir.",{"id":101,"topic":9,"difficulty":75,"body":102,"options":103,"correct_key":54,"explanation":112},"019f6b28-1777-7dfc-a978-a95005470b9b","Kare başına çok sayıda draw call vermek neden pahalı kabul edilir?",[104,106,108,110],{"key":48,"text":105},"Çünkü her draw call çizdiği geometriyi sonradan kalıcı olarak siler",{"key":51,"text":107},"Çünkü draw call'lar tasarım gereği saniyede yalnızca bir kez verilebilir",{"key":54,"text":109},"Draw call ek yükü, sayı arttıkça çizimin ötesine birikir",{"key":57,"text":111},"Çünkü her draw call çalışırken oyun simülasyonu duraklatılmak zorundadır","Asıl çizim işinin ötesinde, her draw call durum kurulumu ve komut gönderimi için sabit bir ek yük taşır. Binlerce küçük draw call olduğunda, geometri basit olsa bile bu çağrı-başına ek yük toplam kare maliyetine hakim olabilir.",{"id":114,"topic":9,"difficulty":75,"body":115,"options":116,"correct_key":51,"explanation":125},"019f6b28-1778-7691-ac2d-5916493af8ea","Bir sahnede 5.000 küçük obje her biri kendi ayrı draw call'u olarak gönderiliyor ve toplam poligon sayısı mütevazı olsa bile kare hızı düşük. En olası kavramsal sebep nedir?",[117,119,121,123],{"key":48,"text":118},"GPU aynı anda 5.000'den fazla poligonu bellekte tutamaz",{"key":51,"text":120},"Yüksek draw call sayısı, kareyi domine eden ek yük yaratıyor",{"key":54,"text":122},"Sahnede kameranın işleyemeyeceği kadar çok ışık kaynağı var",{"key":57,"text":124},"Objeler çok fazla giriş kontrolcüsü bağlaması kullanıyor","Düşük poligon sayısına rağmen binlerce ayrı draw call ile düşük kare hızı, klasik draw-call ek yükü belirtisidir: maliyet geometrik karmaşıklıkta değil, gönderim sayısındadır. Bellek kapasitesi, ışık sayısı ve giriş bağlamaları ilgisiz belirtilerdir.",{"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":6,"name_en":301,"sort":302,"specializations":303},"Game Development",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},[10,318],"en",[320,321],"google","github",21750,true]