📅 BÖLÜM 1

Bilgisayar Grafiğine Giriş

Piksel nedir? Ekrana bir görüntü nasıl oluşur? Raster vs Vektör? GPU ne işe yarar?

📖 Teori: 2 saat
💻 Uygulama: 2 saat
🛠️ Araçlar: GIMP, Photopea

📅 Dönemlik Ders Planı (Tentative)

⚠️ Bu plan taslaktır (tentative) ve dönem içinde değişebilir!

Aşağıdaki plan, dersin genel gidişatını göstermek amacıyla hazırlanmıştır. Öğrenci ihtiyaçlarına, ilerleme hızına ve güncel gelişmelere bağlı olarak konu sıralaması ve içeriklerde değişiklikler yapılabilir. Sınav haftalarında ders işlenmez.

Hafta Konu Teori Uygulama / Lab
1Bilgisayar Grafiğine GirişPiksel, Raster vs Vektör, GPU vs CPU, Grafik PipelineGIMP ile piksel atölyesi
2Renk TeorisiRGB, HSB, Alpha, Renk Paletleri, ErişilebilirlikGIMP / Coolors.co ile renk çalışması
3Dijital Görüntü TemelleriÇözünürlük, DPI/PPI, Dosya Formatları, SıkıştırmaSprite hazırlama
42D Dönüşümler ve Koordinat SistemleriTranslation, Rotation, Scaling, Pivot, Matris TemelleriDönüşüm uygulamaları
5Pixel Art ve 2D Asset OluşturmaPixel Art İlkeleri, Dithering, Karakter TasarımıSprite Sheet oluşturma
62D Animasyon TemelleriFrame-by-frame, Tweening, Easing, Animasyon İlkeleriAnimasyon uygulaması
7Tilemap ve Seviye TasarımıTile Sistemi, Tileset Tasarımı, ParallaxTiled Map Editor
8📝 ARA SINAVBu hafta ders işlenmez — tüm süre sınava ayrılmıştır
93D Grafik Temelleri3D Koordinatlar, Mesh, Vertex, PolygonBlender'a giriş
103D ModellemeBox Modeling, Extrude, ModifierProp Modelleme
11Materyal, Texture ve UV MappingTexture, UV Mapping, Normal Map, PBR TemelleriBlender UV workshop
12Işık ve RenderIşık Türleri, Gölgeler, Ambient OcclusionRender uygulaması
13Shader ve Post-ProcessingShader Kavramı, Post-Process EfektleriShadertoy
14Grafik Optimizasyonu ve PipelineDraw Call, Batching, LOD, Atlas, ProfilingProfiling uygulaması
15Final Proje SunumlarıProje Sunumları + Akran Değerlendirmesi
Final📝 FİNAL SINAVIDers işlenmez — tüm dönem konularından sınav

📊 Değerlendirme (Tentative)

EtkinlikAdetKatkı %
Haftalık Lab Katılım & Çalışmalar~1015%
Ödevler (GitHub Classroom)320%
Ara Sınav (Teori + Uygulama)125%
Final Projesi140%

⚖️ Yasal Mevzuat ve Akademik Dürüstlük

⚠️ Kopya ve İntihal Uyarısı

Bu ders kapsamındaki tüm sınavlar, ödevler ve projeler 2547 sayılı Yükseköğretim Kanunu ve ilgili yönetmelikler çerçevesinde değerlendirilir. Sınavlarda kopya çekmek, kopya vermek veya buna teşebbüs etmek disiplin suçudur.

  • 📌 Kopya fiili tespit edildiğinde ilgili sınav geçersiz sayılır ve tutanak tutulur.
  • 📌 Kınama veya daha ağır disiplin cezalarına yol açabilir; tekrarlayan durumlarda uzaklaştırma cezası uygulanabilir.
  • 📌 Ödev ve projelerde intihal (plagiarism) de aynı kapsamda değerlendirilir.

📄 2547 Sayılı Yükseköğretim Kanunu: PDF İndir

⚠️ Tüm öğrenciler, kayıtlı oldukları üniversitenin öğrenci disiplin yönetmeliğini okumakla yükümlüdür.

1. Bilgisayar Grafiği Nedir? 🤔

Bilgisayar grafiği, bilgisayar kullanarak görsel içerik oluşturma, düzenleme ve gösterme bilimidir. Şu an baktığınız bu web sayfası bile bilgisayar grafiğinin bir ürünüdür!

Tanımı biraz daha açalım: Bilgisayar grafiği, verileri (sayılar, koordinatlar, renk kodları) görsel temsillere dönüştürme sürecidir. Mesela bir oyun motorunda karakterinizin pozisyonu (x=150, y=300) gibi soyut bir veridir. Bilgisayar grafiği bu sayıyı ekranda görünür bir karakter haline getirir. Aslında gördüğünüz her şey — her piksel, her renk — arka planda bir sayıdır.

🧠 Düşünün

Bugün bilgisayar grafiklerinin olmadığı bir dünya hayal edin. Telefon ekranınız, oyunlar, filmler, Instagram, Google Maps... Hepsi bilgisayar grafiği sayesinde çalışıyor. Bilgisayar grafiği olmasa, bilgisayarlar hâlâ 1970'lerdeki gibi sadece metin (text) tabanlı terminaller olurdu!

Bilgisayar grafiği birçok alanda kullanılır:

🎮 Oyun Geliştirme

Karakterler, dünyalar, efektler, UI — bir oyundaki gördüğünüz her şey bilgisayar grafiği. 2D sprite'lardan 3D modellere, partikül efektlerinden gölgelendirmeye kadar her görsel eleman bu disiplinin ürünüdür.

Örnekler: Unity, Unreal Engine, Godot ile yapılan her oyun

🎬 Film ve Animasyon

Pixar filmleri tamamen bilgisayar grafiği ile yapılır. Marvel filmlerindeki VFX (görsel efektler) olmasaydı Iron Man uçamazdı! Bir Pixar filminin tek bir karesi render edilmesi saatler sürebilir.

Örnekler: Toy Story, Avatar, Spider-Verse

📱 Arayüz Tasarımı (UI/UX)

Telefonunuzdaki her uygulama, her buton, her ikon, her animasyon bir grafik çalışması. Bir butona bastığınızda renk değişimi, bir sayfayı kaydırdığınızda akıcı geçişler — hepsi bilgisayar grafiği.

Örnekler: iOS arayüzü, Material Design, web siteleri

🏥 Tıp ve Bilim

MR ve tomografi görüntüleri, 3D organ modelleri, molekül simülasyonları, hava durumu haritaları... Bilim insanları ve doktorlar verileri görselleştirmek için bilgisayar grafiğine güvenir.

Örnekler: 3D beyin haritaları, cerrahi simülasyonlar

🏗️ Mimarlık ve Mühendislik

Binalar inşa edilmeden önce 3D olarak modellenir ve fotorealistik render'lar üretilir. CAD programları, iç mekan tasarımı, şehir planlaması — hepsi bilgisayar grafiği kullanır.

