Minggu, 07 Oktober 2012

Pengantar Bisnis Informatika


BISNIS INFORMATIKA

Di Susun Oleh :
TRI MULYANINGSIH
56409146




UNIVERSITAS GUNADARMA
2012

KATA PENGANTAR


Puji syukur saya ucapkan atas kehadirat Allah SWT, karena dengan rahmat dan karunia-Nya saya masih diberi kesempatan untuk menyelesaikan makalah ini.  Dalam penyusunan makalah ini disadari bahwa masih banyak kekurangan dalam cara penyajian maupun materinya, untuk itu dengan segala kerendahan hati setiap kritik dan saran yang bersifat membangun akan diterima demi penyempurnaan makalah ini. Demikian makalah ini penulis buat sebaik baiknya dengan harapan bermanfaat bagi kita semua.


BAB I

Latar Belakang

Perkembangan teknologi informasi dalam dunia bisnis semakin hari semakin pesat dan sangat membantu memberikan kemudahan bagi kehidupan manusia dalam melakukan bisnis. Bisnis dan teknologi informasi merupakan kedua hubungan yang sangat erat dalam penerapannya, adapun peranan teknologi informasi dalam bisnis adalah membuat suatu kumpulan data murni (mentah) untuk kemudian diproses menjadi suatu informasi yang pada akhirnya bisa digunakan untuk proses pengambilan keputusan oleh pihak perusahaan yang memiliki bisnis tersebut. Karena peranan teknologi informasi yang penting tersebut, banyak perusahaan yang menerapkan suatu teknologi informasi menjadi sesuatu hal yang diwajibkan untuk mendukung kegiatan yang dilakukan dalam perusahaan tersebut. Dengan semakin berkembangnya sistem jaringan internet di kalangan masyarakat awam, maka teknologi berbasis internet pun dapat menjadi salah satu cara yang ampuh untuk menjadi tempat penjualan dan memudahkan transaksi dilakukan tanpa dibatasi oleh jarak dan waktu.

Ruang Lingkup
Pada pembuatan makalah ini penulis membatasi ruang lingkup permasalahan mengenai pengertian bisnis, pengertian bisnis informatika, perkembangan bisnis informatika, peranan teknologi informatikadi bidang bisnis dan contoh bisnis informatika.
Tujuan Penulisan
Tujuan penulisan ini adalah memberikan informasi mengenai bisnis informatika dengan perkembangan dan contohnya.

Bab II
Pembahasan

Pengertian dan Fungsi Bisnis
Ø  Bisnis dalam arti luas adalah istilah umum yang menggambarkan semua aktifitas dan institusi yang memproduksi barang & jasa dalam kehidupan seharihari
Ø  Bisnis sebagai suatu sistem yang memproduksi barang dan jasa untuk memuaskan kebutuhan masyarakat kita (bussiness is then simply a system that produces goods and service to satisfy the needs of our society)
Ø  Bisnis merupakan suatu organisasi yang menyediakan barang atau jasa yang bertujuan untuk mendapatkan keuntungan

Dari pendapat di atas dapat disimpulkan bahwa
Bisnis adalah kegiatan yang dilakukan oleh individu dan sekelompok orang (organisasi) yang menciptakan nilai (create value) melalui penciptaan barang dan jasa (create of good and service) untuk memenuhi kebutuhan masyarakat dan memperoleh keuntungan melalui transaksi
Aspek-aspek bisnis :
Ø   Kegiatan individu dan kelompok
Ø   Penciptaan nilai
Ø   Penciptaan barang dan jasa
Ø   Keuntungan melalui transaksi

Fungsi bisnis dilihat dari kepentingan mikroekonomi dan makroekonomi
Ø  Pekerja / Karyawan
Pekerja menginginkan gaji yang layak dari hasil kerjanya sementara manajer menginginkan kinerja yang tinggi yang ditunjukkan besarnya omzet penjualan dan laba
Ø  Dewan Komisaris
Memantau kegiatan dan mengawasi manajemen, memastikan kegiatan akan berjalan mencapai tujuan
Ø  Pemegang Saham
Pemegang saham memiliki kepentingan dan tanggung jawab tertentu terhadap perusahaan

1. Fungsi Mikro Bisnis
Kontribusi terhadap pihak yang berperan langsung
Ø  Masyarakat sekitar perusahaan
Memberikan kontribusi kepada masyarakat sekitar sebagai bentuk tanggung jawab perusahaan
Ø  Bangsa dan Negara
Tanggung jawab kepada bangsa dan negara yang diwujudkan dalam bentuk kewajiban membayar pajak
2. Fungsi Makro Bisnis
Kontribusi terhadap pihak yang terlibat secara tidak langsung
Elemen dan Sistem Bisnis
Ø  Modal (capital)
Sejumlah uang yang digunakan dalam menjalankan kegiatan bisnis

Ø  Bahan-bahan (materials)
Merupakan faktor produksi yang diperlukan dalam melaksanakan aktifitas bisnis untuk diolah menghasilkan barang dan jasa yang dibutuhkan masyarakat
Ø  Sumber Daya Manusia (SDM)
Kualifikasi SDM :
Memiliki kemampuan kompetitif dan berkualitas tinggi
Ø  Ketrampilan Manajemen (Management Skill)
Sistem manajemen yang dijalankan berdasarkan prosedur dan tata kerja manajemen

