Popular Posts
-
Manusia dan harapan Setiap manusia mempunyai harapan, manusia yang tanpa harapan, berarti manusia itu mati dalam hidup. Orang yang akan meni...
-
MANUSIA DAN PENDERITAAN Penderitaan berasal dari kata derita, derita berasal dari bahasa sansekertadhra yang artinya menanggung, Derita arti...
-
Konsep Cloud Computing Istilah “ Komputasi Awan ”, tergolong baru di dunia teknologi informasi, cloud s...
-
MANUSIA DAN PANDANGAN HIDUP Pengertian Pandangan Hidup Semua manusia mempunyai hak untuk menentukan masa depannya sendiri, setiap manusia ...
-
Jenis – Jenis Game Game Komputer dari masa ke masa terus berkembang, seiring dengan pertumbuhan hardware dan perkembangan ide serta al...
-
Ao,...blogger kali ini gw mau posting tugas yang berhubungan dengan Artificial Intelegensia,..(kecerdasan buatan), dikarenakan sudah banyak ...
-
MANUSIA DAN KEADILAN Pengertian keadilan : - Aristoteles : Kelayakan dalam tindakan manusia. - Plato : keadilan diproyeksikan pada diri ma...
-
Prosedural Manifesto Model prosedural adalah deskripsi dari suatu sistem (grafis, audio, AI) menggunakan algoritma bukan eksplisit, dat...
-
Bisnis Informatika menurut saya yaitu, segala aktivitas jual dan beli yang menggunakan teknologi informatika. baik berupa sms, email, webs...
-
nama kelompok : D wi Kartinah Deby Triana ...
Blogger news
Blogroll
About
Blog Archive
Senin, 25 Juni 2012
Prosedural
Manifesto
Model prosedural adalah deskripsi
dari suatu sistem (grafis, audio, AI) menggunakan algoritma bukan eksplisit,
data precomputed. Dengan demikian, karakteristik umum dari semua metode
prosedural adalah penggunaan kode (dalam berbagai bahasa). Sebagai kekayaan
bahasa pemrograman tumbuh, potensi ekspresif akan tumbuh juga, dan representasi
prosedural akan melepaskan semua fleksibilitas.
Selain itu, metode prosedural
resolusi independen oleh alam. Bila Anda keras-kode rutin AI atau
membuat peta tekstur di Photoshop, Anda pada dasarnya mengunci bawah tingkat
detail. Kompleksitas AI dan resolusi tekstur adalah tetap. Sistem prosedural
resolusi independen, sehingga Anda dapat skala atas dan ke bawah tanpa
kehilangan detail. Yang harus Anda lakukan adalah menyediakan algoritma rincian
lebih halus, yang dapat skala bila diperlukan. Cara yang sama sebuah fraktal
dapat memiliki detil yang tak terbatas, metode prosedural dapat sewenang-wenang
rinci juga.
Gambar 21.1. Lihat model fraktal
Mandelbrot populer, sebuah prosedural klasik. Kiri: pandangan keseluruhan.
Kanan: Zooming x 1000, suatu daerah menunjukkan, rumit resolusi-independen
rinci.
Manfaat lain dari teknik prosedural
adalah data amplifikasi: kemampuan untuk membuat high-kompleksitas hasil dari
input data yang relatif sederhana sehingga menetapkan prosedur bertindak
sebagai penguat data. Sekali lagi, fraktal adalah contoh yang bagus. Sebuah
generator medan fraktal menggunakan perpindahan titik tengah mendapat quad
sebagai input, tetapi dapat menghasilkan pegunungan jauh rinci dari itu. Dengan
demikian, shader kadang-kadang bisa tidak hanya menyaring dan memodifikasi,
tetapi juga menciptakan detail baru juga.
Dengan demikian, teknik prosedural
adalah cara yang bagus untuk memberikan fleksibilitas dalam pengembangan
permainan. Kurva belajar mungkin sisi negatifnya, tetapi keseimbangan
keseluruhan adalah jelas positif. Permainan keduanya lebih fleksibel dan lebih
mudah untuk mempertahankan karena anggota tim yang berbeda memiliki akses ke
komponen permainan yang berbeda.
Kadang-kadang, teknik prosedural
ditangani secara individual. Kami mengacu pada vertex shader, rutinitas DSP
untuk audio, Jawa script untuk AI, dan sebagainya. Tetapi penting untuk
memahami bahwa masing-masing (dan banyak lainnya) tidak lain adalah daun dari
pohon yang sama. Teknik-teknik pengkodean entah bagaimana mungkin berbeda,
tetapi filosofi keseluruhan adalah sama.
RenderMan
Paradigma prosedural mengambil
adegan komputer grafis oleh badai dengan pengenalan RenderMan. RenderMan tujuan
itu adalah untuk menawarkan bahasa deskripsi cocok untuk bekerja dengan data
set besar, sehingga dunia nyata, pemandangan alam bisa dibuat. Untuk mencapai
kompleksitas ini, proses grafis patah menjadi dua tugas utama: penentuan
bentuk, yang bekerja pada geometri yang masuk, dan naungan, yang menentukan
tampilan visual dari geometri. Insinyur RenderMan segera menemukan bahwa
pengaturan shading semua dan membentuk sifat eksplisit akan menjadi penghalang,
baik dalam hal ukuran dari set data dan pekerjaan yang diperlukan untuk
menciptakan mereka. Dengan demikian, mereka membiarkan bagian dari pipa grafis untuk
diganti dengan program kecil yang bertindak seperti filter pada data. Fungsi
matematika dapat digunakan untuk menggantikan geometri dan dengan demikian
menciptakan ilusi keriput, fraktal dapat digunakan untuk membuat peta tekstur
visual yang kaya dan skala-independen, dan sebagainya. Perhatikan Gambar 21.2 untuk sampler dari shader RenderMan.
Ini user-menyediakan program segera
dijuluki shader karena mereka terutama digunakan untuk membuat pola baru
texturing dan sifat pengaruh shading. Namun, ada enam jenis shader dalam
RenderMan:
- Sumber cahaya shader
- Volume shader
- Transformasi shader
- Permukaan shader
- Pemindahan shader
- Imager shader
Shader Sumber cahaya yang digunakan
untuk membuat efek pencahayaan canggih. Mereka menerima posisi sumber cahaya
dan arah titik permukaan dari cahaya. Kemudian, mereka mengembalikan warna
cahaya yang berasal pada sumber dan mencolok saat itu. Sebuah contoh yang baik akan
menciptakan bola lampu yang sedang dikelilingi oleh mesh logam halus. Kami
dapat membuat shader cahaya yang memancarkan intensitas pencahayaan yang
berbeda tergantung pada apakah titik permukaan tersumbat oleh mesh atau tidak.
Efek lainnya, seperti lampu sorot dan lampu berbentuk aneh, dapat dibuat dengan
cara yang sama.
Shader Volume digunakan untuk
menentukan sifat untuk volume ruang, seperti kabut. Mereka menerima warna,
intensitas, dan arah cahaya yang masuk volume dan kembali intensitas dan warna
cahaya yang meninggalkan volume yang sama.
Transformasi shader lebih terkait
dengan geometri daripada proses shading itu sendiri. Mereka memungkinkan
pengembang untuk menerapkan transformasi (baik pada objek dan tingkat vertex)
ke aliran data yang masuk. Shader Transformasi menerima satu titik dan titik
kembali berubah setelah semua operasi yang dibutuhkan dilakukan. Jika kita
menerapkan transformasi ke objek lengkap, transformasi tubuh kaku tercapai.
Dengan bekerja pada tingkat puncak, kita dapat menentukan deformasi, bendings,
dan sebagainya.
Permukaan shader digunakan untuk
menentukan sifat optik dari permukaan: bagaimana mereka berinteraksi dengan
cahaya dan sebagainya. Ini shader menyediakan cara terbaik untuk menentukan
penampilan kecemerlangan / logam serta menambahkan peta benjolan. Sebuah shader
permukaan sering menerima sebuah titik pada permukaan, normal, dan informasi
pencahayaan. Kemudian kembali sinar yang dipantulkan. Misalnya, peta benjolan
dapat dengan mudah ditambahkan oleh perturbing normal permukaan dengan beberapa
fungsi matematika (Kebisingan Perlin akan sangat populer di bidang ini), dan
kemudian menyalakan permukaan. Karena normal telah dimanipulasi, pencahayaan
akan menyerupai permukaan yang tidak teratur.
Shader Pemindahan adalah saudara
shader permukaan yang lebih tua, mereka lebih kuat dan kompleks untuk
digunakan. Permukaan shader dapat menciptakan ilusi permukaan tidak teratur
dengan menggunakan pemetaan bump. Teknik ini tidak benar-benar memanipulasi
permukaan, tetapi bukan memanipulasi normal. Jadi bagaimana kita bisa membangun
tonjolan nyata? Bagaimana kita bisa membuat permukaan bulan penuh dengan kawah?
Shader Pemindahan adalah alat untuk pekerjaan dalam kasus ini. Mereka menerima
titik pada permukaan dan beberapa rincian lainnya (seperti, derivatif parsial
yang normal, dan sebagainya) dan menghitung titik, baru pengungsi. Ini dapat
digunakan untuk membuat fraktal dari pegunungan quad tunggal, hanya dengan
menyediakan fungsi fraktal untuk shader.
Shader Imager digunakan untuk warna
berbasis postprocessing. Mereka menerima nilai-nilai piksel floating-point
warna dan kembali satu set nilai-nilai makna sewenang-wenang sebagai output.
Dengan demikian, mereka dapat digunakan untuk efek seperti grayscale pemrosesan
atau Tinting warna, tetapi juga untuk aplikasi menarik lainnya. Mereka dapat
mengkonversi RGB output vanili ke Hue-Saturation Nilai-(HSV) atau format lain.
Mereka dapat menghasilkan efek yang paling ditemukan pada perangkat lunak
pengolahan citra komersial, dan sebagainya.
Shader RenderMan ditulis dalam
bahasa C-seperti dan termasuk perpustakaan besar fungsi yang berguna. Sebagai
contoh, di sini adalah shader permukaan yang menghitung Lambert seperti
pencahayaan dengan mengalikan vektor insiden ringan dengan normal:
permukaan IDez ()
{
Ci = abs (menormalkan (N) menormalkan (I).);
}
Perhatikan bagaimana Ci
adalah hasil dari shader, yang menerima N dan saya sebagai masukan (bahkan jika
mereka tidak lulus sebagai parameter). Sintaksnya adalah tidak jauh berbeda
dari kode C reguler kecuali cara yang pertama, yang digunakan untuk menentukan
jenis shader. Sekarang, di sini adalah contoh yang lebih terlibat yang
menghitung perpindahan berbuih menggunakan fungsi dasar seluler dijelaskan oleh
Steven Worley dalam makalah SIGGRAPH populer nya (lihat Lampiran E , "Bacaan lebih lanjut," dan
Gambar 21.3 ). Dalam kode ini, kita akan melewati
tiga parameter yang mengontrol bagaimana perpindahan diterapkan:
perpindahan IDbubbly (float mult = 5, Nzscale
= 1, Kd = 0,2, bubsize = 1)
{
biasa Nn = menormalkan (N);
float a, b, c, dada;
mengapung dist, terpendek = 10000;
titik Po = transform ("objek", P) *
mult;
/ * Sel pusat benar, pusat sel sekitarnya,
pusat sel noise * /
titik trucell, surrcell, nzcell;
vektor offset;
setxcomp (trucell, lantai (xcomp (Po)) + .5);
setycomp (trucell, lantai (ycomp (Po)) + .5);
setzcomp (trucell, lantai (zcomp (Po)) + .5);
/ * Apa adalah jarak yang terdekat ke pusat
sel noise? * /
untuk (a = -1; a <= 1; a + = 1)
{
for (b = -1, b <= 1; b + = 1)
{
for (c = -1; c <= 1; c + = 1)
{
offset = vektor (a, b, c);
surrcell = trucell + offset;
nzcell = surrcell + ((vektor cellnoise
(surrcell)
- .5) * Nzscale);
dist = jarak (Po, nzcell);
if (dist
}
}
}
dada = penjepit (terpendek, 0, bubsize) /
bubsize;
P + = Nn * (pow (dada, 2) -1) * Kd;
N = calculatenormal (P);
}
Gambar 21.3. Fungsi dasar Worley
digunakan untuk menghasilkan tekstur beberapa diberikan dengan menggunakan
shader RenderMan.
Shader RenderMan disusun dan
disimpan sebagai bytecode. Kemudian, pada waktu render, shaders sesuai
dieksekusi sebanyak yang diperlukan untuk mensimulasikan efek yang diinginkan.
Shader RenderMan tidak pernah dirancang untuk real-time digunakan. Render
sering kali dalam besarnya "jam" per frame. Tidak diragukan lagi,
shader memperlambat proses rendering, tetapi fleksibilitas ditambahkan dan
kontrol membuat mereka pilihan yang sangat menarik. Sebagai bukti kualitas
RenderMan dan fleksibilitas, adalah salah satu render / adegan platform
terkemuka deskripsi digunakan saat ini, 15 tahun setelah awal. Sistem ini
mendapat pengakuan luas dengan penggunaannya dalam film seperti The Abyss, film
pendek seperti Luxo Jr, dan terutama Tin Toy oleh Pixar, dan itu terus
memproduksi sebuah daftar tanpa akhir dari blockbuster yang telah memperoleh
manfaat dari fleksibilitas bahasa shading RenderMan itu.
Bahkan, Anda akan segera melihat
bahwa RenderMan telah sangat mempengaruhi cara kita memandang shader hari ini.
Bahkan sebagian besar sistem real-time shading dapat dianggap keturunan produk
ini landasan.
sumber : http://health-7.com/books/GetTopic2?bookName=Core%20Techniques%20And%20Algorithms%20In%20Game%20Programming&topicTitle=Renderman
Langganan:
Postingan (Atom)