Örnekler: AutoCAD, SketchUp, V-Ray render'lar

🤖 Sanal/Artırılmış Gerçeklik

VR (sanal gerçeklik) ve AR (artırılmış gerçeklik) tamamen bilgisayar grafiğine dayanır. Meta Quest, Apple Vision Pro gibi cihazlar gerçek zamanlı 3D grafikler üretir.

Örnekler: Beat Saber, Pokémon GO, IKEA Place

📌 Bu Derste Ne Yapacağız?

Biz bu derste ağırlıklı olarak oyun geliştirme perspektifinden bilgisayar grafiğini öğreneceğiz. Ama öğreneceğiniz kavramlar (piksel, renk, animasyon, shader...) tüm alanlarda geçerli. Bilgisayar grafiği öğrenmek, sadece oyun yapmak değil — dijital dünyanın nasıl çalıştığını anlamak demek.

Bilgisayar Grafiğinin Alt Dalları

Bilgisayar grafiği çok geniş bir alan. İşte ana alt dalları:

🖼️ 2D Grafikler

Düz yüzeyde çalışma: piksel tabanlı görüntüler, sprite'lar, UI elemanları, tipografi. Bu dersin ilk yarısında buna odaklanacağız.

🧊 3D Grafikler

Üç boyutlu uzayda modelleme, texture kaplama, aydınlatma ve render. Dersin ikinci yarısında Blender ile öğreneceğiz.

🎥 Gerçek Zamanlı Render

Oyunlarda olduğu gibi her kare (frame) anında hesaplanır. Saniyede 30-60-120+ kare üretilmelidir.

🖨️ Offline Render

Pixar filmlerinde olduğu gibi tek bir karenin hesaplanması dakikalar/saatler sürer ama sonuç çok gerçekçi olur.

💡 Gerçek Zamanlı vs Offline

Oyunlarda gerçek zamanlı (real-time) render kullanılır — her kare anında hesaplanmalıdır, yoksa oyun donar. Filmlerde ise offline render kullanılır — saatler sürer ama kalite çok yüksek olur. Oyun motorları (Unity, Unreal) gerçek zamanlı, Blender'ın Cycles motoru ise offline render yapar. İlginç olan şu: oyun grafikleri o kadar ilerledi ki artık gerçek zamanlı render bile film kalitesine yaklaşıyor!

2. Piksel: Dijital Dünyanın Tuğlası 🧱

Bilgisayar ekranında gördüğünüz her şey piksellerden oluşur. Piksel (Picture Element — "resim elemanı"), ekrandaki en küçük renk noktasıdır.

💡 Basit Analoji

Pikselleri bir mozaik gibi düşünün. Uzaktan baktığınızda güzel bir resim görürsünüz, ama yakınlaştırınca küçük renkli kareler olduğunu fark edersiniz. İşte her bir kare bir pikseldir. Ya da LEGO düşünün — küçük tuğlalarla büyük yapılar oluşturuyorsunuz. Piksel de ekranın LEGO tuğlasıdır.

Bir Piksel Neyi Bilir?

Her bir piksel aslında çok basit bir şeydir — sadece bir renk değeri tutar. Hiçbir piksel "ben bir yüzün parçasıyım" bilmez. Her piksel tek başına sadece "ben kırmızıyım" veya "ben koyu maviyim" der. Ama milyonlarca piksel yan yana gelince, bizim gözümüz onları anlamlı bir görüntü olarak algılar.

🔬 Pikselin Anatomisi

Bir pikselin temel özellikleri:

  • Pozisyon (x, y): Ekrandaki satır ve sütun konumu. Sol üst köşe genellikle (0, 0)'dır.
  • Renk değeri: Genellikle RGB formatında — üç sayı ile ifade edilir (örn: 255, 0, 0 = kırmızı)
  • Alpha (saydamlık): Opsiyonel — pikselin ne kadar saydam olduğu
  • Bit derinliği: Her renk kanalının kaç bit ile ifade edildiği (genellikle 8-bit = 0-255)
📌 Koordinat Sistemi Dikkat!

Matematikteki koordinat sisteminden farklı olarak, bilgisayar grafiklerinde Y ekseni aşağı doğru artar! Sol üst köşe (0,0), sağ alt köşe (genişlik, yükseklik). Bu başta kafa karıştırıcı olabilir ama alışınca çok mantıklıdır — çünkü yazıyı da soldan sağa, yukarıdan aşağı okuruz.

🔬 İnteraktif Demo: Pikselleri Keşfet
Fare ile çizin!

Aşağıdaki ızgarada her bir kareye tıklayarak piksel piksel bir şey çizin. Ekranınızdaki her görüntü tam olarak böyle çalışır — sadece çok daha fazla ve çok daha küçük piksellerle!

💡 Deneyin

Küçük bir yüz veya kalp çizmeye çalışın. Ne kadar az piksel varsa, o kadar "bloklu" görünür. Bu yüzden eski oyunlar (Pac-Man, Mario) bloklu görünüyordu — az pikselle çalışıyorlardı!

Çözünürlük: Kaç Piksel?

Bir ekranın çözünürlüğü, yatay × dikey piksel sayısını belirtir. Çözünürlük ne kadar yüksekse, görüntü o kadar keskin ve detaylı olur, çünkü aynı alana daha fazla piksel sığar ve her piksel daha küçük olur.

Çözünürlük Adı Piksel Sayısı Toplam Piksel Nerede Kullanılır?
HD (720p) 1280 × 720 ~921.000 Eski telefonlar, web videoları
Full HD (1080p) 1920 × 1080 ~2.073.600 Çoğu monitör, TV, oyun konsolu
2K (1440p) 2560 × 1440 ~3.686.400 Oyun monitörleri, iyi telefonlar
4K (2160p) 3840 × 2160 ~8.294.400 Yeni TV'ler, PS5/Xbox Series X
8K 7680 × 4320 ~33.177.600 Sinema, yeni nesil (çok nadir)
🧠 Düşünün

Full HD bir ekranda 2 milyondan fazla piksel var ve bilgisayar her bir pikselin rengini saniyede en az 30-60 kez yeniden hesaplıyor. Bu muazzam bir iş! Saniyede 60 FPS (frame per second) ile Full HD render = saniyede 124 milyon piksel renk hesabı. 4K'da bu rakam 498 milyona çıkıyor! İşte bu yüzden GPU denen özel bir donanıma ihtiyaç var.

DPI ve PPI: Piksel Yoğunluğu

Aynı çözünürlük farklı boyutlardaki ekranlarda farklı görünür. PPI (Pixels Per Inch) = bir inç'e kaç piksel sığdığı.

💡 Oyun Geliştirmede Çözünürlük