Bisnis Informatika
Bisnis informatika adalah suatu kegiatan yang dilakukan individu atau sekelompok orang yang memiliki nilai (value) dengan tujuan mendapatkan keuntungan (profit) yang dilakukan dengan bantuan teknologi informasi. Yang dimaksud teknologi informasi disini mencakup semua hal yang berkaitan dengan teknologi informasi, seperti internet. Bisnis informatika berkembang dengan pesat akhir – akhir ini seiring dengan berkembang pesatnya pula teknologi informasi. Karena Bisnis Informatika muncul karena adanya peluang yang terdapat di dalam suatu teknologi informasi. Tidak dapat di pungkiri sekarang internet sudah mengalami pergeseran kebutuhan di dalam masyarakat. Yang dahulu Internet merupakan suatu kebutuhan pelengkap atau masih merupakan kebutuhan yang “mewah” bagi sebagian masyarakat, sekarang menjadi suatu kebutuhan sekunder ataupun kebutuhan primer. Karena sekarang kita dapat semakin mudah dan murah untuk mendapatkan akses internet. Hal ini tidak lepas dari semakin berkembangnya teknologi informasi.
Peranan Teknlogi Informasi di bidang Bisnis
Di bidang bisnis baik perdagangan barang maupun jasa komputer peranan teknologi informasi akan sangat penting untuk kegiatan transaksi baik rutin, periodik, maupun insidental dan menyediakan banyak informasi dengan cepat dan tepat.  Sistem Informasi ManajemenSistem informasi manajemen (Management Information System – MIS), merupakan sistem informasi yang sudah banyak diterapkan pada perusahaan yang bergerak di bidang perdagangan barang dan jasa baik pada perusahaan besar, menengah, atau perusahaan kecil. SIM dapat diterapkan pada semua tingkat atau level manajemen yang ada yaitu manajemen tingkat atas (top management), manajemen tingkat menengah (middle management), dan manajemen tingkat bawah (lower management).
Di perusahaan dagang seperti department store, telah dipergunakan mesin cash register (mesin kasir) yang dilengkapi dengan kendali komputer sehingga mesin tersebut dapat dikendalikan oleh pihak manajer hanya dari ruang kerjanya secara cepat dan tepat, untuk scanning barcode kode barang dagangan, menghitung laba rugi, inventaris, dan sebagainya. Di bidang perbankan, salah satu solusi sistem informasi perbankan telah diperkenalkan oleh perusahaan besar seperti Hewlett-Packard (HP), yang bekerja sama dengan Infosys telah memperkenalkan solusi core banking, yang disebut Finacle kepada bank-bank di Indonesia. Finacle memberikan solusi bagi bank yang ingin melakukan up-grade terhadap sistem yang telah mereka miliki. Dengan menggunakan Finacle, up-grade sistem bisa dilaksanakan dengan resiko investasi maupun kegagalan migrasi yang rendah. Ini penting bagi bank-bank agar mampu menghadapi siklus bisnis yang selalu berubah. Dengan solusi terpadu ini – berupa software dan hardware, jaringan, sistem integrasi, serta opsi consulting dan outsourcing – bank juga akan memiliki nilai tambah sehingga menjadi lebih kompetitif.
Perkembangan teknologi informasi telah mempengaruhi kebijakan dan strategi dunia usaha perbankan yang selanjutnya lebih mendorong inovasi dan persaingan di bidang layanan terutama jasa layanan pembayaran melalui bank. Inovasi jasa layanan perbankan yang berbasis teknologi tersebut terus berkembang mengikuti pola kebutuhan nasabah bank. Transaksi perbankan berbasis elektronik, termasuk internet dan menggunakan handphone merupakan bentuk perkembangan penyedia jasa layanan bank yang memberikan peluang usaha baru bagi bank yang kerakibat pada perubahan strategi usaha perbankan, dari yang berbasis manusia (tradisional) menjadi berbasis teknologi informasi yang lebih efisien dan praktis bagi bank. Pada perusahaan jasa seperti perbankan komputer digunakan untuk menghitung bunga secara otomatis, transaksi on-line, ATM, dan sebagianya. Komputer juga banyak digunakan untuk proses akuntansi, melakukan analisis keuangan, neraca, laba-rugi, dan sebagainya. Bahkan ada beberapa software yang secara khusus disediakan untuk operasi akuntansi. Di bidang perhotelan komputer digunakan untuk menentukan jumlah dan jenis kamar yang telah terisi dan masih kosong. Bahkan saat ini pada penjualan pertokoan kecil, usaha kecil dan menengah (UKM), apotek dan bermacam-macam usaha kecil lainnya juga telah banyak menggunakan komputer.

Contoh Bisnis Informatika

Bisnis Online
Belakangan ini bisnis jual-beli online makin banyak dikarenakan faktor faktor pendukung seperti situs-situs jejaring sosial seperti facebook jadi kita bisa menggunakan facebook untuk mengupload foto barang dagangan kita,forum-forum seperti kaskus di forum jual-beli.
Ada beberapa cara untuk sukses dalam bisnis online.
1. Rancang Bisnis dengan Cermat
Rancang rencana bisnis online Anda dengan cermat. Pikirkan segala aspek seperti target pasar, kemampuan pesaing, sumber daya, resiko dan perkembangan bisnis yang ingin ada jalankan bagaimana membangun loyalitas konsumen atau menjalin kemitraan strategis. Pakai referensi memadai, misalnya belajar dari situs bisnis di internet atau pun buku yang mendukung.
2. Temukan Sasaran Pasar Spesifik
Bisa jadi ide bisnis online Anda menarik, namun tak ada artinya jika tidak ada sasaran pasar yang spesifik. Temukan pasar yang belum ada pesaing. Jika Anda bertarung dengan pemain besar, pastikan bisnis Anda memiliki diferensiasi yang menarik konsumen.
3. Cari Sumber Keuangan
Pikirkan dari mana Anda akan mendapat modal sebagai sumber dana bisnis jual-beli online. Pinjaman bank bisa jadi pilihan yang baik. Jangan lupa untuk membuat administrasi keuangan yang rapi sehingga arus keluar masuk keuangan tampak jelas.
4. Buat Situs yang Handal
Anda memang bisa memanfaatkan blog yang gratis untuk memulai bisnis. Namun jika berniat serius, belilah domain dan sewa perancang situs yang handal. Pastikan situs Anda tidak rumit, memudahkan pengakses serta selalu update.
5. Promosi Jitu
Yang tidak kalah penting dalam bisnis online adalah promosi yang jitu. Bisa dicoba bermacam metode, misalnya via Google AdWords di mana pengiklan hanya membayar sesuai jumlah pengakses situsnya. Manfaatkan pula e-mail atau situs jejaring untuk mempromosikan bisnis Anda pada banyak orang.
6. Permudah Transaksi Konsumen
Dalam melakukan transaksi konsumen harus dimudahkan untuk melakukan transaksi dan pemesanan di situs Anda. Berikan pula tingkat keamanan situs yang memadai sehingga konsumen percaya detail identitas mereka tidak bocor.
7. Motivasi untuk Terus Maju
Selalu butuh waktu agar bisnis internet berkembang. Sebagai entrepeneur online, Anda perlu energi, antusiasme, determinasi, dan gairah untuk maju. Perlu disadari bahwa sukses besar di bisnis internet cukup langka. Namun tak perlu pula kecil hati karena cerita kesuksesan bisnis online sudah amat banyak
E-COOMERCE
E-Commerce adalah bagian dari e-business karena adanya penggunaan teknologi informasi berupa internet dan jaringan komputer lainnya untuk menjalankan proses bisnis utama beruapa pembelian dan penjualan yang digunakan sebagai transaksi bisnis antara perusahaan yang satu dengan perusahaan yang lain, antara perusahaan dengan pelanggan (customer), atau antara perusahaan dengan institusi yang bergerak dalam pelayanan-pelayanan public dalam rangka memangkas biaya operasional untuk meningkatkan mutu layanan maupun kecepatan penyampaian informasi
Contoh E-commerce

Belanja Online

Membeli dan menjual barang di Internet adalah salah satu contoh paling populer dari e-commerce. Penjual membuat etalase produk di internet layaknya outlet ritel. Pembeli dapat mencari dan membeli produk dengan klik mouse. Contoh populer untuk tempat belanja secara online adalah Amazon.com.

Pembayaran Elektronik

Ketika kita membeli barang secara online, perlu ada mekanisme untuk membayar online juga, yang mana melakukan pembayaran cukup dengan mengetikkan sederetan angka dan kode serta klik mouse yang dilakukan pada komputer yang online

Pembayaran elektronik adalah cara yang efisien dikarenakan tidak lagi memerlukan proses menulis dan mengirimkan cek atau tagihan. Pembayaran secara online juga menutupi celah keamanan yang timbul pada sitem pembayaran yang dilakukan dalam mata uang kertas.


Lelang online

