Sports

dari NGP ke Grafit – PlayStation.Blog

Lima tahun lalu, kami menulis tentang bagaimana efek visual di Returnal menjadi hidup, termasuk voxeliser real-time yang melarutkan Phrike ke dalam kabut volumetrik. Jika Anda belum membacanya, postingan itu adalah pendamping yang baik untuk postingan ini.

Beginilah cerita itu berlanjut.

Dengan Saros, kami tidak hanya memperluas apa yang telah kami bangun untuk Returnal. Kami melangkah mundur, melihat akumulasi pengembangan mesin selama tiga puluh tahun, dan membangunnya kembali sebagai kerangka terpadu: Grafit.

Apa yang kami miliki, dan mengapa kami mengubahnya

Mesin partikel milik kami, NGP (Next-Gen Particles), dimulai sebagai prototipe untuk Resogun pada tahun 2013 dan terus berkembang di setiap game sejak saat itu, hingga Returnal. Melalui SAROS, NGP sudah matang, namun juga merupakan hasil dari keputusan bertahap selama dua belas tahun, yang masing-masing dibuat dalam konteks permainan yang spesifik dan terisolasi.

Lalu ada hal lain yang berubah: kita. Bergabung dengan PlayStation Studios berarti memberikan pengalaman pada tingkat yang diharapkan para pemain kami, dan alat kami, serta nama yang kami berikan kepada mereka, tidak lagi sesuai dengan studio tempat kami berada.

Masukkan Grafit. Ini menghadirkan simulasi GPU, rendering, perkakas, dan integrasi DCC dalam satu arsitektur, yang dibuat langsung untuk perangkat keras PlayStation. NGP tidak hilang, ia menjadi bagian dari Grafit, berevolusi dan lebih mampu dari sebelumnya.

Setiap game Housemarque memiliki identitas visual yang langsung dikenali pemainnya. Grafitlah yang memungkinkan hal itu terjadi.

Dan apa yang sebenarnya dilakukannya, bingkai demi bingkai, paling baik dijelaskan oleh orang-orang luar biasa yang membangunnya:

Arsitek Grafis Housemarque Sharman Jagadeesan dan Programmer Grafis Senior Konsta Toivanen akan memandu Anda melewati kabut volumetrik di Saros: bagaimana kabut berevolusi dari Returnal, dan dua sistem yang kami bangun untuk membuat atmosfer Carcosa terasa hidup.

Risto Jankkila (VFX Architect) akan menjelaskan bagaimana kami memperluas Grafit dengan data dari Houdini, termasuk rincian lengkap urutan kemunculan pemain.


Kabut volumetrik

Kabut dalam permainan sering kali hanya menjadi renungan, sesuatu yang mengisi ruang kosong dan menyembunyikan jarak yang jauh. Di Saros, kami ingin dunia menjadi bagian yang hidup, bereaksi terhadap segala sesuatu yang terjadi di dalamnya.

Di Returnal, kabut volumetrik kami sudah reaktif, tetapi frekuensinya terlalu rendah, dan pemfilteran temporal yang berat membuatnya tidak menampilkan detail yang halus. Untuk Saros kami membangun dua solusi yang saling melengkapi: kabut frekuensi rendah untuk suasana sekitar, dan kabut frekuensi tinggi untuk efek karakter yang terlihat di ruang cerita khusus di Carcosa.

Kabut frekuensi rendah

Kami menggunakan kabut froxel Unreal Engine, jaringan voxel yang selaras dengan frustum, sebagai titik awal dan membangun kembali sebagian besar darinya untuk memenuhi visi kami.

Tantangan pertama adalah stabilitas temporal. Koefisien histeresis mengontrol seberapa banyak data frame sebelumnya yang disimpan oleh kabut: Default Unreal sebesar 90% menjaga gambar tetap stabil namun membuat kabut menjadi lamban pada kamera dan lampu yang bergerak cepat. Kami menurunkannya hingga 50%, menggunakan noise jitter biru dan penjepitan kedalaman untuk menjaga aliasing yang dihasilkan tetap terkendali.