Bir oyun geliştirirken hedef çözünürlüğü belirlemek önemlidir. Pixel art oyunlar genellikle düşük çözünürlükte (320×180, 640×360) tasarlanıp büyütülür. 3D oyunlar ise genellikle 1080p veya 4K hedefler. Düşük çözünürlükte çalışmak sanatsal bir tercih olabilir — Celeste 320×180'de tasarlanmıştır!

📐 İnteraktif Demo: Çözünürlük Farkı

Slider'ı hareket ettirerek aynı görüntünün farklı çözünürlüklerde nasıl göründüğünü karşılaştırın. Dikkat edin: az piksel = bloklu, çok piksel = pürüzsüz.

8×8

Az piksel = bulanık/bloklu görüntü · Çok piksel = keskin görüntü

Piksel ve Bellek İlişkisi

Her pikselin rengi bellekte (RAM veya VRAM) saklanır. Bir piksel için gereken bellek, bit derinliğine bağlıdır:

FormatBit/PikselRenk Sayısı1080p Görüntü Boyutu
1-bit (siyah/beyaz)12~253 KB
8-bit (indeksli)8256~2 MB
24-bit RGB (True Color)2416.7 milyon~6 MB
32-bit RGBA (+ alpha)3216.7 milyon + saydamlık~8 MB
📌 Neden Bu Önemli?

Bir oyunda onlarca texture (doku) aynı anda bellekte tutulur. Her texture aslında bir piksel dizisidir. 4K bir texture (4096×4096) RGBA formatında 64 MB yer kaplar! Bir oyunda yüzlerce texture varsa, bu hızla gigabyte'lara ulaşır. Bu yüzden texture sıkıştırma (DXT, ETC, ASTC) çok önemlidir — ilerideki haftalarda göreceğiz.

3. Raster vs Vektör Grafikler ⚔️

Bilgisayar grafiklerinde görüntüleri oluşturmanın iki temel yaklaşımı vardır. Bu ikisini anlamak, doğru aracı doğru iş için seçmeniz açısından çok önemlidir.

Raster (Bitmap) Grafikler

Raster grafikler, piksel ızgarasından oluşur. Her piksel bir renk değeri tutar. Fotoğraf makinenizle çektiğiniz her fotoğraf, telefonunuzdaki her ekran görüntüsü, oyunlardaki sprite'lar — hepsi raster grafiktir.

Raster görsellerin en büyük dezavantajı: büyütüldüklerinde kalite kaybı yaşanır (pikselleme / bulanıklaşma). Çünkü orijinal pikseller arasına yeni bilgi eklenemez, var olan pikseller sadece büyütülür.

Vektör Grafikler

Vektör grafikler, pikseller yerine matematiksel formüllerle tanımlanır. Bir daire "merkez noktası (200, 200), yarıçap 50, renk kırmızı" gibi bir formülle ifade edilir. Ekrana çizilmesi gerektiğinde, bilgisayar bu formülü o anki çözünürlüğe göre piksel piksel hesaplar (rasterize eder).

En büyük avantajı: ne kadar büyütürseniz büyütün, keskin kalır. Çünkü formül her boyutta yeniden hesaplanır. Bu yüzden logolar, fontlar ve ikonlar genellikle vektöreldir.

🟦 Raster (Piksel Tabanlı)
🔵 Vektör (Matematik Tabanlı)
Özellik Raster (Bitmap) Vektör
Yapı taşı Piksel (küçük renk noktaları) Matematiksel nesneler (noktalar, çizgiler, eğriler)
Yakınlaştırınca? ❌ Bulanıklaşır, pikselleşir (bloklu olur) ✅ Her zaman keskin kalır (formül yeniden hesaplanır)
Dosya boyutu Çözünürlüğe bağlı — yüksek çözünürlük = büyük dosya Karmaşıklığa bağlı — genellikle daha küçük
Fotoğraf için? ✅ Mükemmel — fotoğraflar doğası gereği piksel tabanlı ❌ Uygun değil — fotoğrafı formüllerle ifade edemezsiniz
Dosya formatları PNG, JPG/JPEG, GIF, BMP, TIFF, WebP SVG, AI, EPS, PDF (vektör içerikli)
Ne için uygun? Fotoğraflar, oyun sprite'ları, texture'lar, detaylı görseller Logolar, ikonlar, UI elemanları, fontlar, infografikler
Düzenleme araçları GIMP, Photoshop, Aseprite, Krita Illustrator, Inkscape, Figma, Affinity Designer
Oyunlarda kullanım Sprite'lar, texture'lar, arka planlar, UI görselleri UI elemanları, bazı stil seçimleri, font render
💡 Oyun Geliştirmede Hangisi?

Oyunlarda çoğunlukla raster grafikler kullanılır — sprite'lar, texture'lar, arka planlar hep piksel tabanlıdır. Ama UI elemanlarında (butonlar, menüler), logolarda ve bazı stil tercihlerinde vektör de kullanılabilir. Önemli: Oyun motoru sonuçta her şeyi piksele dönüştürür (rasterize eder) — çünkü ekran piksellerden oluşur!

🔍 İnteraktif Demo: Raster Görüntülerde Zoom Bozulması

Raster bir görüntüyü yakınlaştırdığınızda ne olur? Aşağıda bir manzara görseli var. Slider ile yakınlaştırarak piksellerin nasıl bloklu hale geldiğini gözlemleyin. Gerçek hayatta fotoğraflarınızı zoom yaptığınızda gördüğünüz "bulanıklık" veya "blok etkisi" tam olarak budur.

1x

📷 Orijinal Görüntü

🔍 Yakınlaştırılmış Bölge (pikseller görünür!)

📌 Neden Bozuluyor?

Raster görsellerde piksel sayısı sabittir. Yakınlaştırdığınızda yeni bilgi eklenemez — var olan pikseller büyütülür ve bloklar halinde görünür. Bu yüzden profesyonel fotoğrafçılar yüksek çözünürlüklü kameralarla çekim yapar. Vektör görsellerde bu sorun yoktur çünkü her zoom seviyesinde formül yeniden hesaplanır.

3.1. Dosya Formatları: Görüntüler Nasıl Saklanır? 💾

Bir görüntü oluşturduğunuzda veya fotoğraf çektiğinizde, bu veri bir şekilde dosya olarak saklanmalıdır. Farklı formatlar farklı amaçlara hizmet eder — bazıları kaliteyi korur, bazıları dosya boyutunu küçültür, bazıları saydamlık destekler. Hangi formatı ne zaman kullanacağınızı bilmek, oyun geliştirmede ve grafik tasarımda temel bir beceridir.

BMP: Sıkıştırmasız Ham Piksel Verisi

BMP (Bitmap), en eski ve en basit görüntü formatlarından biridir. Microsoft tarafından 1990'larda Windows için geliştirilmiştir. BMP'nin çalışma mantığı çok basittir: her pikselin renk değerini olduğu gibi, sıkıştırmadan saklar.

📦 BMP Dosya Yapısı