Situs lelang online terkenal adalah eBay. Lelang fisik telah lama populer mendahului lelang online, tetapi Internet membuat lelang bisa diakses oleh sejumlah besar pembeli dan penjual. Pelelangan online merupakan mekanisme yang efisien untuk penemuan harga. Banyak pembeli online lebih tertarik dengan mekanisme lelang daripada belanja di toko biasa.


Internet Banking

Sekarang ini sangat memungkinkan bagi kita untuk melakukan keseluruhan transaksi perbankan tanpa harus beranjak dari kursi rumah kita mengunjungi cabang bank terdekat. Keterhubungan antara website dengan rekening bank, dan dengan kartu kredit merupakan pokok utama dalam e-commerce.

Tiket online

Tiket pesawat terbang, tiket film, tiket kereta api, tiket pertunjukan musik, tiket pertandingan olahraga, tiket konser musik, dan hampir semua jenis tiket dapat dipesan secara online. Membeli tiket secara online menjadikan kita tidak harus capek mengantri di depan loket penjualan tiket.

E-Bisnis
Secara garis besar E-bisnis adalah penggunaan teknologi informasi dan komunikasi oleh organisasi, individu, atau pihak-pihak terkait untuk menjalankan dan mengelola proses bisnis utama sehingga dapat memberikan keuntungan—dapat berupa berupa keamanan, fleksibilitas, integrasi, optimasi, efisiensi, atau/dan peningkatan produktivitas dan profit. 
Contoh E-Bisnis
situs resmi Android Market yaitu https://market.android.com yaitu suatu situs website milik salah suatu perusahaan internet terbesar didunia yakni Google
  1. Jasa Warnet
Bisnis warnet juga termasuk dalam bisnis informatika karena secara tidak langsung bisnis ini dilakukan dengan bantuan media teknologi informasi. Perkembangan bisnis warnet sangan pesat sekali seiring dengan perkembagan internet, kita ambil contoh saja yaitu perkembangan jejaring sosial seperti facebooktwiter , game online , dll. Semua itu akan menarik seseorang untuk datang ke tempat warnet, tentu usaha warnet merupakan peluang bisnis yang menjanjikan.
2.                  2.       Penyedia Jasa Berita dan infotainment online
Bisnis ini merupakan bisnin yang menyediakan jasa berita secara online. Dengan bantuan ini kita akan mendapat kan berita yang kita inginkan secara cepat dan tentunya up to date. Penyedia jasa ini seperti goal.com , detik.com , kapanlagi.com, dll.

Salah satu inspirasi bisnis informatika mahasiswa ITB :

Teknologi bisa menjadi hal yang sangat menyenangkan dan sangat menguntungkan bagi Achmad Zaky. Pria berusia 24 tahun ini memutuskan untuk menggeluti bisnis di bidang teknologi informasi (TI). Zaky mengaku mempunyai hobi dengan apapun yang berhubungan dengan TI sejak masih kuliah di Institut Teknologi Bandung (ITB). 

Dengan modal awal sekira Rp20 juta, lalu Zaky mendirikan sebuah perusahaan software developer SMS di Bandung pada 2006, yakni Deft Technology. Sebagai seorang wirausaha pemula, omzet yang didapatkannya bisa dibilang cukup besar, yakni sekira Rp15 juta untuk satu produk perangkat lunak. Pada saat itu, biasanya Zaky menangani 6 proyek dalam satu tahun. Setelah lulus kuliah pada 2008, Zaky memutuskan untuk meneruskan bisnisnya di Jakarta. Pasalnya, kata dia, potensi pasar di Jakarta jauh lebih besar daripada Bandung.

Sesampainya di Jakarta, perjalanan yang dilalui Zaky tidak semulus seperti apa yang diharapkan. Bahkan, Zaky sempat ditolak beberapa klien ketika menawarkan proposal bisnis. Namun, Zaky tidak langsung putus asa. Lambat laun, bisnisnya terus berkembang. Pada saat ini, perusahaan yang dijalankan Zaky berganti nama menjadi Suitmedia. Zaky lantas mengajak dua temannya, Nugroho dan Fajrin, untuk ikut bergabung. "Mereka adalah teman baik saya dan mahasiswa terbaik pula di angkatan saya waktu itu, jadi saya ajak bergabung” jelas Zaky ketika ditemui di kantornya di bilangan Mampang Prapatan, Jakarta.

PT Kreasi Online Indonesia (Suitmedia) adalah perusahaan yang memberikan berbagai jasa solusi new media seperti membuat perangkat lunak berbasis internet dan mengembangkan aplikasi Android dan BlackBerry untuk beberapa koran nasional. Selain solusi teknis, Suitmedia juga membantu perusahaan untuk menganalisis dan mengembangkan strategi.


"Akhirnya setahun lalu kita baru bikin Suitmedia dan ada badan hukumnya. Sebelumnya kan hanya CV. Saya memiliki rekan kerja yang sangat kompeten. Di sisi lain, saya tidak mau hanya kerja saja, tapi juga terpanggil untuk creating jobs dan memberikan manfaat terhadap orang lain lewat produk kami," kata Zaky. Menurutnya, Suitmedia telah dipercaya menangani proyek dari perusahaan-perusahaan besar, sebut saja Samsung, Telkomsel, dan PT Recapital Advisors. Maka, tak pelak, omzet yang didapat Zaky pun terus bertambah. Hingga akhir tahun 2010 saja, Suitmedia mampu meraup omzet sekitar Rp800 juta, dengan modal kerja sebesar Rp40 juta per bulan. Zaky pun optimistis akan mendapatkan omzet hingga Rp1 miliar pada 2011.

“Sebenarnya ada enam proyek baru, tapi tiga di antaranya dikerjakan pada 2010. Adapun tiga proyek lain dikerjakan pada 2011, ” tutur Zaky.

Suitmedia merupakan induk usaha dari beberapa anak usaha seperti Bukalapak.com. Pada saat ini, jumlah pengunjung Bukalapak.com sudah mencapai 11 ribu orang dengan page view sebanyak 200 ribu. Padahal, website yang berbasis jual beli online ini baru resmi beroperasi pada April 2010. "Kami sadar manfaat Bukalapak.com ini banyak, tapi ada komunitas khusus yang bakal merasakan manfaat lapak ini. Nah, kami excited dengan hal ini, ” papar Zaky.

Untuk memperkuat fondasi bisnisnya, Zaky melakukan dua pendekatan, yakni secara eksternal atau dengan klien dan internal atau dengan sumber daya manusia (SDM) di dalam perusahaan. “Yang penting adalah bagaimana kita memberi nilai tambah yang lebih besar. Misalnya, kami janji memberikan lima, tapi pada hasil akhirnya memberikan tujuh, jadi klien juga senang. Untuk mendapatkan klien baru, biasanya kita terus menjalin komunikasi, mulai dari obrolan secara nonformal. Di situ kita jadi tahu kebutuhan mereka. Networking penting sekali,” ujar Zaky.

