2 puan yazan GN⁺ 2025-01-05 | 1 yorum | WhatsApp'ta paylaş
  • Giriş

    • Oyunlarda dış hat işleme, estetik nedenler veya oyun oynanışını desteklemek için sıklıkla kullanılır. Örneğin, oyun Sable bu teknikle çizgi roman benzeri bir stil oluştururken, The Last of Us oyununda düşmanları vurgulamak için kullanılır.
  • Rim etkisi

    • Yöntem

      • Fresnel efektini kullanarak nesnenin kenarlarında dış hat işlenebilir; bu etki, nesnenin kenarlarında daha belirgindir.
    • Uygulama

      • Fresnel efektini uygulayan özel bir shader ile nesnenin dış hatları render edilir. Bu yöntem, küre veya kapsül gibi pürüzsüz nesneler için uygundur; ancak küp gibi keskin nesneler için uygun değildir.
  • Vertex dışa itme

    • Yöntem

      • Orijinal nesnenin bir kopyasını kullanarak dış hat oluşturulur. Kopyanın vertexlerini genişleterek orijinalden daha büyük hale getirilir.
    • Ekstrüzyon yönü

      • Vertexlerin taşınacağı yönü seçerek nesnenin boyutu ayarlanır. Vertexler, nesne uzayında taşınarak dış hat oluşturulur.
    • Ekstrüzyon alanı

      • Vertexleri nesne uzayında taşımakla clip uzayında taşımak arasında seçim yapılabilir. Clip uzayında yapılan taşıma daha homojen bir dış hat sağlar.
    • Maskeleme

      • Kopyalanmış mesh'in yalnızca arka yüzlerini bırakmak için yüzeyi keskin hale getirme yöntemiyle ön yüzü kaldırılır, böylece sadece dış hat görünür olur.
  • Blur buffer

    • Yöntem

      • Nesnenin siluetini bir tamponda render eder, ardından bunu bulanıklaştırarak dış hat oluşturur.
    • Siluet tamponu

      • Nesneyi tek bir renk ile render ederek siluet tamponu oluşturulur.
    • Bulanıklaştırma geçişi

      • Siluet tamponunu genişletmek için blur pass kullanılır. Kutu bulanıklığı veya Gaussian blur ile performans iyileştirilir.
    • Dış hat geçişi

      • Blur uygulanmış siluet orijinal sahne ile birleştirilerek dış hat oluşturulur.
  • Jump Flood algoritması

    • Jump Flood algoritması, dış hatları düşük performans maliyetiyle geniş şekilde render etmek için kullanılır.
  • Kenar tespiti

    • Yöntem

      • Tüm ekran geçişi kullanılarak sahnedeki süreksizlikler algılanır ve dış hat render edilir.
    • Süreksizlik tespiti

      • Roberts cross veya Sobel operatörleriyle süreksizlikler tespit edilir.
    • Süreksizlik kaynağı

      • Derinlik, normal ve renk dokularındaki süreksizlikler tespit edilerek dış hatlar oluşturulur.
    • Kenar tespitini ayarlama

      • Süreksizlik tespiti için kullanılan eşik değeri ayarlanarak artefaktlar kaldırılır.
    • Özel süreksizlik kaynağı

      • Dış hatları kontrol etmek için özelleştirilmiş bir süreksizlik kaynağı sağlanabilir.
  • Sonuç

    • Dış hat çizecek beş yöntem vardır; bunlar performans, görsel doğruluk ve manuel ayar arasında bir denge sağlar.

1 yorum

 
GN⁺ 2025-01-05
Hacker News Yorumları
  • Jump Flood Algorithm hakkındaki makaleyi çok ilginç buldum; piksel düzeyinde farklı yaklaşımlar düşünmek gerçekten keyifli.

    • SDF (Signed Distance Field) oluşturmak için çok akıllıca bir yöntem. İstenen genişlikte kontur üretmeyi doğrusal zamanda başarabilmesi etkileyici.
    • SDF, vektör tabanlı, fonksiyon tabanlı ya da texel/voxel tabanlı gibi farklı şekillerde kullanılabiliyor. Houdini raster SDF desteği iyi ve ücretsiz bir sürümü de var.
    • SDF birçok farklı alanda işe yarıyor.
  • Modeli tek bir renkte renderlayıp kenar algılama ile kontur çıkarma yolunu öneriyor. Ek bir render pass gerekiyor.

  • Stilize edilmiş 3D grafikler için bir Ar-Ge projesi üzerinde çalışmak ilgimi çekiyor. Çözülmemiş birçok soru var.

    • Kamera uzaklaştığında çizgi roman tarzında renderlanan 3D modelin detayını azaltma
    • 3D arka planı sulu boya gibi renderlama
    • Stilize edilmiş 3D oyunda duman, alev ve ağaç gibi efektleri ifade etme
    • Serbestçe hareket eden kamerada modeli otomatik olarak ayarlama
    • Stilize edilmiş bir 3D renderer’da ideal mesh ve ortam düzenleyici nasıl olmalı
    • Basit bir 3D modelde retro pixel art renderlama olasılığı
    • Stilizasyonla 3D oyun dünyasını daha fiziksel olarak doğru hale getirme
  • Astral Divide oyununda blur buffer benzeri bir teknik geliştirdiler. Kenarları anti-aliasing ile oluşturuyorlar. Performans açısından ucuz ve uygulanması kolay.

  • Teknik sanatlara tutkulu ve Godot'un compute shader pipeline'ının ilerlemesini özlüyorlar; mevcut compositor plugin ayarları biraz karmaşık.

  • Unity'nin fiyat tartışması sonrası geliştiricilerin Unreal ve Godot'a geçip geçmediğini merak ediyorum.

  • VR uygulama geliştirmeden web geliştirmeye geçtim ama 3D grafik, çarpışma ve shader işindeki o sihirli hissettiğim şeyleri özlüyorum.

  • Kenar algılama render sonuçları çok tatmin edici; bir sahnesi gibi görünüyor, tıpkı Hollanda çizgi romanı Franka'dan bir kare gibi.

  • Mars First Logistics geliştiricisinin önerdiği kenar algılama tekniğiyle ilgili harika bir not buldum.

  • Kontur çizimi için basit bir teknik önerisi

    • Her yüzün kendine özel kenarlarını saklayan bir dizi oluştur
    • Kenarları view space’e dönüştürdükten sonra belirli koşullara göre kenarları çiz