Bir BMP dosyası üç ana bölümden oluşur:

  1. Dosya Başlığı (14 byte): "BM" sihirli sayısı, dosya boyutu, veri başlangıç noktası (offset)
  2. Bilgi Başlığı (40+ byte): Genişlik, yükseklik, bit derinliği (1/4/8/24/32 bit), sıkıştırma türü
  3. Piksel Verileri: Her pikselin renk değeri, satır satır (genellikle alttan üste!). 24-bit BMP'de her piksel 3 byte = B, G, R sırasıyla
🧠 Düşünün: BMP Neden Bu Kadar Büyük?

100×100 piksellik 24-bit bir BMP görüntüsü: 100 × 100 × 3 byte = 30.000 byte (~30 KB) sadece piksel verisi + başlıklar. Bir Full HD (1920×1080) görüntü ise: 1920 × 1080 × 3 = ~5.9 MB! Hiçbir sıkıştırma olmadığı için dosyalar devasa olur. Bu yüzden günümüzde BMP neredeyse hiç kullanılmaz — ama formatın basitliği onu öğretim için mükemmel yapar.

🔬 BMP Piksel Verisi Görselleştirmesi

Aşağıdaki 4×4 piksel görüntüde her pikselin RGB değerini görebilirsiniz. BMP dosyası tam olarak bu değerleri sırasıyla saklar — ne sıkıştırma ne de kayıp, ham veri!

Piksellere tıklayarak RGB değerlerini görün

JPEG/JPG: Kayıplı Sıkıştırma Kralı

JPEG (Joint Photographic Experts Group), 1992'de geliştirilmiş ve fotoğraflar için en yaygın kullanılan formattır. JPEG'in sırrı kayıplı sıkıştırma (lossy compression) kullanmasıdır — dosya boyutunu dramatik şekilde küçültür ama karşılığında bir miktar görüntü kalitesi kaybeder.

⚙️ JPEG Nasıl Sıkıştırır?

  1. Renk Uzayı Dönüşümü: RGB → YCbCr. Y = parlaklık (luminance), Cb/Cr = renk bilgisi (chrominance). İnsan gözü parlaklık değişimlerine renk değişimlerinden daha duyarlıdır.
  2. Chroma Alt-örnekleme: Renk bilgisi (Cb, Cr) yarı çözünürlüğe düşürülür — gözümüz farkı pek algılamaz ama veri %50 azalır!
  3. 8×8 Blok DCT: Görüntü 8×8 piksellik bloklara bölünür ve her blok Ayrık Kosinüs Dönüşümü (DCT) ile frekans bileşenlerine ayrılır.
  4. Kuantizasyon: Yüksek frekanslı (ince detay) bileşenler yuvarlanır veya sıfırlanır — insan gözü bu detayları kaçırır. Kalite ayarı bunu kontrol eder!
  5. Huffman Kodlama: Son olarak, kalan veriler istatistiksel sıkıştırma ile kodlanır.
📊 İnteraktif Demo: JPEG Kalite Karşılaştırması

JPEG kalite ayarını değiştirerek sıkıştırmanın görüntüye etkisini gözlemleyin. Düşük kalitede 8×8 blok artefaktları ve renk bantlaması belirginleşir.

%90

Orijinal

JPEG Sıkıştırılmış (simüle)

⚠️ JPEG'in Zayıf Noktaları
  • Saydamlık (alpha) desteklemez! Saydam arka plan gerekiyorsa PNG kullanın.
  • Keskin kenarları bozar: Metin, logolar, pixel art gibi keskin kenarlı görsellerde blok artefaktları belirgin olur.
  • Her kaydetme kalite düşürür: JPEG'i açıp tekrar kaydetmek "nesil kaybına" yol açar — kalite her seferinde biraz daha düşer.
  • Oyunlarda sprite için kullanılmaz! Saydamlık yok + kenar bozulması = sprite'lar için PNG tercih edilir.

PNG: Kayıpsız Sıkıştırma ve Saydamlık

PNG (Portable Network Graphics), 1996'da GIF'in patent sorunlarına alternatif olarak geliştirilmiştir. PNG kayıpsız sıkıştırma (lossless compression) kullanır — dosya boyutunu küçültür ama hiçbir piksel bilgisi kaybetmez. Sıkıştırmayı açtığınızda orijinal görüntüyü birebir geri alırsınız.

⚙️ PNG Nasıl Sıkıştırır?

  1. Filtreleme: Her piksel satırı, komşu piksellere göre fark olarak kodlanır (Sub, Up, Average, Paeth filtreleri). Düz renkli alanlar çok küçük farklar üretir → sıkıştırma verimliliği artar.
  2. DEFLATE Sıkıştırma: Filtrelenmiş veriler LZ77 + Huffman kodlama ile sıkıştırılır (ZIP ile aynı algoritma). Tekrar eden desenleri bulur ve kısa kodlarla temsil eder.
  3. Alpha Kanalı: PNG, 8-bit alpha kanalı destekler — her piksel 0 (tamamen saydam) ile 255 (tamamen opak) arasında saydamlık değerine sahip olabilir.
💡 PNG vs JPEG: Ne Zaman Hangisi?
DurumTercihNeden?
Fotoğraf (web)JPEGÇok küçük dosya boyutu, saydamlık gerekmez
Oyun sprite'ıPNGSaydamlık şart, keskin kenarlar korunmalı
Logo / ikonPNG veya SVGKeskin kenarlar, saydamlık, ölçeklenebilirlik
Ekran görüntüsüPNGMetin ve UI kenarları JPEG'de bozulur
Sosyal medyaJPEGHızlı yükleme, dosya boyutu küçük
UI texturePNGSaydamlık + kalite kaybı yok

3.2. SVG: Vektör Grafiğin Web Dili 📐

SVG (Scalable Vector Graphics), W3C tarafından 2001'de standartlaştırılmış, XML tabanlı bir vektör grafik formatıdır. SVG'nin en büyük özelliği: bir metin dosyasıdır! Piksel içermez, bunun yerine şekilleri matematiksel olarak tanımlar. Herhangi bir metin editöründe açıp okuyabilir, düzenleyebilirsiniz.

🔤 SVG = Metin Tabanlı Grafik

Aşağıdaki SVG koduna bakın — bir daire, bir dikdörtgen ve bir metin:

<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
  <!-- Arka plan dikdörtgeni -->
  <rect width="200" height="200" fill="#1a1a2e" rx="10"/>

  <!-- Kırmızı daire -->
  <circle cx="100" cy="80" r="50" fill="#e94560"/>

  <!-- Yeşil dikdörtgen -->
  <rect x="60" y="140" width="80" height="40"
        fill="#00e676" rx="5"/>

  <!-- Metin -->
  <text x="100" y="175" text-anchor="middle"
        fill="white" font-size="14">SVG!</text>
</svg>
SVG!

↑ Yukarıdaki kodun tarayıcıdaki çıktısı (bu gerçek bir SVG!)

SVG Temel Şekilleri