Selain itu, SDM juga merupakan salah satu poin yang menjadi prioritas Zaky. Pada saat ini, Suitmedia telah mempunyai karyawan 13 orang. Ke depan, Zaky akan merekrut tambahan SDM. “Kita sangat concern untuk pengembangan SDM, maka ada konsep mentor. Jadi seorang manajer harus bisa mementor lah, tidak bisa hanya perintah ini itu,” tutur Zaky. Menurut Zaky, ke depan, bisnis TI sangat berpotensi besar untuk berkembang. Maka, Zaky berencana melakukan beberapa hal guna memajukan usahanya, yakni mulai dari memperbaiki sistem keamanan di Bukalapak.com hingga membuat website jejaring sosial. “Ke depan, rencananya akan mengembangkan potensi-potensi yang kami punya. Untuk saya, bisnis adalah menciptakan nilai tambah,yakni bagaimana kita menyelesaikan masalah klien. Kita pikirkan yang terbaik untuk klien.

Bab IV

Kesimpulan

Penulisan ini berisi mengenai bisnis di bidang informatika dengan perkembangan yang sangat pesat. Bisnis dan teknologi informasi merupakan kedua hubungan yang sangat erat dalam penerapannya. Dengan semakin berkembangnya sistem jaringan internet di kalangan masyarakat awam, maka teknologi berbasis internet pun dapat menjadi salah satu cara yang ampuh untuk menjadi tempat penjualan dan memudahkan transaksi dilakukan tanpa dibatasi oleh jarak dan waktu.

Saran

Pembuatan penulisan bisnis informatika hanya sebatas memberikan informasi mengenai bisnis informatika dengan perkembangan dan contohnya sehingga pengguna tidak mendapatkan banyak informasi lebih jauh lagi dari informasi yang didapat  merupakan salah satu kekurangan pada penulisan ini. Hal tersebut dapat dijadikan bahan untuk pengembangan dan penyempurnaan dari penulisan ini agar lebih baik lagi.

Daftar Pustaka


Artikel non- personal, "Bisnis", http://id.wikipedia.org/wiki/Bisnis , 3 Oktober 2012
Artikel non-personal, “Institue Bisnis dan Informatika Indonesia”, http://id.wikipedia.org/wiki/Institut_Bisnis_dan_Informatika_Indonesia, 23 Mei 2012
Adam, “Pengantar bisnis informatika”, http://ianeridanuadam.blogspot.com/2010/10/pengantar-bisnis-informatika.html, 3 Oktober 2010
Sonpie, “Pengantar bisnis informatika”, http://jhonsonpie.blogspot.com/2011/10/pengantar-bisnis-informatika.html, 4 Oktober 2011
Fastkaya, “Peluang bisnis sukses usaha bidang ti”

Senin, 09 Juli 2012

Particle Systems : Anatomy of a Particle System and The Particle Data Structure (TRI)


Anatomi Sistem Partikel

Sebuah sistem partikel pada dasarnya adalah sebuah formalisme matematika yang digunakan untuk menggambarkan fenomena seperti
  • Dinamis dan waktu tergantung
  • Sangat paralel dengan komponen individu kecil
  • Kompleks
Contoh perilaku tersebut termasuk asap dari cerobong asap, api, burung terbang pada sekelompok ternak, kepingan salju, dan ratusan fenomena lainnya. Sistem partikel adalah konteks sensitif, yang berarti mereka dapat digunakan untuk model yang sangat berbeda situasi. Sistem partikel adalah alat, tapi tidak berarti menggunakan kasus spesifik itu sendiri. Dengan mengubah beberapa komponen bagian, bisa disesuaikan dengan masalah, asalkan mengikuti filsafat global yang diuraikan sebelumnya.

Sistem partikel diperkenalkan pada awal tahun 1980 oleh Pixar (kemudian bagian dari efek Lucasfilm khusus kelompok) untuk film Star Trek II: The Wrath of Kahn. Secara khusus, sistem partikel digunakan untuk mewakili ledakan reaksi berantai di permukaan planet, sehingga planet ini berubah dari melihat, mati tandus kepenuh hidup ekosistem.

Sebuah sistem partikel fundamental terdiri dari berbagai partikel, masing-masing berubah secara dinamis sesuai beberapa didirikan rutinitas. Anda dapat model hujan individu bereaksi terhadap gravitasi dan angin, burung
melaksanakan rutinitas AI sederhana, dan sebagainya. Semua partikel telah parameter yang sama mengendalikan tampilan dan perilaku. Tapi karena mereka berkembang dalam ekosistemnya, masing-masing mengikuti evolusi sedikit berbeda, dan yang diinginkan kompleksitas muncul secara alami.

Lokal Versus global Partikel Sistem

Sistem partikel secara luas dapat dibagi menjadi dua kelompok besar, yang disebut sebagai lokal dan global. Sebuah sistem lokal terdiri dari sekelompok partikel yang berperilaku seolah-olah masing-masing sendirian. Dengan demikian, interaksi antara partikel tidak dipertimbangkan, dan semua perhitungan lokal untuk partikel saat ini. Pada ujung lain dari spektrum, sistem partikel global yang melibatkan partikel yang berinteraksi dan bereaksi terhadap setiap lainnya. Dalam sistem partikel, perilaku setiap partikel individual tergantung sebagian pada sendiri karakteristik, tetapi juga pada interaksi dengan anggota kelompok lainnya.

Banyak kali sistem lokal tidak lain adalah sebuah penyederhanaan dari sistem global. Sebagai contoh, perhatikan kelompok daun jatuh dari pohon, ditiup angin. Jika Anda ingin model dengan akurat, Anda perlu mempertimbangkan perubahan lintasan jika dua atau lebih daun bertabrakan, membuat perilaku daun tunggal tergantung pada sisanya. Jelas, ini akan menghasilkan sistem partikel global. Tapi banyak permainan lebih memilih untuk mengabaikan tumbukan daun dan, dengan menyederhanakan simulasi, menerapkannya sebagai sistem partikel lokal.

Ketika Anda akan segera menemukan, kedua kelompok memiliki kelebihan yang berbeda dan masalah, dan memerlukan spesifik pemrograman teknik. Jelas, sistem partikel global yang menghasilkan jauh lebih kompleks dan menarik
perilaku. Tetapi kekayaan tidak datang secara gratis. Menghitung pengaruh partikel lain biasanya akan meningkatkan biaya komputasi kami secara signifikan. Jadi, sistem partikel global harus ditangani dengan benar.




Struktur Partikel data



Mendefinisikan struktur data partikel berarti menjawab "apa" pertanyaan: Apa yang kita pemodelan? Apakah akan menjadi api, asap, atau air? Jelas, fenomena yang berbeda akan membutuhkan parameter partikel yang berbeda.

Ketika memilih struktur data partikel, penting untuk membuat satu set parameter yang bersifat cukup tapi tidak kembung. Mengingat sifat paralel dari sistem partikel, memiliki parameter berlebihan akan meningkatkan
jejak memori, sedangkan memiliki parameter kontrol terlalu sedikit akan menurunkan kualitas visual sistem.

Sistem partikel secara tradisional ditangani dengan barang-barang bergerak cepat tanpa interaksi di antara mereka. baik itu Ledakan bunga api, hujan, atau air, struktur yang mendasari hampir identik. Berikut adalah partikel asli struktur diambil dari Kertas SIGGRAPH mani Reeves (lihat referensi di Lampiran E, "Lebih lanjut Membaca"):

  • posisi
  • Kecepatan (vectorial)
  • Ukuran
  • Warna
  • Transparansi
  • Bentuk
  • Lifetime

Struktur ini digunakan untuk membuat beberapa efek agak maju dalam Star Trek II: The Wrath of Kahn. kita bisa membagi menjadi dua kelompok parameter yang berbeda:
  • Parameter yang berhubungan dengan perilaku partikel
  • Parameter yang berhubungan dengan tampilan partikel
Parameter perilaku harus cukup untuk mengimplementasikan simulator partikel menarik. Dengan demikian, adalah penting untuk menganalisis jenis perilaku kita mencoba untuk mensimulasikan, untuk memahami parameter yang diperlukan. Tempat terbaik untuk mengumpulkan informasi ini dari buku pegangan fisika, terutama yang berurusan dengan dinamika untuk partikel atau badan kaku. Mempelajari kekuatan Anda akan berlaku untuk partikel. Apakah Anda perlu gesekan? Kecepatan?Percepatan? Cobalah untuk memahami peran global-lingkup konstanta. Misalnya, tidak masuk akal untuk memiliki setiap partikel menyimpan gravitasi konstan. Bahwa nilai akan sama dalam semua mereka. Di sisi lain, berat setiap partikel mungkin berguna dalam beberapa keadaan.

Begitu Anda telah menentukan parameter yang perilaku simulator Anda membutuhkan, Anda akan perlu menentukan mereka parameter berurusan dengan tampilan partikel. Berikut kemungkinan hampir tak terbatas. Anda pasti akan membutuhkan warna partikel, pencampuran mode, ukuran, dan tekstur pengenal, tetapi kebanyakan sistem partikel perlu banyak lebih parameter. Untuk partikel padat, Anda mungkin perlu untuk menentukan jala akan Anda gunakan untuk melukis partikel animasi counter, lingkaran cahaya, dan puluhan fitur lainnya. Berikut saran yang terbaik adalah untuk memisahkan partikel render dari loop simulasi, sehingga Anda dapat menguji melukis satu partikel dalam program yang terpisah. Ini cara ini Anda dapat menyempurnakan hasil visual dan memutuskan mana parameter Anda partikel penyaji perlu menyampaikan tampilan yang tepat.

Sistem Generik Partikel
Sekarang kami memiliki pemahaman global apa sistem partikel, mari kita melihat lebih dekat bagaimana kita bisa menerapkannya. Perhatikan definisi kelas berikut untuk sistem partikel dasar:
class particlesystem
{
particle *data;
int numparticles;
public:
void create(int); // creates a system of n particles
void recalc();
void render();
private:
void spawn(int); // spawns particle n
void affect(int) // affect particle n by outside forces
};

Perhatikan bagaimana kita perlu spawn and affect rutinitas secara partikel. Kedua rutinitas menerapkan inti sistem: bagaimana partikel yang lahir dan apa proses simulasi mereka menjalani. Kedua rutinitas bisa benar-benar menjadi bagian dari sebuah kelas partikel, jika diperlukan, untuk lebih memperjelas kode.

Pemijahan Partikel
Partikel dibuat pada beberapa jenis emitor, yang menginisialisasi parameter mereka. Jika kita ingin sistem kami untuk berperilaku dengan cara yang menarik, kuncinya adalah untuk menghasilkan partikel masing-masing dengan nilai awal yang sedikit berbeda, sehingga aturan perilaku (yang dimiliki oleh semua partikel) membuat setiap melihat seorang seperti unsur unik.
Berbagai emitter telah sering digunakan. Yang paling terkenal adalah emitor titik, yang menghasilkan semua partikel pada suatu titik dalam ruang, seperti dalam ledakan. Namun ledakan tidak dilahirkan di satu titik dalam ruang. Bahkan, hanya Big Bang terjadi seperti ini, dan kami bahkan tidak yakin tentang itu. Ledakan di dunia nyata memiliki volume dan bentuk, sebagai partikel api muncul dari objek meledak. Jadi, kadang-kadang kita akan
mengacaukan titik, sehingga partikel yang lahir di daerah sekitarnya, tetapi tidak cukup pada titik. Ini adalah sangat pendekatan umum dalam penciptaan sistem partikel: menambahkan jumlah keacakan sehingga hasil tidak terlihat terlalu teratur dan algoritmik. Misalnya, untuk titik emitor kami, kami akan menggunakan sesuatu seperti ini:

point pos(3,5,4); // particles are born in 3,5,4
pos.x += ((float)rand()%2000-1000)/1000;
pos.y += ((float)rand()%2000-1000)/1000;
pos.z += ((float)rand()%2000-1000)/1000;

Tiga baris terakhir menerapkan distorsi dari satu ke segala arah, positif atau negatif. Jadi sebenarnya Volume partikel muncul dari satu sisi kubus berpusat pada 3,5,4. Filosofi ini sangat berakar dalam disiplin ini yang bahkan memiliki nama: jittering, yang menggambarkan penambahan jumlah terkontrol kebisingan untuk mengurangi tampilan algoritmik simulasi.
Ada juga bentuk lain dari emitter. Untuk mensimulasikan salju atau hujan, misalnya, Anda mungkin akan menggunakan 2D poligon selaras dalam pesawat XZ. Berikut adalah kode sumber untuk menghitung seperti poligon:
point pos(3,5,4); // particles are born in 3,5,4
pos.x += ((float)rand()%2000-1000)/1000;
pos.z += ((float)rand()%2000-1000)/1000;
Dalam hal ini saya telah membuat sebuah persegi, yang sangat umum. Bentuk 2D lain dapat diterapkan juga. Jenis ketiga emitor direferensikan dalam hal posisi pemain. Bayangkan bahwa Anda perlu untuk mensimulasikan hujan. Sangat mungkin, Anda tidak akan mengisi tingkat seluruh permainan dengan ratusan ribu hujan individu. Ini hanya tidak masuk akal karena tetesan air hujan jauh tidak akan terlihat. Dalam skenario ini, akan menjadi besar untuk menghasilkan hujan tepat di mana pengguna dapat melihat paling, yang langsung di depannya. Jadi, kita menghasilkan hujan di koordinat reguler kami, dan kemudian menerjemahkan dan memutar ke posisi akhir sistem partikel dan rotasi. Berikut adalah contoh bagaimana untuk menghasilkan partikel ini. Saya berasumsi fov adalah bukaan horizontal kamera, dan distnear and distfar adalah berbagai jarak kita ingin mengisi dengan partikel:
float dist=distnear+(distfar-distnear)*((float)rand()%1000)/1000;
float angle=fov*(((float)rand()%2000)-1000)/1000;
point p(dist*cos(angle),0,dist*sin(angle));
p.rotatey(camera_yaw);
p.translate(camera_position);
Kode ini menghasilkan partikel tepat di depan kamera, sehingga mereka memenuhi layar tetapi tidak pergi ke mana saja lain. Hanya partikel kita benar-benar perlu dipertimbangkan. Tipe lain dari emitor adalah emitor layar berbasis, yang digunakan untuk efek partikel yang dihitung layar ruang, seperti jejak air yang ditinggalkan oleh hujan di permukaan kamera. Partikel ini lahir mana saja, tapi selalu direferensikan ke kamera viewport. Jadi, mereka menghasilkan sedikit berbeda. Sebuah 2D sistem partikel diberikan dengan pipa 3D dimatikan, seperti mesin sprite dari masa lalu.
Generasi dari partikel tidak terlalu kompleks, itu hanya partikel pada persegi panjang 2D. Berikut adalah kode:
pos.x += SCREENX*((float)rand()%2000-1000)/1000;
pos.y += SCREENY*((float)rand()%2000-1000)/1000;
Kode ini mengasumsikan bahwa SCREENX, SCREENY memegang resolusi dalam pixel di layar. Jelas, sebagian besar kompleksitas sistem ini tidak dalam pemijahan partikel, tetapi dalam rendering yang sebenarnya. Anda dapat melihat berbagai jenis emitter pada Gambar 19.1.
Gambar 19.1. Emitter untuk efek yang berbeda.

Setelah kita memiliki emitor, sekarang saatnya untuk beralih ke parameter berikutnya. Kecepatan awal harus ditentukan. Beberapa pilihan populer di sini adalah kecepatan arah (semua partikel bergerak dalam arah yang sama), kecepatan radial (partikel bergerak menjauh dari pusat), rotasi (seperti dalam tornado), atau acak. Masing-masing harus dilaksanakan dengan tingkat tertentu dari jitter, partikel sangat berbeda memiliki sedikit berbeda parameter dan karenanya evolusi.

Parameter lainnya dapat disetel sebagai ini: Warna, alpha (sangat penting jika partikel memudar saat mereka mati), texturing koordinat, dan sebagainya semua harus diatur. Selain itu, kita perlu menetapkan usia partikel siklus hidup dan parameter. Ini dapat diimplementasikan dengan dua cara: Anda dapat mengatur usia partikel ke nol dan memiliki parameter kedua itu adalah waktu untuk hidup partikel. Pada setiap tick simulasi, Anda meningkatkan usia sampai waktu untuk hidup (yang tidak lain adalah counter) tercapai, dan partikel yang tewas dan respawned di tempat lain. Karena kutu simulasi biasanya tetap panjang, kita mendapatkan perangkat-independen kecepatan.

Alternatif adalah untuk membangun bukan usia, tetapi instan di mana partikel itu melahirkan. Anda akan mendapatkan yang dari sistem dengan panggilan untuk timeGetTime (), menyimpannya, dan kemudian menggunakannya untuk perhitungan usia. Pada dasarnya, pada setiap loop Anda akan recompute waktu saat ini dengan timeGetTime (), kurangi waktu lahir dari nilai kedua (dengan demikian menghitung usia dalam milidetik partikel), dan membandingkannya dengan waktu untuk hidup, yang juga merupakan periode waktu yang tidak hanya loop counter seperti dalam kasus sebelumnya. Seperti biasa,programmer yang berbeda lebih memilih satu pendekatan atau yang lain karena alasan pribadi.

Partikel Perilaku
Jika struktur partikel mencoba untuk mendefinisikan apa yang kita akan mensimulasikan, mesin perilaku harus berusaha untukmeniru bagaimana fenomena tertentu berkembang dari waktu ke waktu. Apakah ini akan menjadi simulasi berbasis fisik, atau akan itu stokastik? Pilihan yang paling umum adalah untuk menerapkan beberapa jenis dinamika pada partikel sehingga mereka meniru fenomena dunia nyata.

Mari kita lihat beberapa contoh meningkatnya kompleksitas. Untuk mulai dengan, bayangkan bahwa kita harus membuat partikel hujan sistem, mencoba untuk mendapatkan efek hujan meyakinkan berat. Air hujan bergerak dengan kecepatan yang sangat tinggi sebagai mereka jatuh ke tanah, sehingga kita bisa membuat asumsi bahwa mereka tidak terpengaruh oleh angin atau lainnya eksternal kekuatan. Membuat objek cepat mengubah arah sulit, karena kekuatan yang kita butuhkan untuk memasok untuk itu meningkatkan dengan kecepatan. Dengan demikian, air hujan kami yang melahirkan dengan algoritma yang sama dengan yang dijelaskan dalam sebelumnya bagian, dan kita hanya perlu recompute posisi mereka.
Sekarang, dari fisika yang sangat dasar Anda tahu bahwa
Position = initial position + velocity*time
Mengambil ini sebagai persamaan diferensial untuk jangka waktu singkat, kita dapat menulis ulang untuk membentuk
dPosition = Velocity*dt
Dimana dPosition adalah perubahan posisi, Velocity adalah kecepatan sesaat pada titik waktu tertentu, dan dt adalah diferensial waktu kita ingin mengevaluasi perbedaan posisi masuk Berikut kita mengasumsikan bahwa Kecepatan ini berlaku sepanjang detik dt, yang umumnya palsu. Kami mengambil satu sampel dan generalisasi untuk interval waktu. Hal ini membuat jenis simulator, yang disebut Euler Integrator, sangat labil sistem yang lebih kompleks. Tapi untuk sistem partikel, ini adalah cara untuk pergi karena kesederhanaan mereka dan keanggunan. Jadi bagaimana kita mengubahnya ke dalam menjalankan kode? Kita mengganti dt bagi perbedaan di antara kutu simulasi berturut-turut dan menggunakan kecepatan arus sebagai parameter kecepatan. Sekarang, kita dapat menggabungkan dasar fisika Newtonian ke dalam persamaan. Mari kita tinjau bagaimana ini bisa bekerja, dimulai dengan persamaan
F=m*a
Akan menjadi
a=F/m
Tapi tetap percepatan adalah derivatif kedua posisi, seperti dalam
a=d2x/dt2
Jadi sekarang kita memiliki hubungan dasar antara cinematics (akselerasi) dan dinamika (pasukan). dasarhukum cinematics kemudian dapat ditulis kembali sebagai
v=dx/dt
a=dv/dt
Dan dengan demikian harus kita lakukan adalah mewakili kekuatan dan menghitung percepatan yang didasarkan pada mereka. Ambil, Misalnya, gravitasi, sebagaimana diatur dalam ekspresi
f=m*g
dimana g = (0, -9.8,0). Lain, pasukan yang lebih menarik dapat diwakili juga. Berikut adalah ekspresi untuk tarik kental, yang disebabkan oleh proyektil mencoba menyeberang media yang menawarkan perlawanan. Tarik kental sebanding dengan kecepatan, sehingga objek lebih cepat memiliki kekuatan yang lebih besar menentang mereka. Dalam persamaan, kd adalah media yang tergantung konstan disebut koefisien drag:
F = -kd * (dx/dt) = -kd * v
Sebuah hukum, ketiga menarik mengatur perilaku partikel dihubungkan oleh pegas elastis. Setiap musim semi memiliki panjang ideal, jadi jika kita kompres dengan menggerakkan dua partikel ini lebih dekat dengan panjang istirahat, kekuatan akan mencoba untuk memisahkan mereka. Jika kita mencoba untuk memisahkan mereka di luar panjang istirahat, gaya akan menentang itu juga. Ini hukum disebut Hooks Hukum Semi dan sangat menarik karena merupakan titik awal menarik fisika simulasi teknik. Berikut adalah persamaan lengkap:

Ini adalah sepotong mengesankan matematika, tapi jangan ditunda olehnya. Prosedur kami akan selalu sama. Beberapa jenis pasukan digambarkan pada Gambar 19.2. Berikut adalah algoritma untuk menghitung keseluruhan fisika berbasis
partikel sistem:
1. Hitung jumlah dari pasukan berinteraksi dengan partikel pada suatu titik waktu tertentu.
2. Turunkan percepatan dari pasukan.
3. Gunakan perbedaan waktu untuk menghitung perubahan posisi dan kecepatan menggunakan integrasi Euler.
Gambar 19.2. Beberapa kemungkinan kekuatan yang dapat bertindak pada partikel.
Berikut ini, misalnya, kode yang diperlukan untuk menerapkan perilaku mesin yang mengambil gravitasi dan konstanta lateral yang berlaku (seperti vektor angin) menjadi pertimbangan. Ini dapat digunakan untuk membuat semacam air mancur panas efek:

for (i=0;i<num_particles;i++)
{
elapsed_time=(timeGetTime()-time_last_call)/1000.0; // in seconds
// first, compute forces
point gravity_force=particle[i].weight*gravity;
point wind_force=(...) // compute wind
point total_force=gravity_force+wind_force; // resulting force on particle
// second, derive accelerations
point accel=total_force/particle[i].weight;
// third, integrate
particle[i].velocity+=accel*elapsed_time;
particle[i].position+=particle[i].velocity*elapsed_time;
}
Jadi sebenarnya cukup mudah untuk membuat partikel berbasis simulasi fisik. Namun, banyak perilaku yang didefinisikan estetis, tidak secara fisik. Perlu diingat bahwa ketika Anda membuat sistem partikel Anda. Ambil, Misalnya, kolom asap. Lintasan asap benar-benar sulit untuk mensimulasikan fisik. Asap itu arah tergantung pada temperatur, angin, bahan kimia yang terkandung dalam asap, dan sejumlah faktor kita hanya tidak dapat mempertimbangkan dalam permainan real-time. Jadi, asap biasanya simulasi estetis, tidak secara fisik. Jika Anda berpikir tentang hal itu, segumpal asap pada dasarnya adalah serangkaian partikel asap (masing-masing diberikan baik dengan quad asap tekstur). Partikel-partikel ini memancarkan dari satu titik dengan kecepatan di positif vertikal arah. Ketika mereka naik, mereka dipengaruhi oleh kekuatan-kekuatan yang kompleks, yang membuat bentuk kolom entah bagaimana menarik tetapi juga sulit untuk mensimulasikan. Berikut adalah simulator asap cukup populer:
for (i=0;i<num_particles;i++)
{
elapsed_time=(timeGetTime()-time_last_call)/1000.0; // in seconds
// first, compute forces
point wind_force=noise(particle[i].position);
point raise_force(0,1,0); // due to temperature smoke always rises
point total_force=wind_force; // resulting force on particle
// second, derive accelerations
point accel=total_force/particle[i].weight;
// third, integrate
particle[i].velocity+=accel*elapsed_time;
particle[i].position+=particle[i].velocity*elapsed_time;
}
Dalam simulator ini, kebisingan () adalah panggilan ke rutinitas kebisingan populer Perlin, yang menghasilkan kebisingan terus menerus dalam ruang 3D. Kebisingan memungkinkan kita untuk membuat pola-pola gerakan, yang entah bagaimana terlihat seperti asap, berputar dan naik dari tanah. Jelas, pendekatan ini adalah murni estetika didorong, tetapi setelah semua, permainan merupakan estetika-driven industri pada intinya.
Partikel Kepunahan

Partikel dalam suatu sistem tidak dimaksudkan untuk hidup sangat lama. Setelah siklus hidup mereka habis, mereka akan dihapus dan respawned di emitor. Hal ini biasanya berarti partikel telah melintasi layar atau melakukan siklus penuh dan dengan demikian dapat masuk kembali dalam satu lingkaran. Beberapa sistem partikel, dengan ledakan menjadi contoh nyata, akan nonlooping. Partikel diciptakan, hidup, mati, dan kemudian sistem partikel secara keseluruhan dimatikan.
Meskipun demikian, kita sekarang akan fokus pada sistem-sistem di mana partikel harus dibuat ulang untuk memahami kode dibutuhkan untuk melakukan itu.
Umumnya, sebuah partikel meninggal setelah umurnya melampaui waktu untuk hidup. Ketika saat ini tiba, yang harus kita lakukan adalah memanggil rutin bertelur lagi, melewati ini identifier partikel sebagai parameter. Dengan demikian, kita mendapatkan baru partikel dengan parameter segar di mana kami harus yang lama. Jadi, tidak ada penghapusan memori atau realokasi adalah benar-benar diperlukan. Yang kami lakukan adalah mendaur ulang posisi dalam array untuk elemen baru.
Dari sudut pandang estetika, sangat penting memudar partikel keluar entah bagaimana ketika mereka mendekati mereka kematian. Kegagalan untuk melakukannya akan membuat partikel melihat hilangnya menjengkelkan karena partikel cerah akan tiba-tiba menghilang. Sejumlah teknik dapat digunakan untuk menangani situasi ini dengan benar. Dalam sebuah partikel hujan sistem, misalnya, tetes hujan tidak dibunuh oleh usia, tetapi dibunuh setiap kali mereka melewati bidang tanah.
Dengan demikian, tidak ada kemungkinan partikel "bermunculan" dari tempat kejadian, karena mereka akan menyeberangi lantai dasar dalam kerangka tepat sebelum kehancuran mereka. Ambil kolom asap, misalnya. Di sini, kita perlu cerdik menggunakan nilai alpha memudar partikel masuk dan keluar.
Partikel akan buram di masa kejayaan mereka dan kemudian akan lahir dan mati hampir transparan. Perhatikan bahwa perawatan yang sama kita dengan kematian partikel harus diambil dengan kelahiran mereka. Kami tidak ingin partikel untuk mampir tiba-tiba entah dari mana. Sebuah trik yang bagus untuk memastikan bahwa campuran partikel alfa dengan baik bila mereka memasuki dan meninggalkan panggung adalah untuk memodulasi alfa mereka sebagai fungsi dosa, seperti
alpha=sin(PI*age/maxage);
Argumen ke panggilan dosa mengembalikan nilai floating-point dalam kisaran dari 0 ke Pi. Kemudian, fungsi dosa mengevaluasi ke nol (dengan demikian, benar-benar transparan) pada kedua nilai, dan naik mulus ke 1 di antara untuk mewakili opacity di tengah partikel kehidupan.

Rendering Partikel

