3 poin oleh GN⁺ 2023-11-24 | 1 komentar | Bagikan ke WhatsApp

Pengantar tentang alat, pustaka, dan efek AMD

  • Situs web GPUOpen milik AMD adalah tempat terbaik untuk mempelajari alat, pustaka, dan efek terkait GPU.
  • Menyediakan materi dan panduan yang dirancang agar mudah dipahami bahkan oleh insinyur perangkat lunak pemula.
  • Membantu pengguna memanfaatkan teknologi AMD untuk mencapai grafis dan performa yang dioptimalkan.

Opini GN⁺

  • Hal terpenting dalam artikel ini adalah bahwa GPUOpen milik AMD menyediakan sumber daya yang berguna bagi para pengembang grafis.
  • Ada banyak materi yang mudah diakses dan dimanfaatkan bahkan oleh pengembang pemula, sehingga akan menarik bagi orang-orang yang tertarik pada pemrograman grafis.

1 komentar

 
GN⁺ 2023-11-24
Opini Hacker News
  • Bagi insinyur perangkat lunak pemula yang ingin masuk ke bidang computer graphics, penting untuk terlebih dahulu memikirkan apa yang ingin dibuat alih-alih terlalu fokus pada alat yang akan digunakan. Langkah pertama harus diambil dengan berfokus pada hasil akhir. Banyak alat mengabstraksikan berbagai tahap dalam pemrograman grafis, sehingga ada risiko menghabiskan terlalu banyak waktu pada kode tingkat rendah sejak awal. Selain itu, di industri tertentu sering kali digunakan alat seperti Unity, TouchDesigner, three.js, After Effects, dan C++ hampir tidak dipakai. Pemahaman yang mendalam itu penting, tetapi belajar sambil benar-benar masuk ke industri sering kali lebih efisien.
  • Hal-hal yang perlu diketahui seorang graphics programmer mencakup lebih dari sekadar pemrograman dan API. Ini termasuk matriks rotasi, tampilan, dan proyeksi, matematika vektor, shader programming, bentuk dasar prosedural, compositing gambar, forward dan deferred rendering, teknik sampling, teknik bayangan dan pencahayaan, cara mengekstrak data dari aplikasi 3D, penggunaan profiler dan debugger, membaca paper Siggraph, teknik spatial partitioning dan hierarki volume, membangun ray tracer sederhana, pemahaman tentang bentuk dasar, serta pengalaman dengan partikel dan simulasi.
  • Merekomendasikan kursus Pikuma "Graphics From Scratch". Kursus ini dimulai dengan menulis fungsi set_pixel menggunakan SDL, lalu menulis sendiri semua operasi matriks, transformasi vertex, dan rasterisasi segitiga. Proses menghitung warna tiap piksel juga dipelajari.
  • Selain memulai dengan DX/VK/OGL, ada banyak cara lain untuk menjadi graphics programmer. Bahkan tidak harus menggunakan C++ sama sekali. Misalnya, 3Blue1Brown membuat grafis 3D yang menakjubkan dengan Python. Jika ingin menulis game engine, pelajari DirectX atau Vulkan; jika ingin membuat aplikasi browser, pelajari WebGL. API-API ini berat dan mungkin tidak banyak mengajarkan tentang grafis itu sendiri. Jika ingin mempelajari konsep grafis, tulislah rasterizer dan ray tracer sendiri dengan bahasa apa pun. Ada banyak library grafis dan lingkungan coding yang mudah diakses dan menyenangkan bagi pemula, seperti Processing, PlotDevice.io, NodeBox, DrawBot, dan ShaderToy.
  • Pemrograman grafis dapat dipelajari dengan menulis shader di Shadertoy. Banyak graphics programmer memulai dari sana. Ada lebih dari 10 tutorial yang dibuat tentang SDF, ray marching, fungsi noise, dan lainnya.
  • Membagikan materi yang benar-benar digunakan di industri pemrograman grafis. Bidang grafis sudah terlalu luas sehingga tidak ada satu metode belajar yang cocok untuk semua orang. Jika ingin belajar grafis, sebaiknya cari mentor.
  • Computer graphics memiliki ratusan bidang spesialisasi, dan situs web tersebut hanya berfokus pada bagian kecil yaitu programming graphics SDKs.
  • Seorang game developer, tetapi bukan graphics programmer. Ia menggunakan API grafis modern dan shader GLSL, namun ketika anak berusia 13 tahun ingin beralih dari Scratch atau Python ke C++, ia meminta anak itu menulis kode sederhana menggunakan OpenGL 1.2 DLL yang ia miliki sejak 1999. Itu jauh lebih menyenangkan dibanding pengaturan rumit API modern. Anak itu tertarik pada geometri komputasional seperti diagram Voronoi, jadi API grafis hanyalah alat. Performa C++ dan OpenGL lama juga jauh lebih cepat daripada Scratch. Belajar C++ dan OpenGL secara bersamaan dengan API yang sederhana adalah tantangan yang cukup ambisius. Kesederhanaan membuat proses belajar tetap terkelola, dan sejauh ini berjalan baik. Ia membantu membuat demo marching squares yang keren dan menambahkan menu IMgui untuk menyesuaikan parameter saat runtime.
  • Membagikan perjalanan pribadi. Dua tahun lalu, ia membuat engine 3D pertamanya dengan mengikuti berbagai tutorial dan video YouTube. Engine itu sangat sederhana, dan ia memang menyukai hal-hal yang sederhana. Saat ini ia sedang mengerjakan game city-building menggunakan engine tersebut. Belajar memanipulasi objek dengan matriks dan cross product terasa sangat menyenangkan.
  • Menyediakan contoh kode grafis sederhana yang ditulis dalam bahasa pemrograman BASIC.