SVG'de kullanabileceğiniz temel şekiller:

⬤ circle

<circle cx="50" cy="50" r="40"
  fill="red" stroke="white" 
  stroke-width="2"/>

cx, cy = merkez, r = yarıçap

▬ rect

<rect x="10" y="10" 
  width="100" height="60"
  fill="blue" rx="10"/>

x, y = konum, rx = köşe yuvarlama

╱ line

<line x1="0" y1="0" 
  x2="100" y2="100"
  stroke="green" 
  stroke-width="3"/>

x1,y1 → x2,y2 noktaları

⬠ polygon

<polygon 
  points="50,5 95,40 80,95 
          20,95 5,40"
  fill="gold"/>

Noktalar listesi → kapalı şekil

SVG Path: En Güçlü Araç

SVG'nin en güçlü elemanı <path>'tır. Bézier eğrileri dahil her türlü şekli çizebilir. Komutlar:

KomutAnlamıÖrnek
MMove to (başlangıç)M 10 10
LLine to (düz çizgi)L 90 90
CCubic Bézier eğrisiC 20 80, 80 80, 90 10
QQuadratic Bézier eğrisiQ 50 0, 90 50
AArc (yay)A 25 25 0 0 1 50 50
ZKapat (başlangıca dön)Z
✏️ İnteraktif SVG Editörü

Aşağıdaki SVG kodunu düzenleyin ve sonucun canlı olarak değiştiğini görün. Renkleri, boyutları, pozisyonları değiştirmeyi deneyin!

💡 SVG'nin Avantajları
  • Sonsuz ölçeklenebilir: Ne kadar büyütürseniz büyütün keskin kalır
  • Küçük dosya boyutu: Basit şekiller için PNG'den çok daha küçük
  • CSS ile stillenebilir: Renk, animasyon, hover efektleri CSS ile kontrol edilebilir
  • JavaScript ile manipüle edilebilir: Dinamik grafikler, veri görselleştirme, animasyonlar
  • Erişilebilir: Metin tabanlı olduğu için ekran okuyucular anlayabilir
  • SEO dostu: Arama motorları SVG içindeki metinleri indeksleyebilir
⚠️ SVG Ne Zaman Uygun Değildir?
  • Fotoğraflar: Milyonlarca renk geçişini vektörle ifade edemezsiniz — dosya devasa olur
  • Çok karmaşık grafikler: Detay arttıkça SVG dosya boyutu da artar ve render yavaşlar
  • Oyun sprite'ları: Oyun motorları genellikle raster texture'larla çalışır, SVG doğrudan desteklenmez

Vektör ve Raster Grafik Araçları

Grafik tasarım dünyasında onlarca araç var. İşte en popüler olanları, kategorilerine göre:

🎨 Raster (Piksel Tabanlı) Araçlar

🖼️ Adobe Photoshop

Endüstri standardı raster grafik editörü. Fotoğraf düzenleme, dijital boyama, UI tasarımı. Ücretli (abonelik).

Alternatifler: Photopea (ücretsiz, web tabanlı), Affinity Photo

🎨 Krita

Açık kaynak ve tamamen ücretsiz dijital boyama programı. Profesyonel fırça motoru, animasyon desteği, HDR boyama. Oyun asset'leri oluşturmak için mükemmel. Konsept sanatçılar ve illüstratörler tarafından seviliyor.

krita.org · Windows, Mac, Linux

🖌️ GIMP

Açık kaynak Photoshop alternatifi. Fotoğraf düzenleme, katman desteği, filtreler. Bu derste kullanacağız!

gimp.org · Windows, Mac, Linux

👾 Aseprite

Pixel art ve sprite animasyonu için özel araç. Oyun geliştiriciler arasında çok popüler. Ücretli (küçük bir ücret).

aseprite.org · Kaynak kodu açık (derleyebilirsiniz)

📐 Vektör Tabanlı Araçlar

✒️ Adobe Illustrator

Endüstri standardı vektör editörü. Logolar, ikonlar, infografikler, tipografi. Ücretli (abonelik).

🖊️ Inkscape

Açık kaynak vektör grafik editörü. SVG formatında çalışır. Illustrator'a ücretsiz alternatif. Logo ve ikon tasarımı için harika.

inkscape.org · Windows, Mac, Linux

🎯 Figma

Web tabanlı tasarım aracı. UI/UX tasarımı, prototipleme, işbirliği. Vektör tabanlı ama raster dışa aktarım da yapar. Ücretsiz plan mevcut.

figma.com · Tarayıcı + Desktop

💎 Affinity Designer

Hem vektör hem raster modunda çalışabilen hibrit araç. Tek seferlik ödeme (abonelik yok). Illustrator alternatifi.

📌 Krita Hakkında

Krita özellikle dijital boyama ve konsept art için tasarlanmış profesyonel bir araçtır. Photoshop'un fırça motoruna rakip olacak kalitede fırçalar sunar. Oyun geliştirme dünyasında konsept art, karakter tasarımı, arka plan boyama ve texture oluşturma için yaygın kullanılır. Animasyon özelliği de var — basit frame-by-frame animasyonlar yapabilirsiniz. Ve tamamen ücretsizdir!

Yaygın Dosya Formatları

📁 Raster Formatları Detaylı Karşılaştırma
FormatAlpha (Saydamlık)SıkıştırmaNe Zaman Kullan?
PNG ✅ Destekler Kayıpsız (lossless) Sprite'lar, UI, saydam görseller — oyunlarda en çok kullanılan format
JPG / JPEG ❌ Desteklemez Kayıplı (lossy) — boyut çok küçülür ama kalite düşer Fotoğraflar, arka planlar — saydamlık gerekmiyorsa
GIF ⚠️ Kısmen (1-bit: ya saydam ya değil) Kayıpsız, max 256 renk Basit animasyonlar, ama oyun geliştirmede pek kullanılmaz
WebP ✅ Destekler Hem kayıplı hem kayıpsız seçenek Web projeleri — PNG'den %25-35 daha küçük dosya boyutu
BMP ⚠️ Kısmen Sıkıştırma yok — çok büyük dosyalar Neredeyse hiç kullanılmaz, çok eski format
SVG ✅ Destekler (vektörel) Metin tabanlı — çok küçük boyut (basit şekillerde) Logolar, ikonlar, UI elemanları, web grafikleri

4. GPU vs CPU: Kim Ne İş Yapar? 🖥️

Bilgisayarınızda iki ana işlemci var. İkisi de hesaplama yapar ama çok farklı şekillerde. Bu farkı anlamak, bilgisayar grafiklerinin neden özel bir donanıma ihtiyaç duyduğunu kavramanın anahtarıdır.

🧠 CPU (İşlemci)

Central Processing Unit — Merkezi İşlem Birimi

  • Az sayıda çekirdek (4-16, en fazla 64-128 sunucularda)
  • Her çekirdek çok güçlü ve çok yönlü
  • Karmaşık, sıralı, birbirine bağımlı işler için ideal
  • Oyun mantığı, fizik hesapları, yapay zeka, ses, ağ
  • Dallanma (if/else), döngü gibi karmaşık kontrol akışında uzman

Analoji: Çok zeki bir profesör — diferansiyel denklem de çözer, makale de yazar, sınıf da yönetir — ama aynı anda sadece 1-2 iş yapabilir.

⚡ GPU (Ekran Kartı)

Graphics Processing Unit — Grafik İşlem Birimi

  • Binlerce küçük çekirdek (1000-16000+)
  • Her çekirdek daha basit ama çoğu aynı anda çalışır
  • Paralel, tekrarlayan, birbirinden bağımsız işler için ideal
  • Piksel rengi hesaplama, vertex dönüşümü, shader çalıştırma
  • Aynı işlemi aynı anda binlerce veri üzerinde uygulayabilir (SIMD)

Analoji: 10.000 kişilik bir fabrika — her işçi sadece basit bir işlem yapar (bir vidayı sıkmak gibi) ama hepsi aynı anda çalışır → muazzam üretim kapasitesi.

Neden İkisine de İhtiyaç Var?

Bir oyun çalışırken hem CPU hem GPU aynı anda çalışır, farklı görevleri paylaşırlar:

Bir Oyun Karesinde (Frame) Neler Olur?

  1. CPU — Oyun Mantığı: Oyuncu input'u oku, karakteri hareket ettir, düşman AI'ını çalıştır, çarpışma kontrolü yap, skor güncelle...
  2. CPU → GPU'ya Komut: "Bu objeleri, bu pozisyonlarda, bu kamerayla çiz" diye GPU'ya talimat gönder (draw call)
  3. GPU — Geometri: 3D modellerin köşe noktalarını (vertex) kamera perspektifine göre dönüştür
  4. GPU — Rasterizasyon: Üçgenleri piksel haline getir
  5. GPU — Piksel: Her pikselin rengini hesapla (texture, ışık, gölge, efektler)
  6. GPU → Ekran: Hesaplanan renkleri ekrana gönder

Tüm bu süreç saniyede 60 kez tekrarlanır! (60 FPS hedefinde)

📌 FPS Nedir?

FPS (Frames Per Second) = saniyede kaç kare üretildiği. İnsan gözü ~24 FPS'te akıcı hareket algılar, ama oyunlarda 30 FPS minimum, 60 FPS standart, 120-144 FPS ise "ultra akıcı" kabul edilir. Her kare için tüm pipeline baştan sona çalışır. FPS düştüğünde oyun "kasıyor" hissini verir — CPU veya GPU yetişemiyordur.

⚡ İnteraktif Demo: CPU vs GPU Çalışma Farkı

Aşağıda 1024 pikselin renginin hesaplanmasını simüle ediyoruz. CPU pikselleri teker teker (sıralı), GPU ise hepsini aynı anda (paralel) işler. Butona basarak farkı görün:

🧠 CPU (Sıralı)

Bekleniyor...

⚡ GPU (Paralel)

Bekleniyor...

📌 Neden GPU Var?

Full HD bir ekranda ~2 milyon piksel var. Her pikselin rengini saniyede 60 kez hesaplamak = saniyede ~120 milyon renk hesabı. CPU bunu tek başına yapamaz çünkü sadece birkaç çekirdeği var. GPU'nun binlerce küçük çekirdeği bu işi paralel olarak anında halleder. Bu yüzden ekran kartı olmadan modern oyun oynayamazsınız!

Popüler GPU'lar ve Tarihi

🎮 Oyun Dünyasında GPU Markaları
  • NVIDIA: GeForce serisi — RTX 4090, RTX 4070 vb. Ray tracing (ışın izleme) teknolojisini popülerleştirdi. CUDA ile yapay zeka alanında da baskın.
  • AMD: Radeon serisi — RX 7900 XT vb. Fiyat/performans odaklı. PS5 ve Xbox Series X'te AMD GPU var!
  • Intel: Arc serisi ile GPU pazarına yeni girdi. Entegre grafikleri (iGPU) çoğu laptop'ta var.
  • Apple: M1/M2/M3 çiplerinde CPU ve GPU aynı çipte (SoC). Metal API ile optimizasyon.

İlk GPU: NVIDIA GeForce 256 (1999) — "dünyanın ilk GPU'su" olarak pazarlandı. Ondan önce "3D hızlandırıcı" kartlar vardı (3dfx Voodoo gibi).

5. Grafik Pipeline'a Kuş Bakışı 🔄

Bir oyunda "ekranda bir karakter görüyorum" dediğinizde, arka planda birçok adım gerçekleşir. Bu adımların sırasına grafik pipeline (boru hattı) denir. "Pipeline" kelimesi bir fabrika bandı gibi düşünülebilir — her aşama kendi işini yapar ve sonucu bir sonraki aşamaya iletir.

🔄 Grafik Pipeline Aşamaları
🤿 Daha Detaylı: Her Aşama Ne Yapar?

1. Uygulama Aşaması (CPU)

Oyun motoru burada çalışır. Karakter hareket etti mi? Düşman nerede? Fizik hesapları, yapay zeka kararları, ses yönetimi, ağ (multiplayer) iletişimi... Sonuç olarak "şu objeleri şu pozisyonlarda çiz" komutu GPU'ya gönderilir. Bu komutlara "draw call" denir.

Programlama dili: C++, C#, Java, Python vb. — siz oyun geliştiriciler genellikle bu aşamada çalışırsınız!

2. Geometri İşleme (GPU — Vertex Shader)

3D modeller üçgenlerden (triangle) oluşur — binlerce, hatta milyonlarca üçgen. Bu aşamada her üçgenin köşe noktaları (vertex) 3D dünya koordinatlarından 2D ekran koordinatlarına dönüştürülür. Kamera açısı, objenin pozisyonu, dönüşü ve ölçeği burada hesaplanır. Vertex shader denilen küçük programlar bu işi yapar.

Bir oyun karakteri 10.000+ üçgenden oluşabilir. Her kare'de hepsi yeniden hesaplanır!

3. Rasterizasyon (GPU)

Matematiksel üçgenler, ekrandaki piksellere dönüştürülür. "Bu üçgen ekranda hangi pikselleri kaplıyor?" sorusu cevaplanır. Bu adıma "rasterizasyon" denir — vektörel (matematiksel) bilgiyi raster (piksel) bilgiye çevirme.

4. Piksel/Fragment İşleme (GPU — Fragment/Pixel Shader)

En ağır ve en eğlenceli aşama! Her pikselin son rengi hesaplanır: texture (doku) rengini al, ışık etkisini hesapla, gölge var mı kontrol et, yansıma ekle, sis efekti uygula... Fragment shader (pixel shader) denilen programlar bu işi yapar. Shader'ları ilerideki haftalarda detaylı öğreneceğiz!