Believability dari sistem partikel tergantung pada render sebanyak itu tergantung pada simulasi yang sebenarnya perilaku. Kita dapat mengubah massa orang untuk mengalir air dengan hanya menyesuaikan render partikel kami mesin.
Mengingat sejumlah besar fenomena yang dapat dimodelkan menggunakan partikel, tidak mengherankan bahwa pendekatan render yang berbeda ada. Tapi ada beberapa tips umum untuk mengikuti, yang dibahas dalam bagian berikut.
Hitung Partikel murah
Partikel Rendering dapat menjadi bermasalah, terutama ketika berhadapan dengan sejumlah besar elemen. Jangan lupa kita harus memutar dan menerjemahkan setiap partikel individu sehingga menghadapi penonton dan memberikan tepat ilusi. Rotating memiliki biaya, terutama bila Anda melakukannya berkali-kali. Kita bisa memilih untuk membuat partikel satu per satu, berputar satu masing-masing dengan tumpukan yang terdiri dari matriks rotasi dan terjemahan. Tapi karena transformasi hanya bisa dilakukan di luar porsi rendering, kita perlu untuk membuat partikel secara terpisah, dan dengan demikian menghilangkan pilihan untuk mengirim mereka dalam batch, yang selalu lebih efisien. Dengan demikian, metode yang berbeda akan digunakan. Pendekatan pertama adalah untuk meluruskannya dengan kamera sendiri dengan merancang hak dan sampai vektor, dan kemudian mendefinisikan partikel berdasarkan pada mereka. Di dunia dengan yaw saja, vektor kanan (dengan menganggap ke kamera dan layar) dapat didefinisikan sebagai
point right(cos(yaw+pi/2),0, sin(yaw+pi/2));
Dan vektor up yang hanya
point up(0,1,0);
Kemudian, layar-blok billboard ukuran S di pos posisi dapat didefinisikan sebagai
P1=pos-right*S-up*S;
P2=pos+right*S-up*S;
P3=pos+right*S+up*S;
P4=pos-right*S+up*S;
Skema sebelumnya digambarkan pada Gambar 19.3.
Gambar 19.3. Menghitung vektor dan tepat untuk partikel.
Metode ini dapat dengan mudah diperluas untuk kamera penuh dengan roll, pitch yaw, dan. Dalam hal ini, menghitung vektor diri sendiri adalah bukan ide yang baik, karena Anda bisa mendapatkannya dari matriks modelview, seperti yang disajikan dalam kode berikut:
glGetFloatv(GL_MODELVIEW_MATRIX, mat)
right.create(mat[0], mat[4], mat[8]);
up.create(mat[1], mat[5], mat[9]);
Sebuah alternatif yang lebih baik adalah membiarkan API menyelaraskan billboard menggunakan fungsi perangkat keras. paling modern kartu video dapat menangani billboard internal, sehingga semua kita melewati bus adalah partikel koordinat dan tidak banyak lagi. Kartu ini juga menangani membangun paha depan dan membuat mereka ke layar. Ini memberikan hasil yang jauh lebih baik karena kita menghemat sumber daya bus dan menghindari transformasi. Fungsi ini ditemukan pada kedua OpenGL dan DirectX bawah bentuk Sprite Point. Dalam OpenGL itu adalah bagian dari perpanjangan, dan dalam DirectX itu sudah tertanam ke API inti.
Gunakan Mode Blending Tepat
Kekuatan ekspresif yang besar tersedia jika Anda belajar bagaimana untuk melepaskan itu. Mode blending banyak tersedia untuk Anda bereksperimen dengan dan menciptakan sistem mencari unik. Dua mode dasar yang disaring dan aditif campuran. Campuran disaring didefinisikan oleh nilai-nilai alpha:
SRC_ALPHA, ONE_MINUS_SRC_ALPHA
Ini memberikan tampilan sebuah partikel semitransparan, seperti hujan. Partikel ini tidak menerangi diri, sehingga menambahkan lapisan semakin banyak tidak akan membuat cerah melihat adegan. Yang dapat dicapai melalui blending aditif, seperti
SRC_ALPHA, ONE
Animasi Textures
Sistem partikel banyak membutuhkan Anda untuk pergi satu langkah lebih hanya partikel menjiwai menggunakan berkualitas tinggi simulator. Bayangkan bola api, misalnya. Dinamikanya terlalu cepat dan kompleks untuk membuat setiap partikel sebagai quad statis. Jadi, kita perlu mengkombinasikan simulator yang baik dengan partikel tingkat animasi, sehingga setiap partikel memiliki beberapa frame animasi, biasanya disimpan dalam tekstur yang sama seperti ubin. Kemudian, partikel akan siklus melalui frame animasi selama siklus hidupnya, membuat tampilan keseluruhan jauh lebih dinamis. Jika Anda memilih untuk mengikuti jalan ini, hanya membuat partikel yakin tidak sinkron dalam loop animasi mereka, atau efek akan benar-benar hancur. Partikel yang berbeda harus berada pada frame yang berbeda dalam animasi pada setiap diberikan dalam waktu.
Chained / hirarkis Sistem
Dinamika dunia nyata sering menggabungkan beberapa tahap untuk membuat ilusi komposit kompleks. Mengambil ledakan itu dibuat oleh penembakan roket, misalnya. Api muncul dari knalpot, dan kemudian awan besar asap dan uap air yang dihasilkan. Selain itu, partikel kecil es terpisah dari bangunan utama, mengikuti lintasan yang berbeda. Bagaimana kita bisa mencirikan itu? Apakah sistem partikel? Jelas tidak, karena ada beberapa jenis partikel, masing-masing diatur oleh simulator berbeda dengan rendering yang berbeda mesin. Tetapi sistem dapat dilihat sebagai keseluruhan: sistem sistem partikel. Jadi, kita harus merancang kami sistem partikel sehingga kami dapat agregat dan rantai mereka ke dalam kelompok. Kita perlu array dari sistem dan pesan-passing kebijakan yang memungkinkan chaining untuk mengambil tempat. Sebagai contoh, adalah ide yang baik untuk menambahkan "Memadamkan perilaku" untuk partikel, yang mendefinisikan tindakan apa yang dilakukan setiap kali kita perlu respawn partikel. Perilaku ini akan kosong secara default, tapi kita bisa memutuskan untuk menciptakan partikel dari berbeda dari satu ini memadamkan. Pikirkan elemen api yang, setelah kehancuran, memicu merokok sistem. Jenis arsitektur secara keseluruhan diperlukan untuk menciptakan efek lebih kaya.
Visual Parameter sebagai Fungsi Waktu
Semua parameter visual fungsi waktu. Lihatlah kebakaran, misalnya. Nyala api inti biasanya biru, dan ketika bergerak menjauh, ternyata kuning, lalu putih, dan perlahan-lahan lenyap. Sistem partikel Realistis perlu timevarying parameter. Warna dan alpha yang jelas, tetapi ada orang lain. Spin (kecepatan rotasi), maka bingkai dalam tekstur animasi, dan sebagainya membuat pengaruh yang jauh lebih meyakinkan jika waktu dimasukkan ke dalam persamaan. Jika setiap partikel memiliki kurva waktu respon yang sedikit berbeda, efek akan benar-benar membaik.