3 puan yazan GN⁺ 2023-11-24 | 1 yorum | WhatsApp'ta paylaş

AMD'nin araçları, kütüphaneleri ve efektlerine giriş

  • AMD'nin GPUOpen web sitesi, GPU ile ilgili araçlar, kütüphaneler ve efektler hakkında bilgi edinmek için en uygun yerlerden biridir.
  • Başlangıç seviyesindeki yazılım mühendislerinin de kolayca anlayabilmesi için tasarlanmış materyaller ve rehberler sunar.
  • Kullanıcıların AMD teknolojilerini kullanarak optimize edilmiş grafikler ve performans elde etmesini destekler.

GN⁺'ın görüşü

  • Bu yazıdaki en önemli nokta, AMD'nin GPUOpen platformunun grafik geliştiricilere faydalı kaynaklar sunmasıdır.
  • Başlangıç seviyesindeki geliştiricilerin de kolayca erişip yararlanabileceği çok sayıda materyal bulunduğu için, grafik programlamaya ilgi duyanlar açısından ilgi çekici olacaktır.

1 yorum

 
GN⁺ 2023-11-24
Hacker News görüşleri
  • Acemi bir yazılım mühendisi bilgisayar grafikleri alanına girerken, önce hangi araçları kullanacağını düşünmekten ziyade ne yapmak istediğine odaklanması önemli. İlk adımı nihai çıktıya odaklanarak atmak gerekiyor. Birçok araç, grafik programlamanın çeşitli aşamalarını soyutladığı için en baştan düşük seviyeli koda fazla zaman harcama riski var. Ayrıca bazı sektörlerde Unity, TouchDesigner, three.js ve After Effects gibi araçlar kullanılıyor ve C++ neredeyse hiç kullanılmıyor. Derinlemesine anlayış önemli olsa da, gerçek sektöre girince öğrenmek daha verimli.
  • Grafik programcısı olarak bilinmesi gerekenler yalnızca programlama ve API bilgisinden ibaret değil. Dönüş, görünüm ve izdüşüm matrisleri, vektör matematiği, shader programlama, prosedürel temel şekiller, görüntü birleştirme, forward ve deferred rendering, örnekleme teknikleri, gölge ve aydınlatma teknikleri, 3D uygulamalardan veri çıkarma yöntemleri, profiler ve debugger kullanımı, Siggraph makaleleri okuma, uzamsal bölme ve hacim hiyerarşisi teknikleri, basit bir ray tracer kurma, temel şekilleri anlama, parçacıklar ve simülasyon deneyimi gibi konular da buna dahil.
  • Pikuma'nın 'Graphics From Scratch' kursu tavsiye ediliyor. SDL kullanarak set_pixel fonksiyonunu yazmakla başlanıyor ve tüm matris işlemleri, tepe noktası dönüşümleri ve üçgen rasterization işlemleri doğrudan kodla yazılıyor. Her pikselin renginin nasıl hesaplandığı öğreniliyor.
  • DX/VK/OGL ile başlamak dışında da grafik programcısı olmanın birçok yolu var. C++ hiç kullanmadan da ilerlenebilir. Örneğin 3Blue1Brown, Python ile etkileyici 3D grafikler üretiyor. Oyun motoru yazmak istiyorsanız DirectX veya Vulkan öğrenin; tarayıcı uygulamaları yazmak istiyorsanız WebGL öğrenin. Bu API'ler ağır olabilir ve grafik hakkında çok şey öğretmeyebilir. Grafik kavramlarını öğrenmek istiyorsanız, herhangi bir dilde kendi rasterizer'ınızı ve ray tracer'ınızı yazın. Processing, PlotDevice.io, NodeBox, DrawBot ve ShaderToy gibi, yeni başlayanlar için erişilebilir ve eğlenceli birçok grafik kütüphanesi ve kodlama ortamı var.
  • Shadertoy üzerinde shader yazarak grafik programlama öğrenilebileceği belirtiliyor. Birçok grafik programcısı burada başlıyor. SDF, ray marching, noise fonksiyonları gibi konularda 10'dan fazla eğitim hazırlanmış.
  • Grafik programlama sektöründe gerçekten kullanılan kaynaklar paylaşılıyor. Grafik alanı artık o kadar büyük ki herkese uyan tek bir öğrenme yöntemi yok. Grafik öğrenmek istiyorsanız bir mentor bulmak iyi olur.
  • Bilgisayar grafiklerinde yüzlerce uzmanlık alanı var ve ilgili web sitesi bunların yalnızca küçük bir kısmı olan programlanabilir grafik SDK'lerine odaklanıyor.
  • Yorum sahibi oyun geliştiricisi ama grafik programcısı değil. Modern grafik API'leri ve GLSL shader'ları kullanıyor; ancak 13 yaşındaki bir çocuk Scratch veya Python'dan C++'a geçmek istediğinde, 1999'dan beri elinde olan OpenGL 1.2 DLL ile basit kodlar yazdırıyor. Bu, modern API'lerin karmaşık kurulumlarından çok daha eğlenceli. Çocuk Voronoi diyagramları gibi hesaplamalı geometriyle ilgilendiği için grafik API sadece bir araç. C++ ve eski OpenGL performansı Scratch'ten çok daha hızlı. Basit bir API ile C++ ve OpenGL'i aynı anda öğrenmek oldukça iddialı bir hedef. Basitlik, öğrenmeyi yönetilebilir kılıyor ve süreç iyi gidiyor. Hatta güzel bir marching squares demosu yapılmış ve çalışma anında parametreleri ayarlayabilen bir IMgui menüsü eklenmiş.
  • Kişisel bir yolculuk da paylaşılıyor. İki yıl önce çeşitli eğitimleri ve YouTube videolarını takip ederek ilk 3D motor yapılmış. Çok basit ama sadelik seviliyor. Şu anda bu motor kullanılarak bir şehir kurma oyunu geliştiriliyor. Matrisler ve cross product kullanarak nesneleri manipüle etmeyi öğrenmek oldukça eğlenceli.
  • BASIC programlama diliyle yazılmış basit bir grafik kodu örneği de veriliyor.