Modern efektlerin çoğu (bloom, motion blur, HDR, ambient occlusion) bu aşamada shader ile yapılır.

5. Çıktı Birleştirme ve Ekrana Gönderim

Hesaplanan piksel renkleri framebuffer'a (ekran belleğine) yazılır. Derinlik testi (z-buffer), saydam objelerin karıştırılması (blending) ve anti-aliasing (kenar yumuşatma) gibi son işlemler burada yapılır. Sonuç monitörde görüntülenir.

💡 Şimdilik Bilmeniz Gereken

Pipeline'ın her aşamasını derinlemesine bilmenize şimdilik gerek yok. Önemli olan şu: ekranda bir şey görmek basit bir iş değil, arka planda çok karmaşık bir süreç var. Bu derste bu süreci adım adım öğreneceğiz. Ama şu ana fikri kavrayın: CPU oyunu yönetir, GPU çizer.

2D Oyunlarda da Pipeline Var mı?

📌 Evet!

2D oyunlarda pipeline daha basit olsa da yine çalışır. 2D sprite'lar aslında iki üçgenden oluşan düz bir dikdörtgen (quad) üzerine texture kaplamadır. GPU yine vertex ve fragment shader çalıştırır. 2D oyunlarda genellikle: sprite'ın pozisyonunu belirle → texture'u kap → ekrana çiz. Unity ve diğer motorlarda 2D oyun yaparkende arka planda GPU pipeline çalışır.

6. Kısa Tarihçe: Pong'dan Bugüne 🕹️

Bilgisayar grafiklerinin gelişimi inanılmaz bir yolculuk. Bakalım nereden nereye gelmişiz. Bu tarihçeyi bilmek, mevcut teknolojilerin neden var olduğunu anlamak için önemli:

🎮 Grafik Nesilleri: Detaylı Bakış

🟤 1. Nesil: Vektör ve Basit Pikseller (1970-1985)

İlk oyunlar ya vektörel çizgilerle (Asteroids) ya da çok düşük çözünürlükte pikseller ile çalışıyordu. Renk paleti çok sınırlıydı (2-16 renk). Atari 2600 sadece 160×192 çözünürlük ve 128 renkle çalışıyordu. Grafik donanımı çok basitti — özel GPU yoktu.

🟡 2. Nesil: 2D Sprite'lar ve Scroll (1985-1995)

NES, SNES, Mega Drive dönemi. Sprite tabanlı 2D grafikler olgunlaştı. Paralaks kaydırma (parallax scrolling), daha zengin renk paletleri (256+ renk), döndürme/ölçekleme (Mode 7) gibi teknikler gelişti. Sonic, Mario, Zelda gibi ikonik oyunlar bu dönemde çıktı.

🟢 3. Nesil: İlk 3D Denemeleri (1993-2000)

Doom (1993) "2.5D" ile devrim yaptı. Quake (1996) tam 3D motoru olan ilk popüler oyun oldu. PlayStation 1, Nintendo 64 ile 3D konsol oyunları başladı. İlk GPU'lar ortaya çıktı (3dfx Voodoo, NVIDIA GeForce 256). Düşük poligon, bulanık texture'lar ama devrim niteliğinde.

🔵 4. Nesil: Shader Devrimi (2001-2010)

Programlanabilir shader'lar geldi! Artık geliştiriciler GPU'ya "her pikseli nasıl renklendir" diye talimat verebiliyordu. Normal mapping, gölge haritaları (shadow maps), HDR, bloom efektleri gibi teknikler yaygınlaştı. PS2/PS3, Xbox/Xbox 360 dönemi. Grafik kalitesinde muazzam sıçrama.

🟣 5. Nesil: Fotorealizm ve Ray Tracing (2018-Bugün)

NVIDIA RTX serisi ile gerçek zamanlı ray tracing (ışın izleme) mümkün oldu. Fizik tabanlı render (PBR), global illumination, DLSS/FSR (yapay zeka ile upscaling). Unreal Engine 5'in Nanite ve Lumen teknolojileri. Oyun grafikleri neredeyse filmlerle yarışır hale geldi.

🧠 Tartışma Sorusu

50 yılda Pong'dan fotorealistik grafiklere geldik. Sizce önümüzdeki 10 yılda grafikler nasıl olacak? Yapay zeka grafik oluşturmayı nasıl değiştirecek? Neural rendering, AI upscaling (DLSS), prosedürel içerik üretimi... Bunlar geleceğin teknolojileri mi?

💡 Ek Okuma: Erken Dönem Donanım Sınırlamaları

Atari 2600'ün 128 byte RAM ile nasıl oyun yapıldığını, NES'in sprite sınırlamaları ve Mario'nun bıyığının teknik nedenini, SNES Mode 7'nin sahte 3D'sini ve daha fazlasını detaylı olarak öğrenmek için: Erken Dönem Grafik Donanım Sınırlamaları ve Yaratıcı Çözümler →

7. 💻 Lab: Piksel Atölyesi

📌 Lab Hedefleri

Bu haftanın lab çalışmasında:

  • Farklı oyun/uygulamaların grafiklerini analiz edeceksiniz
  • Raster vs Vektör farkını bizzat deneyeceksiniz
  • GIMP veya Photopea ile piksel düzeyinde çalışacaksınız
  • Çözünürlük ve piksel yoğunluğu kavramlarını uygulamalı keşfedeceksiniz

Lab Aktivite 1: Grafik Analizi

Aşağıdaki oyunlardan birini seçin ve grafik özelliklerini analiz edin:

  • Celeste — Pixel art 2D platformer
  • Hollow Knight — El çizimi 2D metroidvania
  • Stardew Valley — Pixel art simülasyon
  • Cuphead — 1930'lar animasyon stili
  • Ori and the Blind Forest — Boyalı arka planlar

Cevaplayın:

  1. Raster mı vektör mü kullanıyor? Nereden anladınız?
  2. Tahmini çözünürlüğü ne olabilir? (İpucu: Steam sayfasındaki sistem gereksinimlerine bakın)
  3. Grafik stili nedir? (pixel art, el çizimi, vektörel, fotorealistik vb.)
  4. Renk paleti nasıl? Kaç ana renk kullanılmış? Sıcak mı soğuk mu?
  5. GPU'yu ne kadar zorlayabilir? Neden?

Lab Aktivite 2: Piksel Boyama

GIMP veya Photopea (tarayıcıda çalışır, kurulum gerektirmez) açın:

  1. 16×16 piksel boyutunda yeni bir dosya oluşturun (File → New → 16×16 px)
  2. Zoom yaparak her pikseli görecek kadar yakınlaştırın (%800-1600)
  3. Kalem (Pencil) aracını seçin, boyutu 1px yapın
  4. Basit bir karakter çizin (smiley, uzaylı, kalp, kılıç, kalkan...)
  5. Aynı karakteri 32×32'de daha detaylı çizin — farkı gözlemleyin
  6. Her iki versiyonu PNG olarak kaydedin (File → Export As → PNG)
  7. Dosya boyutlarını karşılaştırın — hangisi daha büyük? Neden?