Saros juga membutuhkan kabut yang dapat mewakili segalanya, mulai dari kabut sekitar dengan kepadatan rendah hingga kabut tanah dengan kepadatan tinggi. Untuk menerjemahkannya dengan setia, kami menggunakan:

  • A ganda Henyey-Greenstein fungsi fase, memodelkan bagaimana cahaya menyebar maju dan mundur melalui kabut tergantung pada sudut pandang.
  • A koefisien serapan berwarnamenentukan berapa banyak cahaya yang diserap saat melewati suatu medium, untuk rentang warna yang jauh lebih luas dibandingkan solusi monokromatik tradisional.
  • A sistem bayangan diri yang menggabungkan sumber cahaya yang masuk ke arah bayangan dominan dan sinar-sinar bergerak ke arahnya.
  • A integral pencahayaan langit berbasis fisikuntuk pencahayaan jarak jauh yang akurat tanpa mengorbankan performa.

Bersama-sama hal ini memberikan atmosfer Carcosa kualitas fisik yang membumi.

Terakhir, kabut frekuensi rendah sepenuhnya interaktif. Kemajuan dari simulasi fluida yang mengikuti pemain kami dimasukkan langsung ke langkah histeresis kepadatan, membuat setiap pergerakan pemain, proyektil, ledakan, dan musuh dapat dibaca dalam kabut secara real-time.

Kabut frekuensi tinggi

Untuk kabut frekuensi tinggi kami membuat ray marcher khusus. Untuk menjaga performa tetap terkendali sekaligus menjaga fidelitas, kami mengelompokkan data sebar ke dalam grup voxel 8x8x8 sebelum berbaris, hanya menggambar cluster yang berisi data, dengan ambang batas yang ditentukan pengguna untuk menjaga jumlahnya tetap terkendali. Saat berbaris, area kosong di antara kelompok dilewati, sehingga peserta pawai dapat mengambil langkah lebih besar sebisa mungkin.

Untuk penerangan, kami mengevaluasi volume cahaya per volume sebaran, yang mengandung radiasi dari semua sumber cahaya, dengan bayangan mandiri yang telah dibariskan sebelumnya untuk setiap voxel cahaya. Kami mengekspos parameter untuk albedo, serapan, kepadatan, dan bayangan, sehingga seniman dapat menyeimbangkan visual dengan performa untuk setiap volume.

Kedua sistem kabut tersebut kemudian digabungkan: kami mengambil sampel data sebaran kabut frekuensi rendah selama pergerakan frekuensi tinggi, dan memberikan hasilnya kembali sehingga keduanya tetap konsisten satu sama lain.

Kasus penggunaan

Kami menggunakan kabut volumetrik frekuensi tinggi dalam beberapa skenario. Salah satu use case ada di Prolog berupa tengkorak berasap dengan kabel terpasang padanya. Kasus penggunaan lainnya adalah dengan apa yang kami sebut Mirage. Di empat bioma kita terdapat ruang narasi khusus tempat Arjun dihadapkan dengan makhluk asap.

1/2

Sekarang menampilkan slide 1 dari 2

Tengkorak kabut di awal Prolog

Kamar empat lantai dengan Mirage

Reaktivitas adalah kunci dari semua VFX yang kami buat, dan efek ini tidak terkecuali. Karena data dampak tidak memerlukan resolusi tinggi, kami menyimpannya dalam volume terpisah dengan resolusi rendah, yang bagi tengkorak juga menyimpan medan kecepatan frekuensi rendahnya.

Video di bawah menunjukkan volume di sebelah kiri, dan dikombinasikan dengan tengkorak di sebelah kanan. Dampak dievaluasi sebagai Signed Distance Field yang menutup kembali seiring berjalannya waktu, sementara kecepatan ditampilkan dalam warna, Anda dapat melihat lubang dampak dan turbulensi yang ditimbulkannya.

1/2

Sekarang menampilkan slide 1 dari 2

Inilah efek tengkorak terakhir tanpa kabel dan sekunder lainnya dan dalam lingkungan yang berbeda.

Efek fatamorgana mirip dengan efek tengkorak. Bedanya, ada yang disebut “pemandangan” fatamorgana yang berputar. Kami juga menggunakan voxelizer mesh kerangka real-time untuk menghadirkan mesh yang ada ke dalam layar. Video di bawah ini menunjukkan sapuan antara hasil voxel dan hasil akhir dengan data adveksi dari frame sebelumnya.

