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

1 komentar

 
GN⁺ 2025-11-24
Komentar Hacker News
  • Tulisannya menarik, tetapi bagian diagram yang menggambarkan OpenGL / WebGL / WebGPU seolah dibangun di atas Vulkan adalah penjelasan yang keliru
    WebGL dan WebGPU berjalan langsung di atas D3D dan Metal tanpa melalui Vulkan
    Selain itu, Vulkan bukan open source melainkan sebuah standar
    WebGPU juga tidak terbatas pada browser, melainkan tersedia sebagai library Dawn untuk C++ dan WGPU untuk Rust, sehingga dapat berjalan di Windows, macOS, Linux, iOS, Android, dan lainnya Vulkan memang berjalan di sedikit lebih banyak platform dibanding DirectX, tetapi tidak termasuk dalam konfigurasi bawaan Windows, dan tidak berjalan di macOS maupun iOS
    • Saya juga ingin menambahkan bahwa Vulkan bukan open source, melainkan standar terbuka
      Implementasi nyatanya ditangani oleh masing-masing vendor hardware, dan Vulkan pada dasarnya hanyalah file header
      Selain itu, Vulkan juga berjalan dengan baik di platform Apple melalui lapisan translasi Vulkan-to-Metal seperti MoltenVK atau KosmicKrisp
    • Vulkan memang tidak sepenuhnya lintas platform, tetapi cakupannya jauh lebih luas daripada DirectX
      DirectX digunakan di Windows dan Xbox, sementara Vulkan tersedia di Linux, Android, Windows, Nintendo Switch, Switch 2, dan lainnya
    • Perlu disebutkan bahwa WebGPU adalah API terpadu yang berada di atas API native tiap platform (DirectX, Vulkan, Metal)
    • API Khronos memiliki sangat banyak fitur ekstensi, tetapi sebagian bersifat proprietari sehingga portabilitasnya rendah
      PlayStation tidak mendukung Vulkan, dan di Switch, NVN lebih umum dipakai daripada OpenGL/Vulkan
    • Fakta bahwa Vulkan berjalan di Windows saja sudah membuatnya terasa lebih umum dibanding DirectX
      Bahwa Vulkan tidak berjalan di sebagian lingkungan Linux VNC bukanlah kasus yang umum
      Sebagian besar pengguna mendapat dukungan Vulkan melalui driver GPU mereka
  • Kualitas kursus di situs ini mengejutkan
    Kalau bukunya dijual meski dalam bentuk pre-order, saya rasanya ingin mendukung proyek ini
    Saya mengikuti sejak tulisan pertamanya, dan setiap artikel terasa makin mengesankan
  • Kalau ingin bereksperimen dengan shader, saya merekomendasikan IDE berikut
    • shadertoy – berbasis browser, paling mudah dan paling populer
    • Shadron – usability-nya bagus dan secara pribadi saya lebih suka, meski agak niche
    • SHADERed – perlu waktu untuk terbiasa dengan UX-nya, tetapi fiturnya sudah memadai
    • KodeLife – pernah dengar, tetapi belum pernah saya coba sendiri
    • Cables(cables.gl) juga cukup keren
      Ada karya-karya yang mengesankan dari Kirell Benzi
    • Saya menemukan wgshadertoy di software manager milik Mint
      Mendukung berbagai platform seperti flatpak, AUR, macports, Windows, dan lainnya
    • Di macOS atau iPadOS, Playgrounds bisa jadi cara mudah untuk mulai memakai shader Metal
    • Ada juga Bonzomatic yang dipakai untuk kompetisi live coding shader di demoscene
  • Pada akhirnya, pemrograman adalah proses menerjemahkan apa yang dipahami manusia agar bisa dipahami komputer
    Namun pemrograman GPU tingkat kesulitannya jauh lebih tinggi
    Begitu banyak jebakan, ketidakselarasan antara hardware/software, kurangnya alat debugging, dan sebagainya membuat pengalaman pengembangannya sangat buruk
    Disayangkan juga komunitas tampak kurang punya kemauan untuk memperbaiki masalah ini
    • OpenGL dan DirectX versi sebelum 12 adalah upaya untuk mengabstraksikan detail hardware, tetapi pada akhirnya abstraksi itu justru merugikan
  • Saat menulis fragment shader, bagian yang paling tidak intuitif adalah konsep menerima koordinat lalu mengeluarkan warna
    Tidak seperti menggambar dengan pena, shader menentukan warna dengan menghitung posisi tiap piksel
    Kita perlu berpikir dengan cara memanipulasi ruang, bukan memindahkan objek
    Vertex shader terasa lebih alami karena ia mengeluarkan posisi segitiga
    • Itu terasa tidak intuitif hanya ketika fragment shader disalahgunakan
      Sebenarnya ia menangani tahap terakhir dalam pipeline rendering seperti texture sampling dan perhitungan pencahayaan
      Dalam PBR atau deferred rendering, kebanyakan shader dipakai bersama, dan hanya efek khusus yang dikustomisasi
    • Ini seharusnya dilihat bukan sebagai masalah shader itu sendiri, melainkan perbedaan antara grafis raster vs vektor
      Shading bukan menggambar garis luar, melainkan proses merepresentasikan material berbasis fisika
      Lukisan lebih dekat ke shading, sedangkan gambar pena tidak demikian
    • Menggunakan fragment shader untuk menggambar persegi panjang adalah pendekatan yang keliru
      Shader dipakai untuk memberi bayangan/shading pada persegi panjang itu
    • Pada praktiknya, vertex shader mendefinisikan batas, lalu fragment shader mengisi bagian dalamnya
      Untuk tujuan edukasi, vertex shader kadang dihilangkan dan seluruh layar diisi dengan fragment shader
  • Saat mempelajari kode GPU, bagian tersulit adalah pengaturan awal yang rumit dan sulit dipahami
    Konsep seperti format data, urutan transformasi, batas CPU-GPU, dan dokumentasi yang minim membuatnya sulit
    Sistem variabel global pada GPU juga membingungkan
    • Saya juga punya banyak pertanyaan yang sama, jadi saya menulis posting blog untuk belajar WebGL
      Barebones WebGL in 75 lines,
      Barebones 3D rendering with WebGL
      Vulkan membutuhkan jauh lebih banyak boilerplate code daripada WebGL
    • Sebagian dari pertanyaan itu lebih berkaitan dengan desain API daripada GPU itu sendiri
      GPU memakai struktur SIMT, sehingga konsistensi akses data sangat penting
      Transformasi diterapkan secara berurutan di dalam tiap thread, dan batas antara CPU-GPU bisa dilintasi beberapa kali tergantung anggaran performa
      Variabel global adalah konsep konstanta yang dikirim sama ke setiap thread, seperti uniform
      Di CUDA, akses global dimungkinkan lewat operasi atomic, tetapi performanya turun cukup besar
      Kursus pengantar WebGL akan menjadi titik awal yang baik
  • Tingkat penyelesaian situs ini benar-benar sangat tinggi
    Diagram, scrollbar, dan stylenya semuanya luar biasa
    Shader muncul lebih dulu daripada GPU, dan juga bisa dijalankan di CPU
    Inti GPU adalah model eksekusi SIMT/SIMD, dan shader pada dasarnya adalah konsep fungsi callback
    Menurut saya, kesederhanaan dan keanggunan shader datang dari fakta bahwa ia bisa ditulis dengan pola pikir sekuensial yang sama seperti di CPU
    • Yang особенно mengesankan adalah semua ilustrasinya dibuat dengan Figma
    • Saya meninggalkan balasan bahwa feedback-nya luar biasa
  • Karyanya benar-benar indah dan sangat matang
    • 100% setuju. Saya jadi penasaran apakah situs ini adalah aplikasi kustom yang dibuat dengan Next.js
  • Pekerjaan yang luar biasa. Menontonnya menyenangkan dari awal sampai akhir
  • Saya merekomendasikan video Iñigo Quilez, “This painting is a mathematical formula
    Video itu menunjukkan dengan baik konsep shader yang mengekspresikan koordinat x dan y tiap piksel sebagai fungsi