💡 İpucu

Photopea'da "Nearest Neighbor" interpolasyon kullanın (Edit → Preferences → General → Image Interpolation → Nearest Neighbor). Bu, büyütme sırasında piksellerin yumuşatılmamasını sağlar — pixel art için şarttır!

Lab Aktivite 3: Raster vs Vektör Deneyi

  1. GIMP/Photopea'da 64×64 px boyutunda bir daire çizin → PNG olarak kaydedin
  2. Bu PNG'yi 512×512'ye büyütün (Image → Scale Image veya Image → Image Size). Ne oldu? Kenarlar neden pürüzlü/bulanık?
  3. Şimdi herhangi bir SVG ikon indirin (örn: heroicons.com veya svgrepo.com)
  4. SVG'yi tarayıcıda açın ve zoom yapın (Ctrl/Cmd + Plus). Ne oldu? Neden hâlâ keskin?
  5. SVG dosyasını bir metin editöründe açın — içinde ne görüyorsunuz? (Pikseller mi yoksa matematiksel tanımlar mı?)
  6. Farkı bir cümleyle özetleyin ve sınıfla paylaşın.

Lab Aktivite 4: Ekran İnceleme (Bonus)

  1. Telefonunuzun veya monitörünüzün çözünürlüğünü ve PPI değerini öğrenin (Ayarlar → Ekran veya internet'te araştırın)
  2. Telefonunuzun ekranına çok yakından bakın (varsa büyüteçle). Alt pikselleri (sub-pixel) görebiliyor musunuz? RGB mi AMOLED mi?
  3. Sınıfta farklı cihazları karşılaştırın: kim en yüksek PPI'ya sahip?

🧪 Kendini Test Et

❓ Soru 1

Full HD (1920×1080) bir ekranda toplam kaç piksel vardır?

Yaklaşık 1 milyon
Yaklaşık 2 milyon
Yaklaşık 4 milyon
Yaklaşık 8 milyon
❓ Soru 2

Bir logoyu büyütmek istiyorsunuz ve kalitesinin bozulmamasını istiyorsunuz. Hangi format kullanmalısınız?

PNG (Raster)
JPG (Raster)
SVG (Vektör)
GIF (Raster)
❓ Soru 3

GPU'nun CPU'dan farkı nedir?

GPU daha akıllıdır
GPU sadece oyunlarda kullanılır
GPU binlerce basit işi aynı anda yapabilir (paralel)
GPU ve CPU aynı şeydir
❓ Soru 4

Bilgisayar grafiğinde Y ekseni hangi yöne doğru artar?

Yukarı (matematikte olduğu gibi)
Aşağı (sol üst köşe 0,0)
Sola doğru
Yön yok, rastgele
❓ Soru 5

24-bit (True Color) bir pikselde toplam kaç farklı renk mümkündür?

256
65.536
16.777.216 (yaklaşık 16,7 milyon)
1 milyar
❓ Soru 6

Grafik pipeline'da "rasterizasyon" aşaması ne yapar?

Oyun mantığını hesaplar
Texture'ları bellekten yükler
Üçgenleri (geometriyi) piksellere dönüştürür
Ses efektlerini işler
❓ Soru 7

SVG formatı hakkında hangisi yanlıştır?

Metin tabanlıdır, herhangi bir editörde açılabilir
Ne kadar büyütürseniz büyütün keskin kalır
Fotoğrafları saklamak için en uygun formattır
CSS ve JavaScript ile manipüle edilebilir
❓ Soru 8

JPEG sıkıştırması neden fotoğraflar için uygundur ama pixel art için değildir?

JPEG dosyaları çok büyüktür
Kayıplı sıkıştırma keskin kenarları bozar ve blok artefaktları oluşturur
JPEG sadece siyah-beyaz görüntüleri destekler
JPEG formatı çok yenidir ve desteklenmez
❓ Soru 9

BMP formatında 100×100 piksellik 24-bit bir görüntü yaklaşık kaç byte yer kaplar?

~100 byte
~10.000 byte
~30.000 byte (+ başlıklar)
~1.000.000 byte

📚 Kaynaklar ve Okumalar

🎬 Videolar

🎬

How do Video Game Graphics Work?

Branch Education — Grafik pipeline'ın harika görsel açıklaması. GPU'nun içini 3D animasyonlarla gösteriyor. Mutlaka izleyin!

YouTube · 15 dk · İngilizce · ⭐ Tavsiye
🎬

How Rendering Graphics Works in Games!

TheCherno — C++ oyun geliştirici perspektifinden render süreci. Vertex, fragment shader, rasterizasyon gibi kavramları anlaşılır şekilde açıklıyor. Teknik ama erişilebilir.

YouTube · 20 dk · İngilizce · ⭐ Tavsiye
📚

Computer Graphics — Cem Yüksel (Utah Üniversitesi)

Akademik düzeyde bilgisayar grafiği dersi. Matematiksel temellerden başlayarak ray tracing, rasterizasyon, shading konularını derinlemesine işliyor. İleri düzey ama bu dersin konularıyla birebir örtüşüyor — meraklılar için harika bir kaynak!

YouTube Playlist · İngilizce · Akademik · ⭐ Tavsiye
🎬

Piksel Nedir? Ekranlar Nasıl Çalışır?

Barış Özcan — Türkçe, piksel ve ekran teknolojisi. Alt pikseller, OLED vs LCD farkları.

YouTube · 10 dk · 🇹🇷 Türkçe
🎬

A Brief History of Video Game Graphics

Ahoy — Oyun grafiklerinin tarihi, Pong'dan bugüne. Sinematik kalitede belgesel.

YouTube · 30 dk · İngilizce
🎬

How do GPUs work?

Branch Education — GPU'nun iç yapısını ve neden paralel hesaplama yaptığını görsel olarak anlatan mükemmel video.

YouTube · 25 dk · İngilizce
🎬

The Evolution of Video Game Graphics (1952-2023)

Yıl yıl oyun grafiklerinin gelişimini gösteren harika bir derleme.

YouTube · 20 dk · Görsel Ağırlıklı
🎬

How PNG Works — Computerphile

PNG sıkıştırma algoritmasının detaylı açıklaması. Filtreleme ve DEFLATE nasıl çalışır?

YouTube · 12 dk · İngilizce
🎬

How JPEG Works — Computerphile

JPEG sıkıştırmasının matematiksel arka planı: DCT, kuantizasyon ve neden bloklu artefaktlar oluşur?

YouTube · 15 dk · İngilizce
🎬

SVG Explained in 100 Seconds — Fireship

SVG formatının hızlı ve eğlenceli bir özeti. Fireship'in ünlü "100 Seconds" formatında.

YouTube · 2 dk · İngilizce

📖 Okumalar

🛠️ Araçlar