Inilah efek akhir dengan memutar dua adegan fatamorgana dalam lingkungan pengujian. Untuk reaktivitas, kami menggunakan metode yang sama seperti yang dijelaskan pada efek tengkorak.


Memperluas Grafit dengan data dari Houdini

Selain meningkatkan kualitas rendering efek volumetrik, kami ingin memperkenalkan cara baru bagi seniman kami untuk menciptakannya.

Sebelumnya, efek volumetrik diciptakan dengan menulis ekspresi per-voxel untuk emisi densitas, dikombinasikan dengan simulasi fluida yang menggerakkan adveksi (gerakan terarah) bidang densitas. Karena pendekatan grid-dan-voxel ini adalah standar industri untuk film VFX, ini juga merupakan langkah pertama kami.

Dari hari-hari Kembali: memasukkan Phrike ke dalam jaringan untuk emisi kepadatan

Selama pengembangan Returnal, kami menyadari bahwa kami memerlukan kontrol yang lebih ketat terhadap lokasi tepatnya kepadatan dihasilkan. Logika per-voxel memungkinkan kita memancarkan kepadatan pada permukaan terdekat atau jerat voxel, namun hal yang lebih kompleks akan menimbulkan overhead runtime yang parah. Memancarkan kepadatan hanya dari lengan karakter, bukan seluruh tubuhnya yang terkena voxel, sangat sulit dilakukan secara efisien dalam waktu nyata.

Juga dari Returnal: emisi kepadatan seluruh tubuh dari jaring voxel

Untuk mengatasi hal ini, kami beralih ke partikel untuk mendorong emisi kepadatan volumetrik. Sistem partikel grafit yang sepenuhnya dapat diprogram memberi kita dasar yang kokoh untuk mengontrol volume dengan ketat, sehingga menghasilkan dua alat baru:

Sebuah HAIoffline Houdini Data Pipeline: memungkinkan seniman melakukan pra-komputasi data yang kompleks dan fidelitas tinggi di Houdini yang akan terlalu mahal untuk dihasilkan pada waktu proses.

A Rtidak tepat waktu Psalep Cloud Rasterizer: komponen berkinerja tinggi yang mengambil titik simulasi dan merasternya langsung menjadi volume secara real time.

Bersama-sama, hal ini membebaskan kita dari ekspresi per-voxel tanpa kewarganegaraan dan simulasi fluida yang kaku. Partikel kini dapat mengikuti alur animasi karakter dengan tepat, memberikan seniman kendali penuh atas perilaku dan siklus hidup suatu efek.

Dalam praktiknya, seorang seniman mengimpor karakter animasi Saros ke Houdini dan menggunakan alatnya untuk menghitung posisi awal dan atribut untuk suatu efek. Data yang dipanggang tersebut dimasukkan ke dalam mesin game, tempat simulasi waktu nyata mengambil alih. Dalam video di bawah, poin yang dihasilkan di Houdini sangat cocok dengan karakter dalam game, dan logika runtime khusus memisahkannya dari musuh saat terkena peluru, jadi posisi awal berasal dari Houdini, namun perilakunya bereaksi secara dinamis terhadap pemain secara real time.

Membuat data titik di Houdini

Menggunakan data titik dari Houdini di mesin

Karena seniman dapat mengekspor segala jenis data dari Houdini ke Grafit, sangat mudah untuk melampaui partikel statis yang melekat pada karakter. Di bawah, partikel mengalir melintasi permukaan jaring animasi: permukaan tersebut dibuka di Houdini menjadi ruang simulasi 2D, kemudian diekspor dan dipetakan kembali ke jaring animasi secara real time.

Aliran partikel pada tubuh Arjun di sebelah kiri. Di tengah kami mengekstrak permukaan ISO dari partikel. Di sebelah kanan kita melihat kabut volumetrik yang dipancarkan dari aliran partikel.

Contoh utama dalam game dari penerapan teknologi ini adalah urutan kemunculan pemain di Saros. Efek kompleks ini dibangun dalam beberapa lapisan, dimulai secara offline di Houdini, tempat kami membuat spline langsung ke jaring kerangka pemain. Saat mengekspor spline ini ke Grafit, kami memperlakukan setiap titik kontrol di sepanjang spline sebagai partikel individual.

