• Buradasın

    Oyun Programlaması ve 3D Grafikte Objelerle Etkileşim

    youtube.com/watch?v=R0iDUTprNuo

    Yapay zekadan makale özeti

    • Bu video, bir eğitmen tarafından sunulan teknik bir eğitim içeriğidir. Eğitmen, oyun programlaması ve 3D grafikte objelerle etkileşim konularını detaylı şekilde anlatmaktadır.
    • Video, oyun dünyasında objelerle etkileşim yöntemlerini kapsamlı şekilde ele almaktadır. İlk olarak 2D dünyada obje seçimi için geometrik yaklaşımlar (çember içi testi, çokgen testleri) anlatılmakta, ardından grid tabanlı yaklaşımlar açıklanmaktadır. Daha sonra 2D'den 3D'ye geçiş yapılarak ışın testleri ve kesişim kontrolleri konuları işlenmektedir. Video, objelerin çarpışma (collision) testleri ve performans optimize etme yöntemlerini de içermektedir.
    • Eğitim içeriği, oyun geliştiricileri için temel matematiksel kavramları ve geometrik yaklaşımları kullanarak obje seçimi ve etkileşim kurma tekniklerini sunmaktadır. Grid tabanlı ve geometrik yaklaşımların avantajları ve dezavantajları karşılaştırılmakta, strateji oyunları ve şehir kurma oyunlarında grid tabanlı sistemlerin kullanımı gibi pratik örnekler verilmektedir.
    Oyun Dünyasında Objelerle Etkileşim
    • Bu bölümde oyun dünyasındaki objelerle etkileşimden bahsedilecek.
    • Temel problem, sanal bir dünyadaki bir karaktere ulaşmak ve karakterin başka bir objeyle iletişimini sağlamaktır.
    • Oyun dünyasındaki karakterler üç boyutlu bir dünyada x, y, z koordinatlarıyla pozisyonlandırılır.
    01:29Objeleri Seçme Yöntemleri
    • Objeler bir liste halindeyse, en temel yöntem olarak yanıklarıyla seçilebilir, ancak bu yöntem özellikle strateji oyunlarında etkili değildir.
    • Kısıtlı sayıda obje varsa, yanıklarıyla seçme yöntemi işe yarayabilir, ancak fazla obje olduğunda fare kullanımı tercih edilir.
    • Fare ile tıkladığımız noktanın x-y koordinatları, oyun dünyasındaki x-y koordinatlarına karşılık gelir.
    04:12Fare Koordinatlarıyla Objeyi Seçme
    • Objelerin her birinin x-y koordinatları var ve fare ile tıkladığımız noktanın x-y değerleri objelerden herhangi birinin x-y değerine eşitse objeyi seçmiş oluruz.
    • Bu yöntemde her objeyle kontrol edilmesi gerekeceği için obje sayısı arttıkça işlem karmaşıklaşır.
    • Doğrudan eşitlik kontrolü, özellikle çözünürlük yüksek ekranda objenin merkezine tıklayamama sorunu yaratabilir.
    07:48Geometrik Yaklaşım ile Objeyi Seçme
    • Fare ile tıkladığımız nokta objenin içinde mi kontrolü, geometrik bir yaklaşım olarak sunulabilir.
    • Daire şeklinde bir obje için, tıklanan noktanın merkeze olan uzaklığı yarıçapın (r) değerinden küçükse objenin içinde sayılır.
    • İki nokta arasındaki mesafe, x ve y farklarının karelerinin toplamının kökü olarak hesaplanır.
    10:37Çember Seçim Metodunun Sorunları
    • Çember şeklinde bir seçim alanı kullanıldığında, obje çembere tam olarak sığmadığı için çemberin içinde olup objenin dışında kalan noktalar da objeyi seçebilir.
    • İki obje yan yana gelmişse, çember alanlarının kesişimi nedeniyle yanlış obje seçimi yapılabilir.
    • Bu yöntem aslında bir çarpışma (collision) testi olarak da düşünülebilir ve fizik motorlarında sıkça kullanılır.
    12:52Daire Tabanlı Seçim Yöntemi
    • Daire tabanlı seçim yönteminde, karakterin içinde bulunduğu alan küçük dairelerle tanımlanabilir.
    • Tek bir daire yerine birden fazla küçük daire kullanıldığında, her daire için içinde mi dışında mı testi yapılmalıdır.
    • Karakterin el ve kol gibi farklı kısımları ayrı hareket ederse, bu parçaların da ayrı dairelerle tanımlanması ve merkezlerinin ayrı hareket ettirilmesi gerekir.
    14:44Diğer Geometrik Şekiller
    • Daire yerine üçgen veya diğer çokgenler kullanılarak karakterin içinde mi dışında mı testi yapılabilir.
    • Üçgen içinde mi dışında mı testi için sağında-solda testi kullanılabilir; tüm kenarlar için aynı yönde ise içindedir.
    • Çokgenler için içinde mi dışında mı testi daha karmaşık olmasına rağmen matematiksel formüllerle yapılabilir.
    19:21Grid Tabanlı Yaklaşım
    • Grid tabanlı yaklaşımda, oyun dünyası küçük karelerden oluşan bir grid ile tanımlanır.
    • Tıklanan noktanın hangi karede olduğu grid üzerinden hızlıca bulunabilir.
    • Grid tabanlı yaklaşım, obje sayısından bağımsız bir şekilde karaktere ulaşmayı sağlar.
    21:13Grid Yaklaşımının Sorunları
    • Grid yaklaşımının bir sorunu, kocaman bir harita için çok fazla kare saklamak gerekliliğidir.
    • Aynı karede birden fazla objenin yer alması durumu karmaşıklaştırabilir.
    • Uçan birim gibi farklı katmanlarda hareket eden objeler için ikinci bir grid tutmak performans açısından sorun yaratabilir.
    24:21Geometri ve Grid Birleşimi
    • Dördüncü yaklaşımda, geometri ile grid birleştirilerek daha üst düzey bir grid oluşturulabilir.
    • Oyun dünyası dört parçalı bir gride bölünür ve her grid için ayrı obje listesi tutulur.
    • Bu yöntem, problemi basitleştirerek performansı artırabilir, ancak doğru dengeyi bulmak önemlidir.
    25:55Grid Tabanlı Yaklaşım
    • Grid hanesine ulaşıp, tıklanan noktada hangi gridin seçildiğini belirleyebiliriz.
    • Grid üzerinden obje listesine giderek ekrandaki eşyaları kontrol edebiliriz.
    • Listeyi bölmek (örneğin dört çeyrek) haritada herhangi bir yerde yer alabilecek objeler için avantaj sağlar.
    26:38Grid ve Geometrik Yaklaşım Karşılaştırması
    • Tam grid yapısı karakterlerin satranç taşları gibi hareket etmesini sağlarken, gerçek dünyada daha pürüzsüz hareket istenirse geometrik yaklaşım tercih edilir.
    • Grid tabanlı yaklaşımda, çok küçük gridler bile bile hareket sırasında devamlılık sağlaması zordur.
    • Bilgisayar ayrık sayılar kullanır, bu nedenle devamlı bir hareket için geometrik yaklaşım daha uygun olabilir.
    29:01Grid Boyutu ve Hafıza İhtiyacı
    • Grid boyutunu küçültmek hareketi daha devamlı görünmesine rağmen, hafıza ihtiyacını artıracaktır.
    • İki boyutlu gridde bir boyutun iki katına çıkması hafıza ihtiyacını dört katına, üç boyutlu gridde ise sekiz katına çıkarır.
    • Geometrik yaklaşım kullanıldığında, objelerin x-y koordinatları doğrudan kullanılarak devamlı bir hareket görünümü sağlanır.
    31:19Üç Boyutlu Geometri Tabanlı Yaklaşım
    • Üç boyutlu durumda geometri tabanlı yaklaşım daha zorlaşır, ancak matematiksel test benzer şekilde yapılır.
    • Üç boyutlu uzaklık hesaplaması için x, y ve z koordinatlarının farklarının karelerinin toplamının kökü alınır.
    • Üç boyutlu noktaları ekrandan seçmek sorunlu olabilir çünkü standart ekranlar iki boyutludur.
    33:44Üç Boyutlu Nokta Seçimi
    • Sanal gerçeklik gözlükleri ve hareket algılayıcılar gibi ekipmanlarla üç boyutlu uzayda nokta seçilebilir.
    • Standart ekranda seçilen noktaların sadece x-y koordinatları olduğundan, z koordinatı üretmek gerekir.
    • En çok kullanılan yöntemden biri, kameranın doğrultusunda tıklanan noktaya doğru ışın göndermek ve bu ışının cisme çarpmasını kontrol etmektir.
    37:493D Görüntüleme ve Kesişim Testi
    • Kameranın sahneye baktığı eksende sanal bir ekran bulunur ve monitör sadece bu ekrandan bir bölümünü gösterir.
    • Kameranın gördüğü alan, kesilmiş bir piramid şeklinde ekrana yansıtılır.
    • Ekrandan seçilen bir noktaya kamera pozisyonundan doğru bir ışık gönderilir ve bu ışın 3D cisimle kesişip kesişmediği kontrol edilir.
    39:033D Kesişim Testinin Karmaşıklığı
    • 3D kesişim testi, 2D'deki x-y koordinatlarına z ekseninin eklenmesiyle daha karmaşık hale gelir.
    • 2D'de nokta ve çokgen testi yapılırken, 3D'de ışın ve yüzey kesişimi test edilir.
    • 3D dünyada çokgenin 3 boyutlu haline "polyhedron" (çokyüzlü) denir.
    41:17Kesişim Testi Yöntemleri
    • 3D dünyada kesişim testi için ışın ve yüzey formülleri yazılır.
    • Yüzey formülü için üç farklı noktasının, ışın formülü için iki noktanın bilinmesi yeterlidir.
    • 3D dünyada kesişim testi daha karmaşık olduğundan hazır programlar kullanılır, ancak çalışma prensibi bilinmelidir.
    42:49Basitleştirme Yöntemleri
    • Karmaşık 3D objeler (örneğin karakterler) binlerce üçgenden oluşabilir ve bu kadar üçgenle kesişim testi yapmak pratik değildir.
    • Karakteri kaplayan basit bir dikdörtgen prizma tanımlayarak hesaplama basitleştirilir.
    • Şekil ne kadar sadeyse vurma keskinliği o kadar düşer, bu nedenle daha iyi tanımlayan ancak hesaplaması kolay şekiller (küre, üçgen prizmalar) tercih edilir.
    45:19Objeler Arası Etkileşim Yöntemleri
    • Objelerin etkileşimini belirlemek için küre ve dikdörtgen prizma gibi geometrik şekiller kullanılarak keskinlik artırılabilir.
    • Objelerin birbirine değip değmediğini belirlemek için iki temel yaklaşım vardır: grid tabanlı ve geometrik yaklaşım.
    • Grid tabanlı yaklaşımda her obje gridin belirli bir hanesinde bulunur ve karakter hareket ettikçe bulunduğu hane içindeki objelerle etkileşim kurar.
    47:18Geometrik Etkileşim Yöntemi
    • Geometrik yaklaşımda objelerin dışını kaplayan geometrik şekiller (örneğin çember) tanımlanır ve karakterin konumu kontrol edilir.
    • Karakterin etrafında etki alanı tanımlanabilir ve bu durumda iki çemberin kesişimine bakılır.
    • Bir objeyi birden fazla çemberle tanımlamak (örneğin ayağın bastığı noktalarda ufak çemberler, ortada büyük çember) etkileşim alanını daha hassas hale getirir.
    49:39Etkileşim Optimizasyonu
    • Her adımda tüm objelerle kesişim testi yapmak oyunun performansını düşürebilir, bu nedenle optimizasyon gerekir.
    • Grid ve geometrik yaklaşımı birleştiren yöntemde, objelerin listesi grid içinde tutulur ve karakter sadece bulunduğu grid hanesindeki objelerle karşılaştırma yapar.
    • Karakter hareket ettikçe, hangi grid hanelerine girdiğini belirleyerek sadece o hanelerdeki objelerle kesişim testi yapılır.
    52:33Hedefleme ve Işın Testi
    • Karakter veya kamera açısından ateş edildiğinde, ışın sahnedeki objelerle kesişip kesişmediğini kontrol eder.
    • Sahnedeki düşman sayısı sınırlı olduğundan, her düşmanla ışın testi yapılabilir.
    • Yakındaki düşmanlarla sadece ışın testi yapılır, uzak düşmanlar bu testten çıkarılır.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor