1 poin oleh GN⁺ 2023-12-21 | 1 komentar | Bagikan ke WhatsApp
  • Bahkan di era game 2D ketika 3D sungguhan sulit diwujudkan, para pengembang menciptakan kesan kedalaman dengan parallax scrolling dan Mode 7 di SNES, dan Perspective Mode di Diablo 2 menunjukkan garis keturunan itu di dalam 2D ARPG
  • Don’t Starve membangun adegan yang terasa tiga dimensi sambil memperlakukan semak, pohon, dan musuh sebagai aset datar, dan Diablo 2 menghasilkan kesan serupa dalam game 2D tahun 2000 dengan menggabungkan rendering lantai dan transformasi sprite
  • Perspective Mode di Diablo 2 bukan sekadar efek yang memindahkan sprite, melainkan menciptakan distorsi seolah seluruh layar miring ke arah cakrawala, sehingga titik hilang dan perspektif terlihat jelas
  • Blizzard membagi sprite DT1 menjadi potongan 32×32px dan mencoba mengurangi celah dalam adegan dengan mentransformasikan objek seperti dinding dan pagar secara berbeda sesuai nilai orientation
  • Menurut informasi Gamasutra yang kemudian dibagikan, Perspective Mode memerlukan kartu grafis 3D, menciptakan kedalaman dan efek parallax dengan sedikit memutar, menskalakan, dan meregangkan tekstur mini tile, dan implementasinya memakan waktu sekitar 1~2 minggu

Teknik awal yang membuat 2D terlihat seperti 3D

  • Pada 1990-an, game mulai berpindah dari 2D ke 3D, tetapi bahkan sebelum 3D sungguhan hadir, para pengembang sudah memakai berbagai trik untuk membuat tampilan yang terlihat seperti 3D
  • Metode yang paling representatif adalah efek parallax
    • Berdasarkan jarak, beberapa elemen bergerak cepat sementara yang lain bergerak lambat untuk menciptakan kesan kedalaman
    • Moon Patrol dari 1982 menghasilkan kesan tiga dimensi yang kuat hanya dengan menggerakkan beberapa bidang pada kecepatan berbeda
  • Mode 7 pada era SNES bukan 3D sungguhan, tetapi membuat layar tampak memiliki perspektif dengan memanipulasi tekstur lantai
    • Menurut penjelasan GBA, bahkan tanpa hardware 3D sungguhan, 3D bisa ditiru dengan memanipulasi nilai skala dan perpindahan pada tiap scanline
    • Metode ini lebih dekat ke manipulasi tekstur yang mengubah ketinggian menjadi kesan kedalaman

Pemanfaatan aset datar di Don’t Starve dan Diablo 2

  • Saat ini semua aset bisa dirender sebagai 3D sungguhan, tetapi tidak semua adegan memerlukan model tiga dimensi
  • Semak, pohon, dan musuh di Don’t Starve adalah aset datar, tetapi tetap menghasilkan tampilan yang cukup menarik secara visual
  • Diablo 2 adalah 2D ARPG yang dirilis pada 2000, dan menjadi contoh yang sekaligus mengingatkan pada parallax ala Moon Patrol dan ekspresi lantai ala Mode 7
  • Diablo 2 dengan pengaturan dasar adalah tampilan 2D murni
    • Tidak ada perspektif
    • Tidak ada efek parallax juga
  • Saat Perspective Mode diaktifkan, piksel lantai yang sama tidak terus-menerus tertutup oleh pilar, dan seperti Don’t Starve, aset datar tampak bergerak di dalam ruang yang memiliki kedalaman