Mensimulasikan posisi partikel di Houdini. Ini hanya digunakan sebagai posisi target di mesin dan gerakan pertumbuhan akan disimulasikan ulang secara dinamis selama runtime.

Saat runtime, sistem partikel kami yang dapat diprogram mengontrol perilaku elemen-elemen ini seiring waktu. Pada awalnya, spline melayang bebas di ruang angkasa, kemudian secara bertahap memandu kembali ke posisi targetnya pada jaring karakter.

Kami ingin pemain terlihat seperti sedang melakukan reformasi fisik dari kumpulan “goo” yang berubah-ubah. Marching Cubes memberi kita tampilan permukaan padat yang kental, dan mengendalikannya dengan partikel memungkinkan kita membangun urutan di mana pemain membentuk untaian terpisah menjadi sebuah karakter.

Kubus berbaris dibuat dari spline partikel

Sama seperti spline yang menghasilkan permukaan lengket, kita juga dapat memancarkan kepadatan volumetrik. Dalam urutan pemijahan, kami menempatkan sejumlah spline partikel di dekat lokasi pemain dan memunculkan kabut volumetrik dari spline tersebut untuk menyimulasikan naiknya uap atau asap.

Kabut volumetrik yang dipancarkan dari spline partikel

Sebagai sentuhan terakhir, kami menambahkan partikel percikan yang bertabrakan dengan karakter pemain, menggunakan bidang jarak bertanda yang dihitung dari kapsul tumbukan pemain. Sistem partikel yang dapat diprogram sekali lagi memberi kami fleksibilitas di sini: pemutar menarik partikel, namun begitu partikel tersebut terlalu dekat, jaring pemutar akan menolaknya, membantu menjual tampilan yang muncul dari cairan panas seperti lava.

Partikel bertabrakan dengan kapsul pemain SDF

Ini semuanya digabungkan. Setiap elemen disimulasikan saat runtime, pada 60 fps di PS5 dasar, tanpa aset simulasi yang dipanggang. Hal ini memungkinkan kami mengirimkan beberapa animasi spawn, masing-masing dengan sedikit pengacakan sehingga terlihat sedikit berbeda setiap kali pemain bangun.

Urutan spawn pemain terakhir


Perjalanan pembangunan yang terus berkembang

Membaca apa yang diuraikan Risto, Sharman, dan Konsta di sini, tujuan kami dan teknologi kami selalu sama: setiap simulasi, setiap efek, setiap keputusan rendering ada untuk membuat Anda merasakan sesuatu saat bermain.

Membuat game berarti memercayai sesuatu yang belum bisa Anda buktikan, dan satu-satunya orang yang bisa memastikannya adalah para pemainnya sendiri. Para pemain Saros memberi tahu kami, dengan kata-kata mereka sendiri, bahwa apa yang kami bangun itu penting. Dan itu berarti segalanya bagi kami.

Game kami akan terus menginformasikan teknologi yang kami kembangkan untuk Graphite, selalu menampilkan apa yang bisa dilakukan PlayStation sebagai sebuah platform. Kami tidak sabar untuk berbagi masa depan itu dengan Anda.

PakarPBN

A Private Blog Network (PBN) is a collection of websites that are controlled by a single individual or organization and used primarily to build backlinks to a “money site” in order to influence its ranking in search engines such as Google. The core idea behind a PBN is based on the importance of backlinks in Google’s ranking algorithm. Since Google views backlinks as signals of authority and trust, some website owners attempt to artificially create these signals through a controlled network of sites.

In a typical PBN setup, the owner acquires expired or aged domains that already have existing authority, backlinks, and history. These domains are rebuilt with new content and hosted separately, often using different IP addresses, hosting providers, themes, and ownership details to make them appear unrelated. Within the content published on these sites, links are strategically placed that point to the main website the owner wants to rank higher. By doing this, the owner attempts to pass link equity (also known as “link juice”) from the PBN sites to the target website.

The purpose of a PBN is to give the impression that the target website is naturally earning links from multiple independent sources. If done effectively, this can temporarily improve keyword rankings, increase organic visibility, and drive more traffic from search results.

Jasa Backlink

Download Anime Batch