Cara menganalisis Perspective Mode Diablo 2

  • Karena hampir tidak ada informasi resmi tentang Diablo 2, Perspective Mode diteliti dengan alat untuk mengekstrak dan menganalisis file MPQ dan DT1
    • MPQ Editor digunakan untuk mengekstrak file DT1 dari MPQ
    • DT1 Tools digunakan untuk mengekstrak file PCX dari DT1
    • DT1 Tutorial digunakan untuk memahami format DT1
  • Perspective Mode bukan efek sederhana yang hanya sedikit menggeser sprite
    • Jika layar dengan mode aktif dan nonaktif dibandingkan pada posisi yang sama, semua elemen menunjukkan distorsi seolah miring ke arah cakrawala
    • Jika pola kotak-kotak dimasukkan ke tekstur lantai, distorsinya terlihat lebih jelas
  • Karena adegan tersusun dari banyak potongan sprite, celah pada batas mudah muncul selama proses distorsi
    • Diablo 2 menjaga tampilan tetap berpola perspektif sambil tetap menyambungkan potongan-potongan itu

Potongan 32×32 dan nilai orientation

  • Blizzard membagi sprite menjadi bagian 32×32px
    • Ini tampak seperti optimasi untuk hanya memuat bagian gambar yang diperlukan
    • Ini juga terlihat berguna saat menerapkan distorsi dalam Perspective Mode
  • Jika tekstur pilar diberi garis tiap 32px sehingga tampak seperti wireframe palsu, garis-garis vertikal terlihat seolah mengarah ke titik hilang jauh di bawah tanah
  • Pada beberapa sprite, batas bawah tampak melengkung
    • Jika hanya mempertimbangkan perspektif, lengkungan seperti itu tidak selalu diperlukan
    • Distorsi ini berubah tergantung sudut pandang terhadap sprite atau posisi pemain dan kamera
  • Dalam format DT1, sprite dapat memiliki nilai orientation
    • Menurut dokumen Paul Siramy, cara transformasi sprite bisa berbeda tergantung nilai arah tersebut
    • Contohnya mencakup arah dinding seperti Left Wall, Upper Wall, dan Lower-Left corner
  • Sprite dengan arah berbeda, seperti dinding atau pagar, ditransformasikan dengan cara yang berbeda pula
    • Dalam beberapa kasus, batas atas dan bawah tidak melengkung, dan garis batas tampak mengarah ke titik hilang di sisi kiri
    • Game ini tampaknya agak melebih-lebihkan distorsi untuk menghindari celah, dan sprite pagar saling menyatu dengan baik
    • Jika dinding yang sama diberi nilai orientation yang salah, akan muncul celah di antara sprite

Informasi tambahan yang dipublikasikan dan contoh serupa

  • Perspective Mode hanya bisa diaktifkan di Diablo 2 saat menggunakan D3D fullscreen
    • Diablo 2 juga mendukung Glide dan Software Rendering
    • Dokumen DirectX lama sempat dicari untuk menemukan informasi tambahan, tetapi tidak membuahkan hasil
  • Pada pembaruan berikutnya, tautan terkait distorsi gambar ditambahkan
    • image aberration tampak sangat mirip dengan distorsi yang terlihat pada Perspective Mode Diablo 2
    • Tidak diketahui apakah pengembang Diablo 2 benar-benar menggunakannya
  • Tulisan Gamasutra yang dibagikan Paul Siramy menjelaskan implementasi Perspective Mode secara lebih langsung
    • Untuk mengaktifkan Perspective Mode, dibutuhkan kartu grafis 3D
    • Diablo II menggunakan kisi yang lebih rinci dengan menyusun tile berlian besar dari banyak tile berlian kecil
    • Tekstur tiap mini tile sedikit diputar, lalu kartu video menggambarnya ke dua poligon dan meregangkannya secara vertikal dan horizontal agar tampak membesar atau mengecil sesuai posisi karakter
    • Pohon dan bangunan tampak berubah ukuran saat mendekat atau menjauh, dan bergulir dengan kecepatan berbeda dari objek latar depan dan latar belakang, menghasilkan efek parallax
    • Fenomena objek yang tampak sedikit berkilau dijelaskan sebagai hasil bilinear filtering pada kartu grafis
    • Karakter, item, hingga struktur seperti gubuk dan menara di Act I juga diperbesar dan diperkecil dalam Perspective Mode
    • Menurut penjelasan Dave, sedikit scaling dan stretching diterapkan pada kisi dengan matematika 3D sungguhan untuk menciptakan kesan kedalaman
    • Implementasinya memakan waktu sekitar 1~2 minggu, dan memerlukan penyelarasan dinding serta pemrosesan pencahayaan, sementara para artist harus memotong ulang objek dan merendernya dengan cara berbeda
  • Pada pembaruan 3, Cultures juga ditambahkan sebagai contoh yang menggunakan trik perspektif 2D serupa

1 komentar

 
GN⁺ 2023-12-21
Opini Hacker News
  • Ini dulu ada di daftar hal yang saya penasari, jadi sekarang bisa saya coret. Kalau ada yang tahu bagaimana langit World of Warcraft dibuat, dan meski tidak sedalam itu, bagaimana terrain Warcraft 3 dibuat, saya ingin diberi tahu
    Saya selalu berpikir terrain Warcraft 3 tampaknya memakai marching squares dengan cerdik. Sudah lebih dari 10 tahun saya penasaran; fitur seperti siang/malam/awan/bulan/bintang luar biasa, indah dan ringan, sepertinya diperbarui selang satu frame tetapi tetap sangat natural. Rasanya bukan render-to-texture, sangat mulus sampai poligon atau texel tidak terlihat, dan fakta bahwa itu berjalan di komputer tahun 2002 membuatnya menjadi keajaiban technical art

  • Saya masih bermain D2 berkat orang-orang yang menjalankan Project Diablo 2[1]. Mode perspektif benar-benar indah di 144fps, dan cukup sulit untuk kembali ke 30fps milik klien LoD asli
    Sampai sekarang saya masih punya ingatan dan nostalgia ketika menuruni tangga berliku di Pandemonium Fortress dan dibuat terpukau oleh grafisnya yang indah—atau mungkin kata yang lebih pas adalah menyeramkan
    [1] https://www.projectdiablo2.com/

  • Menurut saya Mode 7 pada dasarnya lebih dekat ke akselerator 3D primitif. Ia merender satu bidang tekstur dengan berbagai transformasi, jadi secara prinsip bisa dibilang sama “3D sungguhan”-nya dengan GPU modern, hanya saja sangat terbatas dan kurang akurat

    • Tidak begitu. Mode 7 hanya bisa memperbesar/memperkecil, menggeser, dan memutar layer dalam 2D. Misalnya pertarungan Bowser di Super Mario World adalah contoh penggunaan klasik: Bowser bergerak dan kadang berputar, lalu di antara ronde ia terbang seperti “3D” lewat zoom in/out
      Hack 3D yang lebih meyakinkan datang dari koprosesor di cartridge. Game seperti Super Mario Kart memakai chip tambahan untuk cepat menghitung parameter Mode 7 baru pada setiap scanline; jika zoom dan pergeseran diubah pada setiap baris sementara rotasi dibiarkan sama, baris atas terlihat lebih kecil dan baris bawah lebih besar, sehingga menghasilkan kesan 3D yang miring
      Cara “mengubah skala zoom per scanline” ini sangat berbeda dari GPU modern dan juga bukan transformasi arbitrer. Misalnya dengan teknik ini, bidang hanya bisa diputar terhadap sumbu horizontal, tidak bisa terhadap sumbu vertikal
    • Benar-benar lebih mirip fixed pipeline
  • Grafika komputer awal selalu menakjubkan untuk dilihat. Saya yakin tanpa kontribusi animasi awal dan grafika komputer awal, baik software maupun hardware akan tertinggal beberapa generasi dari sekarang
    Kalau melihat NVIDIA, memang hampir seperti keberuntungan bahwa arsitektur yang sama berguna untuk bentuk awal machine learning dan “kecerdasan buatan”, tetapi perusahaan itu sendiri dibangun di atas grafika komputer

    • Tidak persis begitu. NVIDIA memang tidak meramalkan AI, tetapi sejak sangat awal mereka berinvestasi pada komputasi serbaguna. Nilai pasarnya saat ini adalah hasil dari mendorong visi itu secara konsisten selama 20 tahun dan mengeksekusinya dengan baik
    • Sebelumnya, area seperti pemrosesan vektor dan SIMD adalah ranah superkomputer seperti Cray lama
  • Alasan tepi bawah sprite begitu melengkung mungkin karena perlu meniru titik hilang “di bawah” tanah untuk sprite vertikal. Jika tiga tiang melebar ke luar dan berputar di bagian atas, bagian bawahnya juga harus ikut berputar sampai taraf tertentu, dan transformasi shear sederhana akan terlihat janggal
    Di adegan 3ds Max, karena diletakkan tepat menghadap viewport dan teksturnya persegi, shear tampak baik-baik saja sehingga perbedaannya mungkin tidak terlalu terlihat. Dalam contoh bergerak, jika dilihat lebih mendekati kenyataan, tiga tiang memang seharusnya melebar relatif terhadap sudut pandang saat semakin dekat, dan render 3ds Max tidak menunjukkannya dengan baik

  • Artikel ini berfokus pada parallax dalam game, tetapi efek parallax punya sejarah panjang dalam animasi
    Kamera multiplane Disney dan pendahulunya sudah ada hampir 100 tahun lalu. Bahkan dengan gambar 2D, ada banyak trik untuk menyusun adegan yang terasa memiliki kedalaman
    https://en.wikipedia.org/wiki/Multiplane_camera

  • Sepertinya developer cukup puas dengan efek parallax itu, tetapi saya tidak ingat pernah benar-benar memakainya. Mungkin karena saya sudah terbiasa dengan pengaturan default, jadi rasanya aneh saja

    • Karena sprite tidak dirender pada skala 1:1, kualitas visualnya juga menurun. Dari perspektif modern, ketika sedikit efek 3D sudah tidak lagi mengejutkan, menurut saya itu justru terlihat lebih buruk
    • Layarnya terasa lebih “dekat”, jadi musuh yang terlihat lebih sedikit. Itu jadi masalah saat bermain sebagai pengguna spell
    • Pada masanya, ketika karakter bergerak cepat dan banyak objek penghalang seperti dinding atau pohon lewat, itu memang memberi kesan 3D. Saya ingat beberapa rendering juga membuat efek pencahayaan terlihat lebih baik
  • Orang menyebut 3D di game lama seperti ini “bukan sungguhan”, tetapi game 3D modern pun pada akhirnya ditampilkan di layar datar. Kalau begitu, bukankah pada dasarnya itu juga bukan 3D sungguhan dalam arti yang sama?

    • Tidak harus begitu. Game 3D modern menempatkan kamera di posisi arbitrer, lalu memakai aljabar linear untuk meratakan 3D ke ruang clip 2D dan melakukan rasterisasi. Game seperti D2 hanya membuat ilusi 3D dengan sprite dan offset, dan sejak awal tidak punya sistem koordinat 3D. Dalam game seperti ini, pergerakan biasanya juga dibatasi pada dua sumbu
      Perbedaan penting lainnya adalah sprite yang sudah dirender sebelumnya. Dalam game seperti Roller Coaster Tycoon atau Diablo, model dibuat di komputer khusus yang mahal lalu dirender menjadi sprite sheet. Meski objek tampak seperti 3D, biasanya asetnya didistribusikan sebagai aset datar. Beberapa game pixel art modern bahkan menyertakan normal map bersama sprite 2D untuk menerapkan pencahayaan dinamis
      Efek parallax di game modern bisa dengan mudah diimplementasikan hanya dengan merender objek datar di dalam adegan 3D, tetapi pipeline grafis 20 tahun lalu sangat berbeda, sehingga untuk menghasilkan efek 3D dibutuhkan cara yang jauh lebih cerdik
    • Benar. Artikel itu menyebut bidang 3D datar yang diimplementasikan dengan Mode 7 sebagai “3D palsu”, tetapi hasilnya terlihat hampir sama dengan satu poligon bertekstur. Bedanya hanya “kamera”-nya mengizinkan perubahan yaw dan pitch, tetapi tidak mengizinkan roll
      Itu hanya batasan situasi 3D yang bisa dirender oleh sistem Mode 7, bukan berarti hal yang dapat dirender itu sendiri lebih palsu. Pada akhirnya, semua metode rendering 3D memanipulasi kisi piksel 2D di layar untuk menciptakan ilusi seolah kita melihat objek virtual