tag:blogger.com,1999:blog-61915795517947240692024-02-18T22:20:11.043-08:00NibonX's blogNibonX's bloghttp://www.blogger.com/profile/06289663153406649921noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-6191579551794724069.post-35727797932851135832011-02-17T07:18:00.000-08:002011-02-18T05:26:08.546-08:00CMOS vs CCD<span class="Apple-style-span">CMOS ( Complementary metal oxide semiconductor ) merupakan jenis utama dari rangkaian terintegrasi. CMOS juga sering disebut dengan COSMOS ( Complementary symmerty metal oxide semiconductor ). Biasanya desain digital berbasis CMOS menggunakan <span class="Apple-style-span" style="color: rgb(7, 22, 34); ">pasangan komplementer dan simetris dari MOSFET semikonduktor tipe-p dan semikonduktor tipe-n untuk fungsi logika.</span></span><div><span class="Apple-style-span"><span class="Apple-style-span" style="color: rgb(7, 22, 34); "><br /></span></span></div><div><span class="Apple-style-span"><span class="Apple-style-span"><span class="Apple-style-span" style="color: rgb(7, 22, 34); ">CCD ( Charge Coupled Device ) </span></span>Suatu alat pencitraan untuk menkonversikan cahaya menjadi arus elektrik yang proporsional (analog).</span></div><div><span class="Apple-style-span"><br /></span></div><div><span class="Apple-style-span"><span>Kedua sensor CCD (charge-coupled device) dan CMOS (complimentary metal-oxide semiconductor) berfungsi sama yaitu mengubah cahaya menjadi elektron. Untuk mengetahui cara sensor bekerja kita harus mengetahui prinsip kerja sel surya. Anggap saja sensor yang digunakan di kamera digital seperti memiliki ribuan bahkan jutaan sel surya yang kecil dalam bentuk matrik dua dimensi. Masing-masing sell akan mentransform cahaya dari sebagian kecil gambar yang ditangkap menjadi elektron. Kedua sensor tersebut melakukan pekerjaan tersebut dengan berbagai macam teknologi yang ada.</span><br /><br /><span>Langkah berikut adalah membaca nilai dari setiap sel di dalam gambar. Dalam kamera CCD, nilai tersebut dikirimkan ke dalam sebuah chip dan sebuah konverter analog ke digital mengubah setiap nilai piksel menjadi nilai digital. Dalam kamera CMOS, ada beberapa transistor dalam setiap piksel yang memperkuat dan memindahkan elektron dengan menggunakan kabel. Sensor CMOS lebih fleksibel karena membaca setiap piksel secara individual.</span><br /><br /><span>Sensor CCD memerlukan proses pembuatan secara khusus untuk menciptakan kemampuan memindahkan elektron ke chip tanpa distorsi. Dalam arti kata sensor CCD menjadi lebih baik kualitasnya dalam ketajaman dan sensitivitas cahaya. Lain halnya, chip CMOS dibuat dengan cara yang lebih tradisional dengan cara yang sama untuk membuat mikroprosesor. Karena proses pembuatannya berbeda, ada beberapa perbedaan mendasar dari sensor CCD dan CMOS.</span><br /></span><ul> <li><span class="Apple-style-span"><span>Sensor CCD, seperti yang disebutkan di atas, kualitasnya tinggi, gambarnya low-noise. Sensor CMOS lebih besar kemungkinan untuk noise.</span> </span></li><li><span class="Apple-style-span"><span>Sensitivitas CMOS lebih rendah karena setiap piksel terdapat beberapa transistor yang saling berdekatan. Banyak foton mengenai transistor dibandingkan diodafoto.</span> </span></li><li><span class="Apple-style-span"><span>Sensor CMOS menggunakan sumber daya listrik yang lebih kecil.</span> </span></li><li><span class="Apple-style-span"><span>Sensor CCD menggunakan listrik yang lebih besar, kurang lebih 100 kali lebih besar dibandingkan sensor CMOS.</span> </span></li><li><span class="Apple-style-span"><span>Chip CMOS dapat dipabrikasi dengan cara produksi mikroprosesor yang umum sehingga lebih murah dibandingkan sensor CCD.</span> </span></li><li><span class="Apple-style-span"><span>Sensor CCD telah diproduksi masal dalam jangka waktu yang lama sehingga lebih matang. Kualitasnya lebih tinggi dan lebih banyak pikselnya.</span> </span></li></ul><span>Berdasarkan perbedaan tersebut, Anda dapat lihat bahwa sensor CCD lebih banyak digunakan di kamera yang fokus pada gambar yang high-quality dengan piksel yang besar dan sensitivitas cahaya yang baik. Sensor CMOS lebih ke kualitas dibawahnya, resolusi dan sensitivitas cahaya yang lebih rendah. Akan tetapi pada saat ini sensor CMOS telah berkembang hampir menyamai kemampuan sensor CCD. Kamera yang menggunakan sensor CMOS biasanya lebih murah dan umur baterenya lebih lama.</span></div><div><span><br /></span></div><div><span class="Apple-style-span"><span>Perkembangan CMOS terbaru adalah </span>Sony mengembangkan sensor CMOS yang dibalik sehingga seolha-olah cahaya datang dari arah belakang. Jika kita melihat diagram sebuah sensor digital, khususnya sensor CMOS, maka dapat kita simpulkan bahwa sensor CMOS adalah jenis sensor yang memiliki fleksibilitas arsitektur elektronik dan komputasi yang lebih tinggi dibandingkan dengan CCD.</span></div> <p><span class="Apple-style-span">Dengan tujuan untuk mengatasi problem semakin padatnya kerapatan pixel yang berimbas pada semakin tingginya tingkat cacat sinyal pada hasil foto atau video, maka Sony mengembangkan jenis sensor CMOS terbaru yang “diberi cahaya dari belakang”.</span></p> <p><span class="Apple-style-span">Keunggulannya, selain meminimalisir cacat warna dan problem pantulan cahaya di dalam sirkuit sensor, cara baru ini pun terbukti dapat meningkatkan kepekaan dan akurasi microlenses yang ada di sensor tersebut. Hasilnya, pencahayaan yang merata di seluruh bidang gambar.</span></p> <p><span class="Apple-style-span">Namun akibatnya, cacat sinyal meningkat. Inilah yang kemudian diatasi dengan teknologi EXMOR dari Sony, plus kekuatan prosesor di kamera. Kita tunggu penerapan teknologi ini di kamera SLR, kamera saku maupun perekam.</span></p><p><span class="Apple-style-span">Perkembangan CCD terbaru adalah CCD lebih banyak di gunakan pada camera CCTV dan kamera pengintai karena lebih responsive dalam gerakan-gerakan manusia.</span></p>NibonX's bloghttp://www.blogger.com/profile/06289663153406649921noreply@blogger.com0tag:blogger.com,1999:blog-6191579551794724069.post-90698189363192377762010-11-23T16:06:00.000-08:002010-11-23T17:51:02.540-08:00Pengolahan Citra dengan menggunakan Histogram<b><div style="text-align: justify; display: inline !important; "><span class="Apple-style-span" style="font-weight: normal; "><b>Nama :</b></span></div></b><br /><div style="text-align: justify;"><b><br /></b></div><div style="text-align: justify;">Angger Dwi Atmoko (50407116)</div><div style="text-align: justify;">Niko Azhimi H. (50407618)</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><b>Histogram dalam proses pengolahan citra</b></div><div style="text-align: justify;"><b><br /></b></div><div><div style="text-align: justify; ">Histogram citra adalah grafik yang <div style="display: inline !important; ">menggambarkan penyebaran nilai-</div><div style="display: inline !important; ">nilai intensitas pixel dari suatu citra </div>atau bagian tertentu di dalam citra.</div></div><div style="text-align: justify;"><br /></div><div style="text-align: justify; "><div style="text-align: justify; ">Dari sebuah histogram dapat diketahui :</div><div style="text-align: justify; "><br /></div><div style="text-align: justify; ">1. Frekuensi kemunculan relative dari intensitas</div><div style="text-align: justify; ">pada citra.</div><div style="text-align: justify; "><br /></div><div style="text-align: justify; ">2. Kecerahan (brightness) dan kontas (contrast)</div><div style="text-align: justify; ">dari sebuah gambar.</div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><b>Algoritma</b></div><div style="text-align: justify; "><b><br /></b></div><div style="text-align: justify; "><div style="text-align: justify; ">Misalkan citra digital memiliki L derajat keabuan, yaitu dari nilai 0 sampai L – 1 (misalnya pada</div><div style="text-align: justify; ">citra dengan kuantisasi derajat keabuan 8-bit, nilai derajat keabuan dari 0 sampai 255). Secara</div><div style="text-align: justify; ">matematis histogram citra dihitung dengan rumus sebagai berikut :</div><div style="text-align: justify; "><br /></div><div style="text-align: justify;"><br /></div><div style="text-align: justify; "><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikLYWPirtHqU4DgocxLot0FOstQrcdZ4Q8Jj5iWwRCpuax0w08ocwD5AqvhmfSZQ-AUUpuvxyZxyAkGxUZYCDS4QUJ2Ah3b0YiWYsbi85LEUpxS6Xjnw3W7E6QBB3zjvr6d6skiGevZceV/s200/rumus.JPG" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 200px; height: 36px; " border="0" alt="" id="BLOGGER_PHOTO_ID_5542919492609011026" /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; ">dimana :</div><div style="text-align: justify; "><br /></div><div style="text-align: justify; ">ni = jumlah pixel yang memiliki derajat keabuan i</div><div style="text-align: justify; ">n = jumlah seluruh pixel di dalam citra</div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><div style="text-align: justify; ">Plot hi versus fi dinamakan histogram. Secara grafis histogram ditampilkan dengan diagram batang. Nilai ni telah dinormalkan dengan membaginya dengan n. Nilai hi berada di dalam selang 0 sampai 1.</div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><b><br /></b></div><div style="text-align: justify; "><b>Tampilan Aplikasi</b></div><div style="text-align: justify; "><b><br /></b></div><div style="text-align: justify; "><b><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVkk2_1PIkg9Jqi2Q-IipbFp8-HfJtAVEkpgtX_UNzGiNqTIzqR9CuWEB6lZkJgiApVvAV_h_eS6b4y1viTGu2oUAGMM4riELPs8IM6aazERbKGKGa7xu2Tx7kOgkOANNvt9KoCQg-PMfJ/s200/aw.JPG" style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 171px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5542923518448398818" /></b></div></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; ">tampilan awal aplikasi</div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyjizmJAd0ZkS2s0VEK7ecdUaW2Umb9uGtRW2h9fRYe9CoCAbHJVHWCWgBmjSDfd20FbHHRhigNLDu0hvG-kLQvJkiskUN5zMrDmfoRXJzlG_wiNS0X-3EH08MlczYJVFjNVd9cmX-Y0qL/s200/ae.JPG" style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 171px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5542924498070957250" /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; ">membuka file gambar berekstensi .bmp (bitmap)</div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipgA8KGs2MkTIvF46mf6rclB48-A2S4-B8Z_0PxvHTfNDjkSmBiyziCrZNaQeMZXvOqTzWbk1pslc1vmcHOwGd3FrCB8X8attbPZMkWeVvbIVYzeq0Eq2W0H8eaBVIQxwbI-v4pqVvB5iy/s200/ar.JPG" style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 154px; height: 200px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5542925175835781202" /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; ">file gambar telah terbuka, lakukan proses pembacaan gambar dengan histogram</div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div><div style="text-align: justify; "><br /></div></div></div>NibonX's bloghttp://www.blogger.com/profile/06289663153406649921noreply@blogger.com0tag:blogger.com,1999:blog-6191579551794724069.post-73277340539878356842010-09-29T23:40:00.000-07:002010-09-29T23:59:14.231-07:00Bisnis Home DesignHome Design adalah suatu pemodelan dimana menampilkan design-design ruangan yang sangat menarik yang nantinya akan digunakan untuk memperindah dan mempercantik .<br /><br />Home design ini biasanya dikerjakan oleh orang-orang yang berkecimpung di dunia design. Dan cara pemasarannya biasanya masih dengan promosi atau pemanggilan dari orang-orang yang ahlinya.<br /><br />Design-design yang ditampilkan oleh para ahli biasanya membutuhkan waktu serta membutuhkan biaya yang mahal dalam pengerjaannya. Biaya yang dimaksud adalah dalam pengerjaannya dimana ahli-ahli design membuat posisi-posisi ruangan sedemikian rupa hingga terlihat menarik dan mendokumentasikannya dengan menggunakan kamera. Biasanya para ahli lebih ingin pemasarannya dengan menunggu vendor dari perusahaan-perusahaan yang berbisnis dalam pembuatan rumah ataupun apartement.<br /><br />Setelah sekian lama menggunakan cara dengan menunggu vendor, para ahli design pun berfikir agar bagaimana pemasukan keuangan mereka tidak naik turun. Akhirnya muncul lah ide dimana para ahli melakukan pemasaran dengan cara menampilkan sedikit dari hasil-hasil dokumentasi home design sebagaimana untuk contoh dalam pemasaran.<br /><br />Vendor-vendor nantinya akan melihat promo-promo yang ada seperti di jejaring sosial terkenal masa kini, sehingga memudahkan di antara ahli design dan vendor perusahaan dalam berbisnis untuk kebutuhan masing-masing.NibonX's bloghttp://www.blogger.com/profile/06289663153406649921noreply@blogger.com0tag:blogger.com,1999:blog-6191579551794724069.post-51896467211027208692010-06-26T18:14:00.000-07:002010-06-26T18:16:11.874-07:00Perbandingan Game Engine<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQm0JvkXTv4RrjB6iGKILHw3u-T9nJw3j-Cn_uGxTNyw0xtwQ3wluvjh2392QFUvxgokK3KK_hJg_PNCejjqlcY4pBEE10Ju33iE8ZGLXnp6lU0P4wY6m13UQLMr7g3FXbmq16tJJoWOnI/s1600/torque.JPG"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 190px; height: 59px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQm0JvkXTv4RrjB6iGKILHw3u-T9nJw3j-Cn_uGxTNyw0xtwQ3wluvjh2392QFUvxgokK3KK_hJg_PNCejjqlcY4pBEE10Ju33iE8ZGLXnp6lU0P4wY6m13UQLMr7g3FXbmq16tJJoWOnI/s320/torque.JPG" alt="" id="BLOGGER_PHOTO_ID_5486971301243855282" border="0" /></a><span style="font-weight: bold; color: rgb(51, 204, 255); font-size: 180%;"><span style="font-family: courier new;">Torque Game Engine<br /></span></span><div style="text-align: justify;">Torque Game Engine adalah versi modifikasi dari sebuah 3D komputer mesin game awalnya dikembangkan oleh Dynamix untuk 2001 FPS Suku 2 . Beberapa judul terkenal yang dikembangkan dengan menggunakan torque game engine adalah Blockland , Marble Blast Gold , Minion dari Mirth , TubeTwist , Ultimate Duck Hunting , Wildlife Tycoon: Venture Afrika , ThinkTanks , The Destiny dari Zorro dan Penny Arcade Adventures . Namun Torque Game Engine tidak lagi dijual karena telah digantikan oleh Torque 3D.<br /></div><br /><ul style="text-align: justify;"><li>Kelebihan dari torque game engine ialah fiturnya menyediakan kode jaringan yang kuat, scripting, di-mesin dunia editing dan GUI penciptaan. Source code dapat dikompilasi pada Windows , Macintosh , Linux , Wii , Xbox 360 dan iPhone platform. Pada Torque game engine mendukung pemuatan model 3D dalam DTS dan format file DIF.<br /></li></ul><br />Model DTS dapat menjalankan animasi baik menggunakan animasi tulang atau animasi morph target . Hal ini juga memungkinkan untuk paduan animasi beberapa kerangka bersama dengan memainkan mereka secara bersamaan atau secara otomatis tweening antara posisi yang berbeda dalam kerangka tulang. Model DTS biasanya digunakan untuk karakter dan kendaraan meskipun terkadang digunakan untuk bangunan dan interior.<br /><br />Sedangkan pada model DIF dihitung pencahayaan pra, sehingga tidak cocok untuk animasi. Sebaliknya, model DIF digunakan untuk bangunan dan interior. Model DIF secara otomatis memiliki ikatan kotak yang sangat cocok dengan geometri terlihat.<br /><br />fitur Torque Game Engine yang paling terkenal adalah kemampuannya untuk berinteraksi dengan program lain melalui Internet.<br /><br />Beberapa versi torque game engine :<br />- Torque Game Engine Advanced<br />Torque Game Engine Advanced (sebelumnya dikenal sebagai Torque Shader Engine) adalah versi yang diperluas Torque Game Engine dibuat untuk mendukung teknologi maju termasuk shaders , pencahayaan per-pixel, dan medan besar. Beberapa game Xbox Live Arcade telah dirilis menggunakan mesin Torque, terutama Marble Blast Ultra .<br /><br />-Torque Game Builder<br />Beberapa waktu setelah rilis Torque Shader Engine, perusahaan mulai menciptakan Torque 2D. 2D adalah torsi mesin permainan yang dirancang untuk permainan 2D berdasarkan Torque Game Engine. Lalu akhirnya namanya berubah menjadi Torque Game Builder karena tujuan utamanya adalah untuk membuat Torque Game Builder suite pembuatan sebuah permainan. Torque game builder digunakan untuk menciptakan permainan puzzle bergerak.<br /><br />-Torque Lighting Kit<br />Torque Lighting Kit adalah semacam pak ekspansi ke Torque Game Engine yang dikembangkan oleh John Kabus. Pada jenis game engine ini, ia menambahkan berbagai fitur pencahayaan yang ditingkatkan dari Torque Game Engine. Pada fitur terbarunya pencahayaan dinamis dan bayangan yang ditambahkan. Torque Lighting Kit kini disertakan sebagai bagian dari Torque Game Engine 1.5 dan Torque Game Engine Advanced.<br /><br />-Torque X<br />Setelah merilis Torque Game Builder, GarageGames mulai mengembangkan Torque Torque X. X adalah mesin permainan berdasarkan Torque Game Builder menggunakan sistem komponen yang memungkinkan benda-benda permainan ganda untuk memiliki kemampuan yang sama.<br /><br /><div style="text-align: center;"><span style="color: rgb(51, 204, 255); font-size: 180%;"><span style="font-family: trebuchet ms;">Unreal Game Engine</span></span><br /></div>Unreal Engine dapat di katakan sebagai salah satu game engine yang paling sering di gunakan dalam generasi sekarang ini. Terutama setelah munculnya Unreal Engine 3, sudah beberapa game yang menggunakan engine ini. Unreal Engine 3 menjadi pilihan yang paling diminati karena kemudahan fitur multiformat-nya. Hingga saat ini engine ini masih di kembangakan oleh developer Epic Games. Unreal engine menjadi solusi game engine yang paling mudah unuk generasi next-gen sekarang ini. Epic Games sedang mengerjakan Unreal Engine 4 yang akan muncul pada tahun 2012.<br /><br /><br /><ul style="color: rgb(153, 0, 0);"><li><span style="font-size: 130%;">Referensi :</span></li></ul>http://en.wikipedia.org/wiki/Torque_Game_Engine<br />http://yaminobu.wordpress.com/2009/09/20/top-10-best-game-engine-2009/NibonX's bloghttp://www.blogger.com/profile/06289663153406649921noreply@blogger.com0tag:blogger.com,1999:blog-6191579551794724069.post-69349362290343218682010-05-31T10:51:00.000-07:002010-05-31T10:57:42.892-07:00Tutorial Manipulasi Sistem Partikel di Delta 3D<div style="text-align: auto;"><span class="Apple-style-span" style="font-family:Arial, Verdana, Helvetica, sans-serif;"><span class="Apple-style-span" style="font-size: medium;"><span class="Apple-style-span" style="font-family: Verdana, sans-serif; color: rgb(51, 51, 51); font-size: 13px; line-height: 19px; "><h3 class="post-title entry-title" style="margin-top: 0px; font: normal normal bold 130%/normal Georgia, 'Times New Roman'; color: rgb(255, 102, 51); "><a href="http://blognyaclara.blogspot.com/2010/05/manipulasi-sistem-partikel.html" style="color: red; text-decoration: none; ">Tutorial Manipulasi Sistem Partikel di Delta 3D</a></h3><div class="post-header"><div class="post-header-line-1"></div></div><div class="post-body entry-content"><span style="font-family: arial; font-size: 13px; ">Semua efek partikel dapat dilakukan melalui PSE, dan dimasukkan dalam model. Saat ini, kontrol yang tersedia hanya untuk menghidupkan dan mematikan emitor. Mengendalikan partikel, memungkinkan pengguna untuk merasa lebih tenggelam dalam permainan atau simulasi. Seperti kecepatan angin, suhu, bahkan kehadiran suara bisa memicu suatu peristiwa yang menyebabkan partikel tersebut bertindak secara berbeda. Tutorial ini a</span><span style="font-family: arial; font-size: 13px; ">kan membantu anda melakukan itu, seperti mengubah warna, kecepatannya, masa hidup, <st1:city><st1:place>massa</st1:place></st1:city>, dan masih banyak lagi.</span><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><o:p></o:p></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; ">Untuk demonstrasi, kita akan mengubah partikel kecil yang berada di belakang tank sesuai dengan kecepatan tank. Ini akan membuat debu partikel tinggal di udara lebih lama ketika anda mengemudi dengan cepat, seperti dalam kehidupan nyata! Ini adalah partikel editor yang digunakan untuk menciptakan efek.</span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQlESJSR2X31yA2FuLF6SexcKx898_UtP3o8PZdkr5jdiMQkZQyG-Jbkp9qLSALkaxAidDodxtvM0nT2BqpQIfcr7WOq52Ml8FA5UVqanNOQOiT7XT95S8lvYDiFqRpQ-jMdIWG__NF5k/s1600/ABC.GIF" style="color: blue; text-decoration: underline; "><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQlESJSR2X31yA2FuLF6SexcKx898_UtP3o8PZdkr5jdiMQkZQyG-Jbkp9qLSALkaxAidDodxtvM0nT2BqpQIfcr7WOq52Ml8FA5UVqanNOQOiT7XT95S8lvYDiFqRpQ-jMdIWG__NF5k/s320/ABC.GIF" alt="" id="BLOGGER_PHOTO_ID_5471580147053307762" border="0" style="border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-width: initial; border-color: initial; padding-top: 6px; padding-right: 6px; padding-bottom: 6px; padding-left: 6px; border-top-width: 1px; border-top-color: rgb(221, 221, 221); border-left-width: 1px; border-left-color: rgb(221, 221, 221); border-bottom-width: 1px; border-bottom-color: rgb(192, 192, 192); border-right-width: 1px; border-right-color: rgb(192, 192, 192); margin-top: 0pt; margin-right: 10px; margin-bottom: 10px; margin-left: 0pt; float: left; cursor: pointer; width: 320px; height: 189px; " /></a></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><br /><br /><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="City"></o:smarttagtype><o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="place"></o:smarttagtype></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; "><span style="font-size: 15px; ">Bagaimana mendapatkan data partikel?<br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><o:p></o:p></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; ">Catatan: Kode berikut ini sudah ada di d</span><span style="font-size: 15px; ">tCore:: fungsi ParticleSystem SetupLayers. Ini menunjukkan bagaimana mengaksesnya dan memberikan pengertian yang lebih baik dari apa yang kita peroleh. Setelah partikel diinisialisasi, pengguna akan berhadapan dengan setiap lapisan yang terpisah melalui GetSingleLayer ("Layer 0"), pemanggilan fungsi.</span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><o:p></o:p></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; ">Untuk memperoleh data partikel mengharuskan kita untuk bekerja secara langsung dengan kode OpenSceneGraph (OSG). Mungkin lebih mudah mengatakan daripada dilakukan, jadi mari kita lakukan!</span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><o:p></o:p></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; ">Pertama kita akan mendeklarasikan sebuah kelas yang akan memiliki semua informasi tentang partikel, untuk setiap layer dari setiap sistem partikel. Kelas akan mengikuti anggota variabel yang berisi kelas sistem partikel. Kelas ini akan disebut dengan ParticleLayer.</span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><o:p></o:p></span></p><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; "><span style="font-size: 16px; "><i>From dtCore::ParticleSystem (h and cpp)</i></span></p><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">/**<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span lang="SV">* geode yang memiliki siste</span></code></span><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span lang="SV">m partikel dapat ditarik,<o:p></o:p></span></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span lang="SV">* dan diberi nama layer.<o:p></o:p></span></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">*/<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">RefPtr<osg::geode> mGeode;<o:p></o:p></osg::geode></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">/**<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">* Sistem partikel aktif.<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">*/<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">RefPtr<osgparticle::particlesystem> mParticleSystem;<o:p></o:p></osgparticle::particlesystem></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">/**<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">* Transformasi yang mengontrol posisi dari emitter.<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">*/<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">RefPtr<osg::matrixtransform> mEmitterTransform;<o:p></o:p></osg::matrixtransform></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">/**<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">* Emitter aktif.<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">*/<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">RefPtr<osgparticle::modularemitter> mModularEmitter;<o:p></o:p></osgparticle::modularemitter></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">/**<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">* Program aktif.<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">* Dapat membuat modular dan cairan<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">*/<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">RefPtr<osgparticle::program> mProgram;</osgparticle::program></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">/**<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">* nama layer<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">*/<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">std::string mstrLayerName;<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; text-align: justify; "><span style="font-family: arial; font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span>Semua variabel di atas digunakan di fungsi </span></code></span><span style="font-size: 13px; "><span style="font-family: arial; ">Setup</span>ParticleLayers. Mereka masing-masing mempunyai tujuan yang dapat memanipulasi dan mengatur efek partikel. Pengisian kelas ini dari luar tidak sulit, tetapi kode ini tidak diatur dalam bentuk hirarki yang anda inginkan. <o:p></o:p></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; text-align: justify; "><span style="font-size: 13px; "><o:p> </o:p></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; text-align: justify; "><span style="font-size: 13px; ">Metode berikut ini dipanggil saat anda membuat sistem partikel dengan metode LoadFile, dan tidak perlu dipanggil secara langsung. Setelah LoadFile selesai, Anda dapat menggunakan kelas ParticleLayer untuk mengubah nilai yang berbeda. Anda tidak perlu menulis kode ini, namun disediakan untuk membantu anda memahami isi sistem partikel OSG.<o:p></o:p></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; text-align: justify; "><span style="font-size: 13px; "><o:p> </o:p></span></pre><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; "><span style="font-size: 16px; "><i>dtCore::ParticleSystem (h and cpp)</i></span></p><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">/**<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "> *<span> </span>Memanggil fungsi LoadFile(), sebaiknya tidak memanggilnya <o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>*<span> </span>dari user<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "> */</code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">void ParticleSystem::SetupParticleLayers()<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">{<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>osg::Group* newParticleSystemGroup = (osg::Group*)mLoadedFile.get();<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>osg::Node*<span> </span>searchingNode = NULL;<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span><o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>unsigned int i = 0;<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; text-align: justify; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><b><span>Catatan:</span></b></code><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> kita akan melakukan looping melalui semua children sebanyak dua kali, yang pertama dilakukan untuk setup sistem partikel awal, dan yang kedua untuk mengatur variabel lain, kemudian disatukan. </span></code><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span lang="SV">Hal ini dilakukan, sejak kita mendapatkan perintah children yang lain, tapi perlu mengetahui variabel layer sistem partikel yang lain.<o:p></o:p></span></code></span></pre><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span lang="SV" style="font-size: 15px; "><o:p></o:p></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span lang="SV" style="font-size: 15px; "><o:p></o:p></span></p><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>for(i=0;i<newparticlesystemgroup->getNumChildren();i++)<o:p></o:p></newparticlesystemgroup-></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>{<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>searchingNode = newParticleSystemGroup->getChild(i);<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>ParticleLayer layer;<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>if(dynamic_cast<osgparticle::particlesystemupdater*>(searchingNode))<o:p></o:p></osgparticle::particlesystemupdater*></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>{<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span lang="PT-BR"><span> </span>//Ini terjadi ketika mengimpor beberapa file osg dalam satu sistem.<o:p></o:p></span></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 18pt; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span lang="PT-BR">// Satu untuk setiap file dapat diambil, untuk memberitahu sistem //segala sesuatu yang lain ada di sini.<o:p></o:p></span></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span lang="PT-BR"><span> </span></span>}<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>// Jika ini adalah sistem part</code></span><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">ikel yang geode<span> </span>if(dynamic_cast<osg::geode*>(searchingNode))<o:p></o:p></osg::geode*></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>{<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>// sebuah geometrinya node.<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>layer.mGeode = (osg::Geode*)searchingNode;<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>for(unsigned int j=0;j<layer.mgeode->getNumDrawables();j++)<o:p></o:p></layer.mgeode-></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>{<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>osg::Drawable* drawable<span> </span>= layer.mGeode->getDrawable(j);<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 36pt; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "> <span> </span>// Tampak seperti kami menemukan sistem partikel, lanjutkan!<span> </span>if(dynamic_cast<osgparticle::particlesystem*>(drawable))<o:p></o:p></osgparticle::particlesystem*></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>{<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>layer.mParticleSystem = (osgParticle::ParticleSystem*)drawable;<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>layer.mstrLayerName<span> </span>= layer.mGeode->getName();<o:p></o:p></code></span></pre><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><o:p></o:p></span></p><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>// We're done setting values up, push it onto the list<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>mlLayers.push_back(layer);<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>}<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>}<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>} // akhir if<span> </span><o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>}// akhir dari perulangan for<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span><o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>for(i=0;i<newparticlesystemgroup->getNumChildren();i++)<o:p></o:p></newparticlesystemgroup-></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>{<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>searchingNode = newParticleSystemGroup->getChild(i);<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span><o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>if(dynamic_cast<osg::matrixtransform*>(searchingNode))<o:p></o:p></osg::matrixtransform*></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>{</code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>osg::MatrixTransform* newEmitterTransform = <o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>(osg::MatrixTransform*)searchingNode;<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>for(unsigned int j=0;j<newemittertransform->getNumChildren();j++)<o:p></o:p></newemittertransform-></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>{<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>osg::Node* childNode = newEmitterTransform->getChild(j);<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>if(dynamic_cast<osgparticle::modularemitter*>(childNode))<o:p></o:p></osgparticle::modularemitter*></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>{<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>osgParticle::ModularEmitter* newModularEmitter = <o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>(osgParticle::ModularEmitter*)childNode;<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span><o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span><span> </span>for(std::list<particlelayer>::iterator layerIter = mlLayers.begin();<o:p></o:p></particlelayer></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>layerIter != mlLayers.end(); layerIter++)<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>{<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>if(layerIter->mParticleSystem == newModularEmitter->getParticleSystem())<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>{<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>// mengatur data dalam layer<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>layerIter->mEmitterTransform<span> </span>= newEmitterTransform;<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>layerIter->mModularEmitter<span> </span>= newModularEmitter;<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>}<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>}<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>}<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>} // akhir dari perulangan for<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>} // akhir dari perintah if<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>else if(dynamic_cast<osgparticle::modularprogram*>(searchingNode))<o:p></o:p></osgparticle::modularprogram*></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>{<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>osgParticle::ModularProgram* newModularProgram = (osgParticle::ModularProgram*)searchingNode;<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>for(std::list<particlelayer>::iterator layerIter = mlLayers.begin();<o:p></o:p></particlelayer></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>layerIter != mlLayers.end(); layerIter++)<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>{<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span><o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>if(layerIter->mParticleSystem == newModularProgram->getParticleSystem())<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span><span> </span>{<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>// mengatur data di layer<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>layerIter->SetModoluarProgram(true);<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>layerIter->mProgram<span> </span>= newModularProgram;<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>break;<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>}<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>} // akhir dari perulangan loop<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>} // akhir dari perintah if<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>// memeriksa dan melihat apakah ini adalah sebuah program fluida<span> </span>else if(dynamic_cast<osgparticle::fluidprogram*>(searchingNode))<o:p></o:p></osgparticle::fluidprogram*></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>{<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>osgParticle::FluidProgram* newFluidProgram = (osgParticle::FluidProgram*)searchingNode;<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>for(std::list<particlelayer>::iterator layerIter = mlLayers.begin(); <o:p></o:p></particlelayer></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>layerIter != mlLayers.end(); layerIter++)<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>{<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>if(layerIter->mParticleSystem == newFluidProgram->getParticleSystem())<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>{<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>// mengatur </code></span><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">data di layer<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>layerIter->SetFluidProgram(true);<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>layerIter->mProgram<span> </span>= newFluidProgram;<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span><span> </span>break;<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>}<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>} // akhir dari perulangan for <o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>} // akhir dari perintah if<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>} // akhir dari perulangan for <o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">}// akhir dari pemanggilan fungsi<o:p></o:p></code></span></pre><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><o:p></o:p></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; ">Dari sini, kita memiliki semua daftar partikel layer yang dimuat di file OSG. Setiap efek dalam file pada ParticleLayer dengan di std::list berbeda. Untuk mendapatkan layer kembali dan mengubah semua efek yang dimasukkan, sama sederhananya seperti memanggil GetSingleLayer() dan mengirim sebuah string dari nama yang Anda inginkan.</span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><o:p></o:p></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; ">Ini akan mengembalikan sebuah referensi ke ParticleLayer, yang pada gilirannya akan memberikan Anda akses untuk mengubah apa pun yang Anda inginkan dengan efek partikel. Yang kami inginkan adalah default partikel.</span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><o:p></o:p></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><b><span lang="SV">Ikhtisar Hierarchal:<o:p></o:p></span></b></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><b><span lang="SV"><o:p></o:p></span></b></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span lang="SV" style="font-size: 15px; ">Sebagian besar, segala sesuatu dalam kelas berada di bagian bawah Processor Partikel. Ini adalah dasar bagi antarmuka kelas yang melakukan sesuatu pada partikel. Contoh kelas yang untuk emitor contoh (generasi partikel) dan program (animasi partikel). Kela</span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span lang="SV" style="font-size: 15px; ">s ini memiliki beberapa sifat, seperti bingkai referensi dan referensi ke ParticleSystem; partikel harus di proses dengan kelas-kelas turunan dengan mempertimbangkan kerangka acuan, komputasi transformasi yang tepat bila diperlukan.<o:p></o:p></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span lang="SV" style="font-size: 15px; "><o:p></o:p></span></p><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; "><span style="font-size: 16px; "><a href="http://www.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/classosgParticle_1_1ParticleProcessor.html" style="color: blue; text-decoration: underline; ">OpenScene Graph Documentation For the Overview</a></span></p><h2 style="margin-right: 0cm; margin-left: 0cm; font-size: 18pt; font-family: arial; font-weight: bold; "><span style="font-size: 24px; ">Sistem Partikel OSG:</span></h2><h2 style="margin-right: 0cm; margin-left: 0cm; font-size: 18pt; font-family: arial; font-weight: bold; text-align: justify; "><span lang="SV" style="font-weight: normal; font-size: 24px; ">sistem partikel osg sebagian besar adalah kelas utilitas. Kelas ini dapat memberitahu Anda untuk membekukan seluruh sistem, mengembalikan jumlah partikel, menentukan apa jenis permukaan, dll. Memanfaatkan sistem yang akan bekerja keras pada sebuah permainan dengan menggunakan frame membekukan / menghentikan animasi, dan Anda dapat membekukan sistem partikel Anda untuk memberikan efek yang baik.<o:p></o:p></span></h2><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; "><span style="font-size: 16px; "><a href="http://www.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/classosgParticle_1_1ParticleSystem.html" style="color: blue; text-decoration: underline; ">OpenScene Graph Documentation For the particle system</a></span></p><h2 style="margin-right: 0cm; margin-left: 0cm; font-size: 18pt; font-family: arial; font-weight: bold; "><span style="font-size: 24px; ">Partikel Default:</span></h2><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; text-align: justify; "><span style="font-size: 16px; ">Semua Partikel terbuat dari partikel Template.</span></p><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; text-align: justify; "><span style="font-size: 16px; ">Artinya, pengaturan yang pertama kali dimuat di file, membuat default Template Partikel. OSG Template Default sama seperti Partikel lain, kecuali digunakan sebagai template untuk membuat partikel baru. Sekarang mari kita lanjutkan.</span></p><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; text-align: justify; "><span style="font-size: 16px; ">Untuk mendapatkan akses ke partikel default kita harus melalui Sistem Partikel dan mendapatkannya di <st1:city><st1:place>sana</st1:place></st1:city>. Akibatnya ketika Anda selesai, Anda harus menempatkan partikel default kembali ke dalam Sistem Partikel dan semua partikel baru mengambil keuntungan dari perubahan. Karena kita akan kembali. Namun, dalam situasi ini, Anda tidak akan kembali ke dalam sistem.</span></p><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; text-align: justify; "><span style="font-size: 16px; ">Berikut ini daftar beberapa anggota yang dapat mengubah partikel Default:</span></p><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; margin-top: 0cm; margin-bottom: 0.0001pt; text-align: justify; "><span style="font-size: 16px; ">void setLifeTime (double t) mengatur waktu hidup partikel.</span></p><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; margin-top: 0cm; margin-bottom: 0.0001pt; text-align: justify; "><span style="font-size: 16px; ">void setSizeRange (const rangef &r) mengatur angka minimum dan maksimum ukuran polygon.</span></p><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; margin-top: 0cm; margin-bottom: 0.0001pt; "><span style="font-size: 16px; ">void setAlphaRange (const rangef &r) mengatur angka minimum dan maksimum alpha.<br />void setColorRange (const rangev4 &r) mengatur nilai minimum dan maksimum warna.<br />void setSizeInterpolator (Interpolator *ri) mengatur interpolator untuk komputasi nilai-nilai ukuran.<br />void setAlphaInterpolator (Interpolator *ai) mengatur interpolator untuk komputasi nilai alpha.<br />void setColorInterpolator (Interpolator *ci) mengatur interpolator untuk komputasi nilai-nilai warna<br />void setRadius (float r) </span><span class="shorttext" style="font-size: 16px; ">Atur radius fisik partike</span></p><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; margin-top: 0cm; margin-bottom: 0.0001pt; "><span class="shorttext" style="font-size: 16px; ">l.<o:p></o:p></span></p><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="SV" style="font-size: 16px; ">void setMass (float m) Mengatur massa partikel.<br />void setPosition (const osg::Vec3 &p) Mengatur posisi vektor.<br />void setVelocity (const osg::Vec3 &v) Mengatur vektor kecepatan.<o:p></o:p></span></p><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; text-align: justify; "><span lang="SV" style="font-size: 16px; ">Untuk daftar lengkap sebuah partikel, ikuti link ini:<o:p></o:p></span></p><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; "><span style="font-size: 16px; "><a href="http://www.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/classosgParticle_1_1Particle.html" style="color: blue; text-decoration: underline; "><span lang="SV">OpenScene Graph Documentation for a particle class</span></a></span><span lang="SV" style="font-size: 16px; "><o:p></o:p></span></p><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; text-align: justify; "><span lang="SV" style="font-size: 16px; ">Setelah Anda selesai mengubah nilai, masukkan kembali ke dalam partikel Template Default, dan semua partikel baru yang dibuat dari template / emitor yang memiliki efek yang diinginkan. Catatan ini tidak akan mengubah partikel saat ini. Biasanya, partikel lama dan baru berbaur bersama-sama secara alami.<o:p></o:p></span></p><h2 style="margin-right: 0cm; margin-left: 0cm; font-size: 18pt; font-family: arial; font-weight: bold; "><span lang="SV" style="font-size: 24px; ">Modular Emitter:<o:p></o:p></span></h2><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; text-align: justify; "><span lang="SV" style="font-size: 16px; ">modular emitor digunakan untuk menentukan jumlah partikel yang bisa dibuat. Mengubah jumlah partikel ini akan memberikan pengaruh pemijahan partikel kurang ataun lebih. Hal ini akan menjadi besar untuk digunakan pada api dan meredakan dari waktu ke waktu.<o:p></o:p></span></p><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; text-align: justify; "><span lang="SV" style="font-size: 16px; "><o:p></o:p></span></p><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; text-align: justify; "><span lang="SV" style="font-size: 16px; ">Emitor ini memiliki Shooter dan Placer objek di dal</span></p><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; text-align: justify; "><span lang="SV" style="font-size: 16px; ">amnya. Placers adalah di mana partikel-partikel tersebut dilakukan dengan menembakan kontrol di mana mereka pergi setelah mereka telah "Ditempatkan".<o:p></o:p></span></p><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; "><span style="font-size: 16px; "><a href="http://www.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/classosgParticle_1_1ModularEmitter.html" style="color: blue; text-decoration: underline; ">OpenScene Graph Documentation for a modular emitter</a></span></p><h2 style="margin-right: 0cm; margin-left: 0cm; font-size: 18pt; font-family: arial; font-weight: bold; "><span style="font-size: 24px; ">Emitter Transform:</span></h2><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; text-align: justify; "><span style="font-size: 16px; ">Emitor Transformasi digunakan untuk memindahkan emitor sekitar dan dari posisinya. Cara agar bisa menggunakannya, adalah jika Anda memiliki kapal berlayar menyusuri sungai dan ingin menciptakan efek gelombang yang berbeda dari offset kapal.<o:p></o:p></span></p><p style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: arial; "><span style="font-size: 16px; "><a href="http://www.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/classosg_1_1Transform.html" style="color: blue; text-decoration: underline; ">OpenScene Graph Documentation for a transform</a></span></p><h2 style="margin-right: 0cm; margin-left: 0cm; font-size: 18pt; font-family: arial; font-weight: bold; "><span style="font-size: 24px; ">Mengatur layer:</span></h2><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; ">Ketika kami menangkap variabel melalui GetSingleLayer() semua perubahan akan dibuat tanpa memanggil metode yang ditetapkan. Namun, jika dalam kode, Anda merasa perlu untuk mengatur kembali layer, anda dapat memanggil SetSingleLayer ().</span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><o:p></o:p></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; ">Berinteraksi dengan simulasi tangki:</span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><o:p></o:p></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; ">Melalui program simulasi tangki, kita akan menguba</span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; ">h jejak asap berdebu yang melekat pada tangki, untuk memberikan kenyataan lebih didasarkan pada kecepatan tangki. </span><span lang="SV" style="font-size: 15px; ">Singkatnya, kita akan membuat Seumur Hidup dari partikel pendek atau didasarkan pada kecepatan tangki.<o:p></o:p></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span lang="SV" style="font-size: 15px; "><o:p></o:p></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span lang="SV" style="font-size: 15px; ">Pada fungsi MoveTheTank tangki, saya menambahkan sebagai berikut:<o:p></o:p></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span lang="SV" style="font-size: 15px; "><o:p></o:p></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span lang="SV" style="font-size: 15px; "><o:p></o:p></span></p><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">if(mDust.valid() && mIsEngineRunning && mVelocity != 0)<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">{<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>// Mendapatkan layer yang diinginkan<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>dtCore::ParticleLayer& pLayerToSet = *mDust->GetSingleLayer("Layer 0");<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span><o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span><span> </span>osgParticle::Particle& defaultParticle = pLayerToSet.GetParticleSystem().getDefaultParticleTemplate();<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><o:p> </o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>// melakukan perubahan funky<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>float lifetime = max(2.0f, abs(mVelocity) * .4f);<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span>defaultParticle.setLifeTime(lifetime);<o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; "><span> </span><o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">pLayerToSet.GetModularEmitter().setNumParticlesToCreateMovementCompenstationRatio(abs(mVelocity) * 0.10f);<span> </span><o:p></o:p></code></span></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><code style="color: rgb(255, 102, 51); font-family: 'Courier New'; ">}<o:p></o:p></code></span></pre><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><o:p></o:p></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><o:p></o:p></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span lang="SV" style="font-size: 15px; ">Sekarang ketika Anda memindahkan tangki yang memiliki partikel, maka partikel tersebut akan berubah sesuai dengan kecepatan kendaraan Anda. Keren!</span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: arial; "><span style="font-size: 13px; "><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ5Rh6orKxyb0FFURHXpQ7-19g3k_MgdRIVDUWPeAyl-7HLZT3O6rkhjFGaCS0_Jez3QZ-SFQtdfvmPAkw2eA8lyt8I9tnZezBwI4kEJtCD0cISz_x4UwnF0N4qfGxXD_Wht3YwRtrYoE/s1600/asdfg.GIF" style="color: blue; text-decoration: underline; "><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ5Rh6orKxyb0FFURHXpQ7-19g3k_MgdRIVDUWPeAyl-7HLZT3O6rkhjFGaCS0_Jez3QZ-SFQtdfvmPAkw2eA8lyt8I9tnZezBwI4kEJtCD0cISz_x4UwnF0N4qfGxXD_Wht3YwRtrYoE/s320/asdfg.GIF" alt="" id="BLOGGER_PHOTO_ID_5471581454902643618" border="0" style="border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-width: initial; border-color: initial; padding-top: 6px; padding-right: 6px; padding-bottom: 6px; padding-left: 6px; border-top-width: 1px; border-top-color: rgb(221, 221, 221); border-left-width: 1px; border-left-color: rgb(221, 221, 221); border-bottom-width: 1px; border-bottom-color: rgb(192, 192, 192); border-right-width: 1px; border-right-color: rgb(192, 192, 192); margin-top: 0pt; margin-right: 10px; margin-bottom: 10px; margin-left: 0pt; float: left; cursor: pointer; width: 320px; height: 273px; " /></a></span></pre><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><br /></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><br /></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; ">Referensi:</span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><br /></span></p><p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: arial; margin-top: 0cm; margin-bottom: 10pt; line-height: 17px; text-align: justify; "><span style="font-size: 15px; "><a href="http://www.delta3d.org/article.php?story=20060622140124995&topic=tutorials" style="color: blue; text-decoration: underline; ">http://www.delta3d.org/article.php?story=20060622140124995&topic=tutorials</a></span><span style="font-size: 15px; "> </span></p></div></span></span></span></div>NibonX's bloghttp://www.blogger.com/profile/06289663153406649921noreply@blogger.com0tag:blogger.com,1999:blog-6191579551794724069.post-68402303362318696872010-05-13T19:41:00.000-07:002010-05-13T19:42:59.792-07:00Game KomputerComputer Game<br /><br /><br />Personal Computer Game (juga dikenal sebagai permainan komputer atau game PC) adalah permainan yang dimainkan di komputer pribadi, bukan pada video game konsol atau mesin arcade. permainan komputer telah berevolusi dari grafis sederhana dan game dari judul awal seperti Spacewar, dengan berbagai judul yang lebih visual canggih.!<br /><br />game PC yang dibuat oleh pengembang satu atau lebih permainan, biasanya bersama dengan spesialis lainnya (seperti seniman permainan) dan dipublikasikan baik secara mandiri atau melalui penerbit pihak ketiga. Mereka kemudian dapat didistribusikan pada media fisik seperti DVD dan CD, sebagai internet-download, mungkin dapat didistribusikan secara bebas, perangkat lunak, atau melalui jasa pengiriman online seperti Direct2Drive dan Uap. game PC sering membutuhkan hardware khusus di komputer pengguna untuk bermain, seperti generasi spesifik unit pemrosesan grafik atau koneksi internet untuk bermain online, meskipun persyaratan sistem ini bervariasi dari satu pertandingan ke pertandingan.<br /><br /><br />Pengertian Game Engine<br /><br />Game Engine adalah system perangkat lunak yang dirancang untuk menciptakan dan pengembangan video game. Ada banyak mesin permainan yang dirancang untuk bekerja pada konsol permainan video dan sistem operasi desktop seperti Microsoft Windows, Linux, dan Mac OS X. fungsionalitas inti biasanya disediakan oleh mesin permainan mencakup mesin render ( “renderer”) untuk 2D atau 3D grafis, mesin fisika atau tabrakan (dan tanggapan tabrakan), suara, script, animasi, kecerdasan buatan, jaringan, streaming, manajemen memori, threading, dukungan lokalisasi, dan adegan grafik. Proses pengembangan permainan sering dihemat oleh sebagian besar menggunakan kembali mesin permainan yang sama untuk menciptakan permainan yang berbeda.<br /><br /><br />3 Game Engine<br /><br />Delta3D adalah open-source game / mesin simulasi. Desain modular Delta3D's mengintegrasikan lain terkenal proyek Open Source seperti OpenSceneGraph, Open Dynamics Engine, Cal3D, dan OpenAL, mengintegrasikan mereka dalam sebuah API yang mudah digunakan. Daripada mengubur modul yang mendasari, Delta3D mengintegrasikan mereka bersama-sama, memungkinkan akses ke komponen penting yang mendasari. Ini memberikan tingkat-tinggi API sementara masih memungkinkan pengguna akhir fungsi, opsional tingkat rendah.<br /><br /><br />Ogre (Object-Oriented Graphics Rendering Engine) adalah sebuah adegan yang berorientasi fleksibel rendering engine 3D (sebagai lawan mesin permainan) ditulis dalam C + + dirancang untuk membuatnya lebih mudah dan intuitif bagi pengembang untuk menghasilkan aplikasi yang menggunakan grafis 3D hardware-accelerated. The abstrak perpustakaan kelas rincian menggunakan sistem perpustakaan yang mendasari seperti Direct3D dan OpenGL dan menyediakan sebuah antarmuka berbasis pada objek lain kelas dunia dan tingkat tinggi.<br /><br /><br />Irrlicht adalah sebuah mesin 3D open source yang ditulis dalam C + +. Ini adalah cross-platform, secara resmi berjalan pada Windows, Mac OS X, Linux dan Windows CE dan karena open port alam untuk sistem lain termasuk Xbox, PlayStation Portable, SymbianOS dan iPhone yang tersedia . Irrlicht dikenal karena ukurannya yang kecil dan kompatibilitas dengan perangkat keras baru dan tua sama, kurva belajar dangkal dan masyarakat yang ramah besar. Unofficial binding untuk banyak bahasa yang ada termasuk NET,. Jawa, perl, Ruby, Python, FreeBASIC, Lua, Delphi, C + + Builder dan bahkan Game Maker. Irrlicht pembangunan mulai tahun 2003 dengan hanya satu pengembang, Nikolaus Gebhardt. Hanya setelah rilis 1.0 dari Irrlicht pada tahun 2006 tim tumbuh untuk saat ini sepuluh anggota, pengembang kebanyakan dari mereka.<br /><br /><br />Jenis-jenis Game<br /><br />Terdapat berbagai macam game, yaitu antara lain:<br /><br /><br />1. Fun Games<br /><br /><br />Fun games adalah permainan seperti : skate board, bilyard, catur, puzzle, tetris, golf, Windows Entertainment Pack Games dan semua permainan yang animasinya sedikit dan pembuatannya relatif mudah. Permainan semacam ini terlihat mudah dari segi grafiknya tetapi biasanya sulit dalam algoritma.<br /><br /><br />2. Arcade Games<br /><br /><br />Arcade games adalah semua permainan yang mudah dimengerti, menyenangkan dan grafiknya bagus walau biasanya sederhana. Pengertian mudah dimengerti dan menyenangkan dikarenakan permainan ini hanyalah berkisar pada hal-hal yang disenangi umum seperti pukul memukul, tembak menembak, tusuk menusuk, kejar mengejar dan semua yang mudah dan menyenangkan. Yang termasuk kedalam permainan jenis ini adalah Prince of Persia, Street Fighter, Golden Axe, Grand Prix, Robocop.<br /><br /><br />3. Strategic Games<br /><br /><br />Strategic games biasanya permainan strategi perang atau bisa juga permainan lain tetapi tetap saja memerlukan strategi untuk memenangkannya seperti startegi bisnis dan strategi politik.<br /><br /><br />4. Adventure Games<br /><br /><br />Adventure games terbagi atas tiga macam yaitu petualangan biasa (Multi Layered Adventur), Dungeon-Underworld Adventure (3D Adventure) dan Roll Playing Game Adventure. Biasanya algoritma untuk membuat game ini adalah sedang-sedang saja sampai sulit. Tapi grafik jenis permainan ini benar-benar sulit. Contoh beberapa permainan jenis ini adalah Space Quest IV, Labyrinth of Word, War II dan Diablo.<br /><br /><br /><br />5. Simulation Games<br /><br /><br />Dari semua jenis permainan yang ada, masing-masing memiliki tingkat kesulitan dan kemudahannya, jika bukan algoritmanya maka akan mudah dalam hal animasinya, akan tetapi games simulasi bisa disebut sebagai jenis permainan yang paling sulit, baik algoritma pembuatannya maupun animasinya. Permainan jenis ini juga yang paling membuat pusing dibandingkan dengan permainan jenis lainnya. Algoritmanya sangat sulit sebab harus memperhitungkan semua kejadian dalam kondisi sebenarnya. Berbagai efek animasi yang dibuat tidak cukup bermodalkan ahli grafik dan algoritma saja, tetapi sedikitnya harus mengerti persoalan matematika, teknik dan fisika. Contoh permainan jenis ini adalah Stellar7, F-15 Strike Eagle, Flight Simulator 98, F-14 Tomcat, F-16 Falcon, Jet Fighter.NibonX's bloghttp://www.blogger.com/profile/06289663153406649921noreply@blogger.com0tag:blogger.com,1999:blog-6191579551794724069.post-86126828458687206312010-05-03T03:59:00.000-07:002010-05-31T10:43:59.596-07:00Creating Actor<table border="0" cellpadding="3" cellspacing="0" width="100%"><tbody><tr><td align="left" bg="" valign="bottom" style="color:#fefeff;"><span class="articleFeature"><img src="http://www.delta3d.org/layout/deltalight/theme-images/pixel.gif" height="4" width="2" />Creating an Actor Tutorial, Part 1 – Overview and Concepts</span></td> <td align="right" bgcolor="#fefeff"><br /></td> </tr> <tr> <td colspan="2" bgcolor="#fefeff" valign="top"><img src="http://www.delta3d.org/layout/deltalight/theme-images/pixel.gif" height="4" width="2" /><span style="color: rgb(144, 144, 144);"><!--Wednesday, July 20 2005 @ 01:37 PM EDT --></span> <table bgcolor="#fefeff" border="0" cellpadding="3" cellspacing="0" width="100%"> <tbody><tr> <td> <p>So you’ve gotten the hang of STAGE. You’ve made some interesting worlds by placing and arranging static meshes. But, to finish your application, you need something more. After all, a few Static Meshes and a Sky Box doesn't make a game. You need trucks that move, game inventory objects, motion sensitive guards, or maybe even a rocket launcher. In short, you need the ability to make your own custom Actors!<br /><br />This tutorial teaches you all you need to know to make your own Actors. By following this 3 part tutorial, you will learn how to create a waving flag that you can use right in the editor. You will learn how to create a complex tessellated Actor, expose its size, speed, and height properties via an ActorProxy, and even make your flag accessible to the editor. </p><p> This tutorial assumes you have already worked with STAGE. If not, please see the <a href="http://www.delta3d.org/article.php?story=20050708125202283&topic=tutorials" target="_self">‘Getting to Know the Editor’</a> tutorial. Note - this tutorial uses the word ‘Game’, ‘Simulation’, and ‘Training Application’ interchangeably. </p> <p> <b></b></p><b><h1><span class="Apple-style-span" style="font-size: medium;">Part 1 – Actors and Proxies and Properties, Oh My!</span></h1></b> <p></p> <p> Before you can get started building that cool waving flag, there are a few things you need to know about how STAGE was built. The Delta3D Editor sits on top of a very dynamic architecture. In fact, STAGE was designed from the ground up to encourage customization. Since we could never anticipate what types of objects you’d need, we built an architecture that is completely generic and let you build your own game objects! Below are 3 key concepts you need to know. </p> <p> <u><b>Actor</b></u> – An Actor is any game object that has properties you want to work with in the Editor. An Actor can truly be anything you can imagine, from flying planes to pulsing lights to droppable guns to scaly green monsters. Actors are the specialized objects that help define your game or simulation. In part 2 of this tutorial, you will create your first Actor called ‘TesselationActor’. </p> <p> <u><b>ActorProxy</b></u> – An ActorProxy is a wrapper for an Actor. Proxies are simple, data oriented classes that have two main jobs. First, they provide a common, uniform class that the editor understands. Second, they know everything about the Actor they wrap, especially the properties. In part 2, you will create an ActorProxy for our flag called ‘TesselationActorProxy’. </p> <p> <u><b>ActorProperties</b></u> – ActorProperties are the properties of an Actor that show up in the PropertyEditor. Actor properties allow level designers to tweak and change how an object works. The more properties you expose, the more useful your object becomes. When you expose numerous important properties for your object, you allow level designers to take full advantage of your Actors without changing your code. In part 2, you will expose Actor properties for ‘Width’, ‘Height’, ‘Number of Steps’, ‘Period’, ‘Amplitude’, ‘Phase’, and ‘Texture’. By changing the values of these properties, you can change the size of your flag, make it move faster, give it more ripples, or even change the texture. The following picture shows some of the properties in the editor. </p> <p> </p><center> <img src="http://www.delta3d.org/images/articles/20050720133707287_8.jpg" alt="" height="287" width="278" /><br /><h5><b>Figure 1 – Tesselation Actor Properties</b></h5> </center> <p> Now that you know the basics about Actors and ActorProxies, there is one final step to address. Since the editor can’t magically find your ActorProxy classes, we need to tell it about our new object. What you need to do is put your ActorProxy into a library that the editor can find. Once you create this library you will be able to import it directly into the editor. Fortunately, this sounds harder than it is. In fact, as you’ll see in part 3 of this tutorial, it takes about 5 lines of actual code to do this. Plus, you will only need 1 library for ALL of your actors. </p> <p> OK. So, let’s sum up! To create any new Actor for STAGE, you will need to do the following steps: </p> <p> 1) Create your Actor – this is your specialty!<br />2) Create your Actor Proxy – simple data wrapper<br />3) Create an Actor Library - ONE time only<br />4) Add your Proxy to the Library – about 5 lines of code<br /></p> <p> Now, you know enough about the basic architecture of STAGE to get started. </p> <p> </p><center> <img src="http://www.delta3d.org/images/articles/20050720133707287_7.jpg" alt="" height="200" width="300" /> </center> <p> Seriously, stop here! If you just want to know how to do something by example, it’s time to move on to <span style="text-decoration: underline;"></span> Part 2 of the tutorial. </p> <p> However, if you’re the technical type and really want to know what’s going on, then you’ll be happy to know that we’ve got some great information ahead. As it happens, the Dynamic Actor Layer (DAL) was thoroughly designed before we ever wrote a line of code. Below is some of the detailed design material used in the construction of the DAL. </p> <p> </p><h1><b><span class="Apple-style-span" style="font-size: medium;">2. Dynamic Actor Layer (DAL)</span></b></h1> <p> The Dynamic Actor Layer (DAL) provides a flexible, non-intrusive mechanism for generically exposing the properties of game actors in C++. The two primary components of this design are ActorProxies and ActorProperties. The proxy component is a wrapper for the underlying game actor and holds a collection of the individual properties. The property component exposes the data for a single game actor property via a getter and setter function object; similar to the Java bean specification. The proxy knows about its properties and the properties know how to access their data. These two components are used to generically expose all underlying data without ever modifying the original game actor code. Use of these data driven components, instead of the underlying game actor, promotes data encapsulation and code re-usability. </p> <p> </p><center> <img src="http://www.delta3d.org/images/articles/20050720133707287_2.gif" alt="" height="307" width="441" /><br /><h5>Figure 2 - Overview</h5> </center> <p> The Dynamic Actor Layer and editor architecture overview is noted in Figure 2. The main purpose of the Editor is to allow for the manipulation of actors in a given scene. To support this, the DAL exposes a generic template allowing STAGE to work with actors as generic objects. The core of this concept is that each actor should be treated generically using only its name, id, and a collection of properties. A detailed description of the components of the DAL follows. </p> <p> </p><h1><b><span class="Apple-style-span" style="font-size: medium;">3. ActorProxy</span></b></h1> <p> As mentioned above, Actors are any objects in your training application that have behavior and need to be manipulated in STAGE. Since the Actor classes can be anything, the editor must be protected from the internal workings of any one object. To make this happen each Actor must have a corresponding Proxy class that allows access to the internal properties. In essence, the ActorProxy is a conduit for actors to communicate their behavior to external applications or to ensure a consistent communications protocol among actors. Figure 3 shows a class diagram of the ActorProxy, Actor (DeltaDrawable), and ActorProperty. </p> <p> </p><center> <img src="http://www.delta3d.org/images/articles/20050720133707287_3.gif" alt="" height="421" width="490" /><br /><h5><b>Figure 3 - ActorProxy Class Diagram</b></h5> </center> <p> The following is a description of the classes portrayed by the class diagram in Figure 3. </p> <p> <u><b>DeltaDrawable</b></u><br />This is the base class for all Actors in the system. The DeltaDrawable (dtCore::DeltaDrawable) is the base class of all Delta3D objects that are in the scene. In addition, it has tracking information like a tag name and a unique ID. </p> <p> <u><b>MyTruck</b></u><br />This is an example of a user built Actor class. Some of these will be built internally as part of the Editor, but many of these will be built by end developers and may be known only to their own particular application. Actor classes can be pretty much anything. They can have lighting, articulated parts, movement, AI, meshes, sounds, triggers, and anything else that you can do with Delta3D. They can draw themselves in anyway they sit fit within the Delta3D architecture. They can have many or zero properties, can have references to shared resources, and can be anything from a square billboard to a full blown landscape. </p> <p> <u><b>ActorProxy</b></u><br />This is the base class for all Actor Proxies. The Proxy’s main purpose is to expose the attributes of an Actor class as a series of properties. It has interface methods for getting and setting properties, getting its actor, and getting the actor’s type. Each actor must have a Proxy. The editor will periodically ask for properties by name or even change the value of the property using the setValue() method. </p> <p> <u><b>MyTruckProxy</b></u><br />This is an example of an actual user built Actor Proxy. In this case, the truck has a property called speed, so the Truck Proxy might expose a property called ‘speed’ to the editor. Then, Truck proxy could handle a request such as setProperty(“speed”, value) by calling myTruck.setSpeed (value). In this case, the TruckProxy knows the inner workings of the Truck class. It knows that speed is actually a floating point value. Many times the proxy will be a simple pass through for data. However, sometimes, the proxy will need to do manipulation of data. For instance, speed might have been represented by a vector of floats (xspeed, yspeed, and zspeed). In that case the proxy might have exposed 3 properties to the editor where there is only one underlying actual value. It might alternately have used a vec3. In either case, the proxy is responsible for knowing how to handle a setProperty(“xSpeed”, value) request and setting the internal speed value of the truck. </p> <p> </p><h1><b><span class="Apple-style-span" style="font-size: medium;">4. ActorProperty</span></b></h1> <p> As stated above, the ActorProperty class provides a getter/setter mechanism for accessing properties of a class similar to the Java beans programming paradigm. Figure 4 depicts a more detailed view of the ActorProperty class including a subset of the property classes for a particular data type. </p> <p> </p><center> <img src="http://www.delta3d.org/images/articles/20050720133707287_4.gif" alt="" height="356" width="408" /><br /><h5><b>Figure 4 - ActorProperty Class Diagram</b></h5> </center> <p> The getter and setter portions of the ActorProperty class are Functors (Function Objects) which reference a getter and a setter method on a given property class. Therefore, when an ActorProperty is created, it knows how to store and retrieve the data it represents. The ActorProperty class is also used to pass information about the properties of an Actor up to the Editor. It has a name, a display name, a description, and a type enumeration. The property class may also have a list of enumerations if the property is itself an enumeration. For example, a property of truck may be speed and it may support Slow, Medium, and Fast or a light may have a type property with settings of Directional, Strobe, Pulse, Omni, etc… </p> <p> </p><h1><b><span class="Apple-style-span" style="font-size: medium;">5. ActorLibraries</span></b></h1> <p> Actor libraries are distributable components that serve to package groups of related actors and actor proxies. Actor libraries are dynamic libraries of C++ code that are loaded into the editor or other application. Figure 5 shows an overview class diagram of the Actor Library subsystem. A detailed description of each component is given below. </p> <p> </p><center><img src="http://www.delta3d.org/images/articles/20050720133707287_5.gif" alt="" height="354" width="357" /><br /><h5><b>Figure 5 - Dynamic Actor Layer Components</b></h5> </center> <p> <u><b>LibraryManager</b></u><br />This class is the main class in the Library Manager. It has a list of the libraries that are registered with the Manager as well as a list of which Actor Types each of the libraries can create. It is also the main vehicle for creating a new Actor Proxy. The Manager uses the singleton pattern. </p> <p> <u><b>ActorPluginRegistry</b></u><br />This is the base class that developers extend to build their own registry. The most important behavior in the registry is the ability to take an Actor Type and create a new Actor via the Actor Proxy. A registry is responsible for knowing which Actor types it can build. Since the Editor doesn’t know anything about object classes, the registry is responsible for figuring it out. The registry base class also exposes an object factory which provides most, if not all, of the ActorPluginRegistry’s Actor Type to Actor mapping capabilities. </p> <p> <u><b>MyPluginRegistry</b></u><br />This is a 3rd party implementation of the Registry. The developer will need to create and track which Actor Types it understands as well as be able to take an Actor Type and create a new Actor Proxy. This is likely a very simple class which creates and registers its actor types with the factory so that they are available at run-time. </p> <p> <u><b>ActorType</b></u><br />This is a simple data class that has information describing a particular Actor type. There will be one Actor Type for each unique Actor class like ‘BouncyTruck’ or ‘AgressiveSoldier’. For each actor class, there must be an Actor Type with a name, a category, and a description. The category is of particular note because it is used to visually sort classes in the editor. It follows a hierarchical dot notation (ex. “Vehicles.Trucks.NeatTrucks”) used to group related classes in some of the UI panels. It can also be used to search for objects. </p> <p> </p><h1><b><span class="Apple-style-span" style="font-size: medium;">6. Project / Map</span></b></h1> <p> The project context is basically the “home” directory of your map. It is responsible for storing resources imported into the Editor; such as static meshes, particle systems, textures, and sounds. All of the imported actors in a map are stored and referenced relative to the project context of the map. The details of the Project and Map class interactions are beyond the scope of this tutorial; however Figure 6 shows a class diagram which depicts the basic interactions available to the Project and Map classes. </p> <p> </p><center><img src="http://www.delta3d.org/images/articles/20050720133707287_6.gif" alt="" height="248" width="540" /><br /><h5>Figure 6 - Project - Map Class Diagram</h5><div style="text-align: left;"><table border="0" cellpadding="3" cellspacing="0" width="100%"><tbody><tr><td align="left" bgcolor="#fefeff" valign="bottom"><br /></td><td align="right" bgcolor="#fefeff"><br /></td></tr><tr><td colspan="2" bgcolor="#fefeff" valign="top"><br /></td></tr></tbody></table></div><br /></center></td></tr></tbody></table></td></tr></tbody></table>NibonX's bloghttp://www.blogger.com/profile/06289663153406649921noreply@blogger.com0tag:blogger.com,1999:blog-6191579551794724069.post-92233207928109184402010-05-03T00:39:00.000-07:002010-05-03T01:07:03.812-07:00Animasi Mobil bergerak 3D<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA6JFgOJEugzt7LHQJQOlS_KrgjgbLFplksdUqC7F5XMM3r_fX3Xlt0vEWK_2m9loaTiVBz5pN2HykX4oXxJ-AxdS9z3Ah5qD2I7SfhvkwrKMDuuVv6w07pOPJRVnPJ0_LZwCraXpIkCZh/s1600/CarWithChassis1.jpg"><img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 154px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA6JFgOJEugzt7LHQJQOlS_KrgjgbLFplksdUqC7F5XMM3r_fX3Xlt0vEWK_2m9loaTiVBz5pN2HykX4oXxJ-AxdS9z3Ah5qD2I7SfhvkwrKMDuuVv6w07pOPJRVnPJ0_LZwCraXpIkCZh/s200/CarWithChassis1.jpg" alt="" id="BLOGGER_PHOTO_ID_5466950665475976594" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />Gambar 1<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZmsHlKJ0ASp9_RUwqeWGPSYDE1GrrnBDR8kR0uHvCmwBLlESsdECSgknFKYfjpP324GQS5Ed3FgkSVlk9djQurioweiDesn_dGri07oZoImW6ClHHJLxFTOOTNyvDqP35-RLlk0MwjnaU/s1600/CarWithChassis3.jpg"><img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 144px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZmsHlKJ0ASp9_RUwqeWGPSYDE1GrrnBDR8kR0uHvCmwBLlESsdECSgknFKYfjpP324GQS5Ed3FgkSVlk9djQurioweiDesn_dGri07oZoImW6ClHHJLxFTOOTNyvDqP35-RLlk0MwjnaU/s200/CarWithChassis3.jpg" alt="" id="BLOGGER_PHOTO_ID_5466949290538135538" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br />Gambar 2<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmBFPc5K8DL3D31d9LpPu2XPkt8EOAbOP1EszP9AEAaoxTlvd2Stjk2C701QRE4uzSDUG00foZdflHLgKRGtm4lTYEmT_99XR-NCL4wyDlf20sA6X5nxAXD3YjWSbOERGIku2EKaRkmTBw/s1600/CarWithChassis2.jpg"><img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 118px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmBFPc5K8DL3D31d9LpPu2XPkt8EOAbOP1EszP9AEAaoxTlvd2Stjk2C701QRE4uzSDUG00foZdflHLgKRGtm4lTYEmT_99XR-NCL4wyDlf20sA6X5nxAXD3YjWSbOERGIku2EKaRkmTBw/s200/CarWithChassis2.jpg" alt="" id="BLOGGER_PHOTO_ID_5466949277186690722" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br />Gambar 3<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1oObxk-LbpXrbwToPLEc-J1Xd1ZbTx2Mk1kTX8Rew2BCSR-2eLvRolKldV6RMRhQouQ-IlU3M87WA7DkK5XHET-O9CBjccjGgogISUiTyUZZmFPEmGSp7_v32RvcsRV9CieADxeRcZXDs/s1600/CarWithChassis4.jpg"><img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 148px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1oObxk-LbpXrbwToPLEc-J1Xd1ZbTx2Mk1kTX8Rew2BCSR-2eLvRolKldV6RMRhQouQ-IlU3M87WA7DkK5XHET-O9CBjccjGgogISUiTyUZZmFPEmGSp7_v32RvcsRV9CieADxeRcZXDs/s200/CarWithChassis4.jpg" alt="" id="BLOGGER_PHOTO_ID_5466949268532794930" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br />Gambar 4<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEippOAg6pheBevDLDCQGRqP0up2A8UVdM6o-WRbQslku0VTnJlUnumUXj4cvxSSU2iVGR3GF5ss7kFBEx2e5YDpxr672RwKSKYukKmfPpWoxAThGZkDFR5SX8YVOxcZCC6Yk2yOPzWN2bm9/s1600/CarWithChassis5.jpg"><img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 118px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEippOAg6pheBevDLDCQGRqP0up2A8UVdM6o-WRbQslku0VTnJlUnumUXj4cvxSSU2iVGR3GF5ss7kFBEx2e5YDpxr672RwKSKYukKmfPpWoxAThGZkDFR5SX8YVOxcZCC6Yk2yOPzWN2bm9/s200/CarWithChassis5.jpg" alt="" id="BLOGGER_PHOTO_ID_5466949268429819602" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br />Gambar 5<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw1wP9nR7Qp3HgjihmccQ7Q1-fxOgkyZCi3UWbMKY-AmGE9zeCw6OhRn5waHwl43ykhSRhyhBpQczacA3TUS070ebm1qPN8yJzYeAHNvByeXgGj7QuuVmB1vYzhPUCKVMp04qiXC0Xl9Ox/s1600/CarWithChassis6.jpg"><img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 129px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw1wP9nR7Qp3HgjihmccQ7Q1-fxOgkyZCi3UWbMKY-AmGE9zeCw6OhRn5waHwl43ykhSRhyhBpQczacA3TUS070ebm1qPN8yJzYeAHNvByeXgGj7QuuVmB1vYzhPUCKVMp04qiXC0Xl9Ox/s200/CarWithChassis6.jpg" alt="" id="BLOGGER_PHOTO_ID_5466949262264321874" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br />Gambar 6<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJmhPXhGA_eYZRYGvjFtGQfnr3YKR7VzRuldpkQRQQr7Tk5E4Q9gcWUJoL_UOPjOvLpYEkhQacnfA6_I6xIezZzWdGicGmyWdmp-OC2M5jkBR2bHvthIlwbADzNd-d_ntGI0UoqRmbZ8IM/s1600/CarWithChassis7.jpg"><img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 137px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJmhPXhGA_eYZRYGvjFtGQfnr3YKR7VzRuldpkQRQQr7Tk5E4Q9gcWUJoL_UOPjOvLpYEkhQacnfA6_I6xIezZzWdGicGmyWdmp-OC2M5jkBR2bHvthIlwbADzNd-d_ntGI0UoqRmbZ8IM/s200/CarWithChassis7.jpg" alt="" id="BLOGGER_PHOTO_ID_5466948240291375186" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br />Gambar 7<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtWHCQpkvsgMiTn9rMvOHDAi2dZErP0wRFNFBewNTel7tu2NGWA9Y8kAcHcY-qEj9VOYOwzL1PMHo1iVooV9N3UscTZMDZ6q5sbTZQk2OzfhnSOXUbcuFvG_pH7061Yu444OfZPnmpGDOx/s1600/CarWithChassis7.jpg"><img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 137px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtWHCQpkvsgMiTn9rMvOHDAi2dZErP0wRFNFBewNTel7tu2NGWA9Y8kAcHcY-qEj9VOYOwzL1PMHo1iVooV9N3UscTZMDZ6q5sbTZQk2OzfhnSOXUbcuFvG_pH7061Yu444OfZPnmpGDOx/s200/CarWithChassis7.jpg" alt="" id="BLOGGER_PHOTO_ID_5466948230692077682" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br />Gambar 8<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMNeXf9dJyf_1JqMpG7W_LoSuJF6FRLk7S1dytkGYzbUL88LYd7hwhT8aMRBHET4HUZiV0d9FlyBIvCV6LThCeuhyphenhyphenIArjHkOY7C2VVXkroySapZW31uw88AJO1PEb5grmUpfrKTETsq9UZ/s1600/CarWithChassis8.jpg"><img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 136px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMNeXf9dJyf_1JqMpG7W_LoSuJF6FRLk7S1dytkGYzbUL88LYd7hwhT8aMRBHET4HUZiV0d9FlyBIvCV6LThCeuhyphenhyphenIArjHkOY7C2VVXkroySapZW31uw88AJO1PEb5grmUpfrKTETsq9UZ/s200/CarWithChassis8.jpg" alt="" id="BLOGGER_PHOTO_ID_5466948228648654626" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br />Gambar 9<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5u6TxAVI2APpdIu0b7-0LQB6n6SVAwakrGDSqkJGVMuEVA5D6B_p558suHm0L4_hVXHKhMb05qpFq1SWILdLicC4qTMiHS0wlQN5xY33xBiB-TNrfp6790jZkNXYp32dt-RaLXCZl8s_E/s1600/CarWithChassis10.jpg"><img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 134px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5u6TxAVI2APpdIu0b7-0LQB6n6SVAwakrGDSqkJGVMuEVA5D6B_p558suHm0L4_hVXHKhMb05qpFq1SWILdLicC4qTMiHS0wlQN5xY33xBiB-TNrfp6790jZkNXYp32dt-RaLXCZl8s_E/s200/CarWithChassis10.jpg" alt="" id="BLOGGER_PHOTO_ID_5466948223532131202" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br />Gambar 10<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGk0RIdXsyjalzZjL5Sk41A1ZERjOPPRRkwf-MXXQNgBq-9D0TISMI0JQYl1TEJ3uuveHyI4CBGc-F4bZUPHHgjEljuRhFnucolgOBa9RXRepDevJY3mHOAwGb9YvHsURKtc20PLpqqbTK/s1600/CarWithChassis11.jpg"><img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 205px; height: 131px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGk0RIdXsyjalzZjL5Sk41A1ZERjOPPRRkwf-MXXQNgBq-9D0TISMI0JQYl1TEJ3uuveHyI4CBGc-F4bZUPHHgjEljuRhFnucolgOBa9RXRepDevJY3mHOAwGb9YvHsURKtc20PLpqqbTK/s200/CarWithChassis11.jpg" alt="" id="BLOGGER_PHOTO_ID_5466948216579392978" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br />Gambar 11<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQDAeIcm_DWWgvDIZDLayr3qrJUEx60y_Fa1GUgYcGNU06UQ_08_A82B8FPldOisV6hz1eaDQ9JmKtTpTEwZKlL8rqtRR54ysXGjPREy3ZDDOrmPO2sNs1bgLy3_7MGmUw5Va9E37eVOb8/s1600/CarWithChassis12.jpg"><img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 138px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQDAeIcm_DWWgvDIZDLayr3qrJUEx60y_Fa1GUgYcGNU06UQ_08_A82B8FPldOisV6hz1eaDQ9JmKtTpTEwZKlL8rqtRR54ysXGjPREy3ZDDOrmPO2sNs1bgLy3_7MGmUw5Va9E37eVOb8/s200/CarWithChassis12.jpg" alt="" id="BLOGGER_PHOTO_ID_5466947576476397954" border="0" /></a><br /><br /><br /><br /><div style="text-align: left;"><br /><br /><br /><br /><br />Gambar 12<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwyhSD4pMhfWT_kwU5zDD1w0XBHtL2ZVG2UiQrFILoWWeQ7j-TzD283MMCWLU48hqz0Ib3GC8aEeONiGeuCLUFOmtmA7Q1S6RJ4Snpnsv1um3o_yGEBfSjE6JFwgcE5cYt8pmkoiTJa16S/s1600/CarWithChassis13.jpg"><img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 135px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwyhSD4pMhfWT_kwU5zDD1w0XBHtL2ZVG2UiQrFILoWWeQ7j-TzD283MMCWLU48hqz0Ib3GC8aEeONiGeuCLUFOmtmA7Q1S6RJ4Snpnsv1um3o_yGEBfSjE6JFwgcE5cYt8pmkoiTJa16S/s200/CarWithChassis13.jpg" alt="" id="BLOGGER_PHOTO_ID_5466947423272664482" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br />Gambar 13<br /><br /><br /><span style="font-family:lucida grande;">TUTORIAL ANIMASI MOBIL</span><br /></div><p>Di sini adalah mobil kita akan menghidupkan. Ini dapat yang sederhana seperti kotak untuk chassis, sebuah kotak untuk tubuh mobil, dan empat silinder untuk roda. Membangun mobil Anda dengan membuat kotak di viewport perspektif, seperti menghadap ke kiri, seperti ditunjukkan pada gambar di atas. Alasan untuk ini adalah bahwa ia akan menyelamatkan Anda kesulitan pada rotasi roda nanti. Melakukannya dengan cara ini menjamin roda anda akan berada dalam orientasi yang tepat untuk Y rotasi dengan persamaan. Setelah tubuh dan sasis mobil dibuat, membuat roda kiri depan dengan menggambar sebuah silinder dengan AutoGrid dihidupkan (AutoGrid memungkinkan Anda untuk menggambar 3d geometri pada geometri lain seperti badan mobil). Kemudian salin roda pertama untuk membuat roda belakang, lalu salin kedua roda kiri ke sisi kanan dari mobil.</p> <p>Berikut adalah hirarki untuk mobil – nama benda-benda sehingga Anda dapat memberitahu apa yang dihubungkan dengan apa. Anda akan perlu menggunakan alat Pilih dan Link pada Standard Toolbar untuk menghubungkan bagian-bagian ini bersama-sama. Semuanya, yaitu, semua empat roda dan badan mobil, semuanya diasuh ke casis. Jika Anda belum pernah menggunakan Schematic Lihat antarmuka, mencobanya. Ini adalah cara terbaik untuk berurusan dengan link hirarkis.</p> <p>Berikut ini adalah jalan bagi mobil kami – sebuah garis sederhana digambar dengan halus ditetapkan sebagai tipe default. Untuk realistis berubah, kebutuhan mobil kami jalan yang halus.</p> <p>Pilih mobil chassis dan kemudian pergi ke menu dan pilih Animasi Path Kendala seperti yang ditunjukkan di atas. Kemudian klik pada jalur mobil. Ini akan menempatkan mobil chassis, dengan semua anak-anak, di jalan. The chassis akan pindah ke ketinggian jalan, sehingga Anda mungkin perlu memindahkan jalan yang lebih tinggi sehingga mobil tidak berada di bawah permukaan jalan Anda dengan asumsi Anda memiliki jalan.</p> <p>Anda akan perlu untuk membuat beberapa penyesuaian dalam Motion Panel. Mengatur chassis untuk Ikuti Jalan di Path Pilihan. Juga, menyesuaikan Axis dan Flip sampai mobil bergerak ke arah yang benar di jalan. Perhatikan di sini bahwa kita menggunakan Timne Slider di bagian bawah Max antarmuka untuk melihat apa yang dilakukan mobil di berbagai bingkai dari animasi.</p> <p>Ketika mobil berjalan di sepanjang jalan, apakah itu tampaknya memiliki kecepatan yang tepat? Mobilku tampaknya akan sedikit cepat, jadi aku Timne Konfigurasi mengklik tombol di bagian paling bawah layar – terlihat seperti sedikit stopwatch. Dalam kotak dialog Konfigurasi Timne, klik Re-skala Sisa (jangan kamu berharap kami bisa melakukan itu dalam kehidupan nyata?). Dalam skala Re Timne kotak dialog, klik End Time nilai dan mengubahnya ke 150 frame (atau apa pun yang Anda butuhkan). Dengan mengubah jumlah frame 100-150, dan kemudian menekan OK pada kedua kotak dialog, akhirnya aku membuat gerakan mobil di sekitar jalan 50% lebih lambat, hanya apa yang dibutuhkan.</p> <p>Di sini kita di Top tampilan. Ini adalah perspektif yang baik untuk memutar badan mobil pada chassis untuk menciptakan realistis bersandar ketika mobil menabrak kurva. Di sini, di frame 29, kita mendorong mobil 5 derajat dan kemudian segera kembali lagi ke 0. Mengapa? Untuk membuat bingkai yang membuat mobil dari berputar sampai kita melewati langsung. Kemudian, ketika kita menambahkan ke mobil rotasi tubuh pada frame 35, itu tidak akan memulai aktual mobil rotasi tubuh sampai frame 29. Jadi kecil ini “dorongan” adalah penting. Perhatikan bahwa sudut alat Snap dihidupkan, sehingga kita bisa tepat dalam rotasi. Juga perhatikan di sini bahwa metode rotasi tubuh mobil diatur ke Lokal (lihat Standar Toolbar – ini penting). Jika Anda tidak menetapkan sistem koordinat Anda untuk Lokal, Anda akan berakhir dengan sebuah mobil yang berputar pada sumbu XYZ lain daripada sendiri, dan tidak akan beres.</p> <p>Sekarang kita berada di jantung belokan kanan pertama kami. Mobil harus bersandar. Mobil memutar badan 15 derajat ke luar jalan. Pergi melalui proses ini, semua jalan di trek. Untuk saat berbelok, memutar badan mobil kiri, dan untuk bergantian kiri, memutar tubuh mobil kanan. Pastikan untuk menggunakan sebuah “dorongan” jika Anda ingin mengontrol ketika mobil berputar.</p> <p>Selanjutnya kita akan membuat roda berbelok dengan menggunakan suatu persamaan, yang lebih mudah daripada memutar roda dengan tangan dengan Auto Key diaktifkan. Dalam rangka untuk melihat roda berbelok dengan benar, mereka membutuhkan bahan pada mereka. Kami akan menerapkan bahan kotak-kotak ini contoh sederhana. Pilih sebuah roda dan meluncurkan Material Editor dengan menekan tombol M. Pilih bahan gratis slot, dan nama Checkered materi Anda. Klik tombol di sebelah baur parameter, dan ketika anda melihat Material / Map Browser, klik-ganda pada Checker. Ini akan menghasilkan bahan checker untuk Anda.</p> <p>Ketika menerapkan suatu bahan untuk suatu objek, pastikan objek yang dipilih, dan kemudian tekan tombol Apply Material to Selection tombol untuk menerapkan materi. Pastikan anda juga mengaktifkan tombol yang disebut “Tunjukkan Bahan dalam Viewport”. Perhatikan dalam gambar ini bahwa roda depan tampak cukup bagus, tetapi bahan roda belakang kurang tepat. Itu karena roda Anda memerlukan UVW Map. Screenshot berikutnya akan alamat ini.</p> <p>Pilih roda belakang, dan dari daftar Modifiers, pilih UVW Map. Peta default jenis planar akan bekerja dengan baik di sini.</p> <p>Sekarang untuk membuat roda gilirannya, pilih roda, pergi ke Motion Panel, dan klik di bawah Mentransformasi on Y Rotasi seperti yang ditunjukkan di atas. Kemudian klik “?” sebagaimana ditunjukkan. Ketika Tetapkan Controller muncul kotak dialog, pilih Float Expression. Ini seharusnya memunculkan Expression Controller, ditunjukkan di bawah ini.</p> <p>Dalam Expression Controller di atas, masukkan rumus 360 * sin (S * 5) atau sesuatu yang mirip dengan sesuai dengan kebutuhan anda. Dalam persamaan ini, 360 adalah untuk derajat, dosa adalah untuk ekspresi trigonometri yang disebut sinus, yang kapitol S adalah untuk detik, dan angka 5 atau apa pun yang Anda gunakan untuk putaran tiap detik. Kemudian, tekan tombol Evaluasi pada kotak dialog Expression Controller. Jauhkan kotak terbuka dan menjalankan animasi untuk melihat seberapa baik kerjanya. Apakah anda memerlukan sedikit rotasi? Menurunkan angka 5 ke bawah untuk sesuatu seperti 2. Apakah roda salah jalan? Meletakkan – di depan 5 atau 2. Ketika gerakan satu roda terlihat bagus, salin persamaan dan ulangi proses ini untuk 3 roda yang lain.</p>NibonX's bloghttp://www.blogger.com/profile/06289663153406649921noreply@blogger.com0tag:blogger.com,1999:blog-6191579551794724069.post-31034598537453154552010-03-04T17:38:00.000-08:002010-03-04T17:50:20.835-08:00Review Game<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1XODAM32xxS50ljS-THUMcVEMUHhL6ty4GLZjvF3kTq98w6cuHPbHmGUJZAyznlvl7iAhiHCBxGYXoiwRElVT1aK1Xm6VJg7Ff9GeqzTXXfty9sA-3O82UtROZX7LHsdx2JyrR82CN2Qr/s1600-h/7402m.jpg"><img style="text-align: justify;float: right; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 10px; cursor: pointer; width: 234px; height: 175px; " src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1XODAM32xxS50ljS-THUMcVEMUHhL6ty4GLZjvF3kTq98w6cuHPbHmGUJZAyznlvl7iAhiHCBxGYXoiwRElVT1aK1Xm6VJg7Ff9GeqzTXXfty9sA-3O82UtROZX7LHsdx2JyrR82CN2Qr/s320/7402m.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5444959802315255698" /></a><div style="text-align: justify;"><br /></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLVFEJYPH0OXEC2E23RstWas4YkTpCtTjgQ1TwDxnyzGBOKU0bSo6qrPK9d5HCJKj6urX1JP-dWWPuvqwJdXnlGREnVPQQ2OgVY85UkSfL_HkMr7PAdE8Ae2ueJGoLGEk2g8Ntmpeyn1pW/s1600-h/7403m.jpg"><img style="text-align: justify;float: left; margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 0px; cursor: pointer; width: 234px; height: 175px; " src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLVFEJYPH0OXEC2E23RstWas4YkTpCtTjgQ1TwDxnyzGBOKU0bSo6qrPK9d5HCJKj6urX1JP-dWWPuvqwJdXnlGREnVPQQ2OgVY85UkSfL_HkMr7PAdE8Ae2ueJGoLGEk2g8Ntmpeyn1pW/s320/7403m.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5444958790328327378" /></a><br /><h2 class="fheader"><br /></h2><h2 class="fheader"><br /></h2><h2 class="fheader"><br /></h2><h2 class="fheader" style="text-align: justify;">Sonic Unleashed</h2><div style="text-align: justify;">Sisa-sisa kejayaan konsol PlayStation2 tampaknya bisa diwakilkan oleh game terbaru keluaran SEGA ini, <em>Sonic Unleashed</em> (atau lebih dikenal <em>Sonic World Adventure</em> untuk versi Jepangnya) sebagai kisah lanjutan dari <em>Sonic the Hedgehog</em>. Dalam game ini, Sonic berusaha mengembalikan keadaan dunia menjadi normal setelah musuh bebuyutannya, Dr. Eggman, membuat dunia terpecah menjadi dua bagian besar menggunakan senjata baru ciptaannya beserta kekuatan Chaos Emerald yang dimilikinya.</div><div style="text-align: justify;"><br /></div><div align="center" style="text-align: justify;"><a class="borderlink" title="Dunia akan terpecah-pecah, kamu akan memainkan dua alam berbeda" href="http://www.kotakgame.com/images/gambar/screenshot/10/47/926/7401/7401xl.jpg" rel="lightbox[gallery]"><img src="file:///E:/detail_preview.php_files/7401m.jpg" /></a></div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Dampak dari dunia yang terbelah dua, <em>Sonic Unleashed</em> pun memiliki dua level yang berlainan, yakni saat siang hari dan malam hari. Suatu kejutan besar yang disisipkan oleh Sonic Team Japan sebagai developer game ini untuk membuat seakan dua game berbeda dibaur dalam satu kemasan apik. Kala siang hari, Sonic seperti biasa melaju kencang ke sana kemari, bahkan kini Sonic diberikan kemampuan untuk bisa mencapai kecepatan 300 mil/jam. Selebihnya mungkin agak berbau seri <em>Sonic and the Secret Rings</em>, dengan beberapa pengecualian, seperti penggunaan Hedgehog Engine untuk pertama kalinya yang memungkinkan tampilan grafis maksimal pada konsol PS3 dan Xbox 360. Meski, versi Wii dan PS2 juga menggunakan <em>engine</em> yang sama, tetap kualitasnya belum sebanding dengan kedua konsol yang disebut pertama. Begitu dengan PC.</div><div style="text-align: justify;"><br /></div><div align="center" style="text-align: justify;"><a class="borderlink" title="Siang hari kamu menjadi Sonic yang berkecepatan super" href="http://www.kotakgame.com/images/gambar/screenshot/20/47/926/7402/7402xl.jpg" rel="lightbox[gallery]"><img src="file:///E:/detail_preview.php_files/7402m.jpg" /></a></div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Nah di malam hari, Sonic berubah menjadi sesuatu yang berbeda, dikarenakan pengaruh dari emerald yang dimiliki oleh Dr. Eggman maka setiap bulan muncul Sonic akan bertransformasi menjadi Werehog. Dalam bentuk ini, Sonic kehilangan kecepatan yang dia miliki, tapi sebagai gantinya Sonic menjadi super kuat. Jadi di sini kamu tidak lagi beradu cepat di tiap levelnya tapi justru mengandalkan kekuatan fisik untuk mengalahkan musuh-musuhmu. Jadi kesimpulannya, kalau di siang hari kamu bergantung pada kecepatan, maka saat malam hari intinya lebih ke eksplorasi dan unsur petualangan.</div><div style="text-align: justify;"><br /></div><div align="center" style="text-align: justify;"><a class="borderlink" title="Sebagai Werehog, kamu tidak bisa berlari kencang tapi memiliki jangkauan dan kekuatan super" href="http://www.kotakgame.com/images/gambar/screenshot/30/47/926/7403/7403xl.jpg" rel="lightbox[gallery]"><img src="file:///E:/detail_preview.php_files/7403m.jpg" /></a></div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Kalau menilik tanggal rilis <em>Sonic Unleashed</em> yang agak beragam di beberapa tempat berdasarkan konsolnya, maka cukup diasumsikan saja game ini bakal rilis akhir tahun ini. Yang pasti game ini pertama kali akan muncul untuk konsol Wii dan PlayStation2 secara resmi mulai tanggal 18 November, kemudian versi Xbox 360 dan PS3 berbarengan rilis di Korea Selatan tanggal 20 November, baru yang paling terakhir di Jepang sekitar bulan Maret 2009.</div>NibonX's bloghttp://www.blogger.com/profile/06289663153406649921noreply@blogger.com0tag:blogger.com,1999:blog-6191579551794724069.post-30358303411213301522009-12-29T15:44:00.000-08:002009-12-29T15:52:59.923-08:00Pengenalan 3ds Max<span class="Apple-style-span" style="font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13px; color: rgb(204, 204, 204); line-height: 20px; "><b><span class="Apple-style-span" style="font-weight: normal; line-height: normal; "><div class="post-body entry-content" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; line-height: 1.6em; "><span style="font-weight: bold; "><span class="Apple-style-span" style="color:#000000;">Sekilas Tentang 3D studio Max</span></span><span class="Apple-style-span" style="color:#000000;"><br /></span><ul style="text-align: justify; "><li><span class="Apple-style-span" style="color:#000000;">Saat ini komputer grafis telah menunjukan kemajuan yang pesat. Komputer grafis telah mampu menghasilkan suatu program yang dapat membuat gambar 3 dimensiyang mampu menyerupai aslinya.</span></li><li><span class="Apple-style-span" style="color:#000000;">Software animasi tiga dimensi yang paling populer di Indonesia saat ini adalah 3D Studio Max yang dikeluarkan oleh AutoDesk Inc.</span></li></ul><div style="text-align: justify; "><span style="font-weight: bold; "><span class="Apple-style-span" style="color:#000000;">Keunggulan 3D Studio Max</span></span><span class="Apple-style-span" style="color:#000000;"><br /></span></div><ul style="text-align: justify; "><li><span class="Apple-style-span" style="color:#000000;">Mampu membuat objek Virtual secara 3 dimensi. dan bentuk dapat diubah sesuai keinginan.</span></li><li><span class="Apple-style-span" style="color:#000000;">Mampu memberikan kesan material mendekati aslinya seperti material kayu, batuan, dan tanah.</span></li><li><span class="Apple-style-span" style="color:#000000;">Mampu memberikan efek-efek khusus pada hasil akhir produk seperti efek cahaya dan bayangan, efek atmosfir seperti api, kabut dan lighting.</span></li><li><span class="Apple-style-span" style="color:#000000;">Dapat menjalankan proses animasi, gambar dapat digerakan dan dirubah bentuknya serta diatur proses animasinya.</span></li></ul><div style="text-align: justify; "><div style="text-align: justify; "><span style="font-weight: bold; "><span class="Apple-style-span" style="color:#000000;">Tampilan </span></span><span><span class="Apple-style-span" style="color:#000000;">( </span></span><span style="font-style: italic; "><span class="Apple-style-span" style="color:#000000;">User Interface</span></span><span><span class="Apple-style-span" style="color:#000000;"> )</span></span><span style="font-weight: bold; "><span class="Apple-style-span" style="color:#000000;"> 3D Studio Max</span></span><span class="Apple-style-span" style="color:#000000;"><br /></span></div><span class="Apple-style-span" style="color:#000000;"><br />Pertama kali membuka 3D Studio Max, kita melihat layar dengan 4 kotak dan banyak tombol. kita dapat mengorganisasikan bagian pada tampilan ini sebagai berikut :<br /></span></div><ul><li><span class="Apple-style-span" style="color:#000000;">ViewPort</span></li><li><span class="Apple-style-span" style="color:#000000;">MenuBar</span></li><li><span class="Apple-style-span" style="color:#000000;">Toolbar</span></li><li><span class="Apple-style-span" style="color:#000000;">Command Panel</span></li><li><span class="Apple-style-span" style="color:#000000;">Status Bar / Viewport Control</span></li></ul><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUBzT4cLtLLHNqfOfbZLz2IIIgqMjZ4sEHV3FTi8wR8hnrR_E-av65IiBIXdUQQV18A1XKM1BalszlWxmbCraHKvgCyYKY0-sZPCtvBk7q3Si0QgAgL4A0VOl6pAnwnCh2JFTi-GQ_SDOF/s1600-h/User+Interface.jpg" style="text-decoration: none; "><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUBzT4cLtLLHNqfOfbZLz2IIIgqMjZ4sEHV3FTi8wR8hnrR_E-av65IiBIXdUQQV18A1XKM1BalszlWxmbCraHKvgCyYKY0-sZPCtvBk7q3Si0QgAgL4A0VOl6pAnwnCh2JFTi-GQ_SDOF/s320/User+Interface.jpg" alt="" id="BLOGGER_PHOTO_ID_5402878026159480738" border="0" style="border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-width: initial; border-color: initial; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-color: rgb(51, 51, 51); border-right-color: rgb(51, 51, 51); border-bottom-color: rgb(51, 51, 51); border-left-color: rgb(51, 51, 51); margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; display: block; text-align: center; cursor: pointer; width: 320px; height: 241px; " /></a><span class="Apple-style-span" style="color:#000000;"><br /></span><div style="text-align: justify; "><span style="font-weight: bold; "><span class="Apple-style-span" style="color:#000000;">1. VIEWPORT</span></span><span class="Apple-style-span" style="color:#000000;"><br />ViewPort adalah tampilan yang memperlihatkan object. Untuk dapat mengaktifkan salah satu ViewPort anda dapat mengkilik ViewPort yang diinginkan.<br /><br /></span><span style="font-weight: bold; "><span class="Apple-style-span" style="color:#000000;">2. MENUBAR</span></span><span class="Apple-style-span" style="color:#000000;"><br />Standart Bar dari Windows seperti File, Edit, View dan sebagainya<br /><br /></span><span style="font-weight: bold; "><span class="Apple-style-span" style="color:#000000;">3. TOOLBAR</span></span><span class="Apple-style-span" style="color:#000000;"><br />Tombol - tombol untuk memberi perintah secara cepat.<br /><br /></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUEJ8qNCuovBN1rMFy4jCOxXlwsvjHAqS3yWQpGb9n96QNYhNUMfMD4VLHJ-n7jAlkDVm5puZXnDA0Fd3WgNRNKwZC9ya-9WY1kkEYEpUlHs1AQzUeZHLW3QnA3GkVUzVds8ychtP7ABze/s1600-h/Toolbar.jpg" style="text-decoration: none; "><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUEJ8qNCuovBN1rMFy4jCOxXlwsvjHAqS3yWQpGb9n96QNYhNUMfMD4VLHJ-n7jAlkDVm5puZXnDA0Fd3WgNRNKwZC9ya-9WY1kkEYEpUlHs1AQzUeZHLW3QnA3GkVUzVds8ychtP7ABze/s320/Toolbar.jpg" alt="" id="BLOGGER_PHOTO_ID_5402886156389470258" border="0" style="border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-width: initial; border-color: initial; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-color: rgb(51, 51, 51); border-right-color: rgb(51, 51, 51); border-bottom-color: rgb(51, 51, 51); border-left-color: rgb(51, 51, 51); margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; display: block; text-align: center; cursor: pointer; width: 320px; height: 22px; " /></a><span class="Apple-style-span" style="color:#000000;"><br /></span><span style="font-weight: bold; "><span class="Apple-style-span" style="color:#000000;">4. COMMAND PANEL</span></span><span class="Apple-style-span" style="color:#000000;"><br />Tombol - tombol perintah, control dan parameter untuk membuat, memodifikasi dan menunjukan object.<br /><br /></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf-JFqJL9E-FS9UAF7oPVf0iGaQmvNOvBXkpV2sLQBjVfSA3Bqlr_WuxKTxTKrQ7pQuMwuFct7yqGP9jRiUg6Dp6uvDxG_P9AHlMj1L0wxY557ZIOMf15K_lf-2SP2PeKUZ-ThuvKN1xZR/s1600-h/command+panel+3.jpg" style="text-decoration: none; "><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf-JFqJL9E-FS9UAF7oPVf0iGaQmvNOvBXkpV2sLQBjVfSA3Bqlr_WuxKTxTKrQ7pQuMwuFct7yqGP9jRiUg6Dp6uvDxG_P9AHlMj1L0wxY557ZIOMf15K_lf-2SP2PeKUZ-ThuvKN1xZR/s320/command+panel+3.jpg" alt="" id="BLOGGER_PHOTO_ID_5402886151772688466" border="0" style="border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-width: initial; border-color: initial; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-color: rgb(51, 51, 51); border-right-color: rgb(51, 51, 51); border-bottom-color: rgb(51, 51, 51); border-left-color: rgb(51, 51, 51); margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; display: block; text-align: center; cursor: pointer; width: 320px; height: 184px; " /></a><span class="Apple-style-span" style="color:#000000;"><br /></span><span style="font-weight: bold; "><span class="Apple-style-span" style="color:#000000;">5. STATUS BAR / VIEWPORT CONTROL</span></span><span class="Apple-style-span" style="color:#000000;"><br />ViewPort Control atau Status Bar adalah untuk mengatur cara melihat pada viewport tertentu.<br /></span></div><span class="Apple-style-span" style="color:#000000;"><br /></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq7emGQD5iJqKRo6tGq0wI4glaIwCoZBQPpw631mkTRyGPZKELuPwSHjRzEgBdw9soeo1Ie-iaWGRZAdEF_fU3EtRhdkoiR_5bzAlDGYW6lpnK_wSpRaGOvSKFCQwGuHDDoPEuJ5yyalBD/s1600-h/ViewPort+Control.jpg" style="text-decoration: underline; "><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq7emGQD5iJqKRo6tGq0wI4glaIwCoZBQPpw631mkTRyGPZKELuPwSHjRzEgBdw9soeo1Ie-iaWGRZAdEF_fU3EtRhdkoiR_5bzAlDGYW6lpnK_wSpRaGOvSKFCQwGuHDDoPEuJ5yyalBD/s320/ViewPort+Control.jpg" alt="" id="BLOGGER_PHOTO_ID_5402886160883554162" border="0" style="border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-width: initial; border-color: initial; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-color: rgb(51, 51, 51); border-right-color: rgb(51, 51, 51); border-bottom-color: rgb(51, 51, 51); border-left-color: rgb(51, 51, 51); margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; display: block; text-align: center; cursor: pointer; width: 320px; height: 142px; " /></a><div style="clear: both; "></div></div><div class="post-footer" style="margin-top: 0.75em; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; color: rgb(119, 119, 119); text-transform: uppercase; letter-spacing: 0.1em; font: normal normal normal 78%/normal 'Trebuchet MS', Trebuchet, Arial, Verdana, sans-serif; line-height: 1.4em; "><br /></div><div class="post-footer" style="margin-top: 0.75em; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; color: rgb(119, 119, 119); text-transform: uppercase; letter-spacing: 0.1em; font: normal normal normal 78%/normal 'Trebuchet MS', Trebuchet, Arial, Verdana, sans-serif; line-height: 1.4em; "><span class="Apple-style-span" style="color: rgb(255, 255, 255); font-family: Tahoma; font-size: 12px; letter-spacing: normal; line-height: normal; text-transform: none; "><br /><a href="http://www.ilmugrafis.com/3dmax-studio.php?page=membuat-sendiri-background-awan-dengan-3dsmax" class="four" style="font-family: tahoma; font-size: 12px; text-decoration: none; "><strong><strong><span class="Apple-style-span" style="color:#006600;">Membuat Sendiri Background Awan Dengan 3DS MAX</span></strong></strong></a><br /><span class="Apple-style-span" style="color:#999999;">Publish: 4 September 2008 | Author & Copyright: | Status: FREE tutorial | 3DS MAX All Version </span><br /><span class="Apple-style-span" style="color:#000000;"><br />Ada trik yang sangat mudah dan praktis untuk Anda dapat membuat sebuah background langit dengan awan yang cerah tanpa menggunakan </span><a href="http://www.ilmugrafis.com/" class="seven" style="font-family: tahoma; font-size: 11px; text-decoration: none; "><span class="Apple-style-span" style="color:#000000;">foto</span></a><span class="Apple-style-span" style="color:#000000;"> awan. Anda akan menggunakan fitur bernama Smoke Map. Dengan demikian Anda tidak perlu bergantung kepada gambar-gambar </span><a href="http://www.ilmugrafis.com/" class="seven" style="font-family: tahoma; font-size: 11px; text-decoration: none; "><span class="Apple-style-span" style="color:#000000;">foto</span></a><span class="Apple-style-span" style="color:#000000;">. Dengan Smoke Map, Anda dapat menciptakan kreasi awan sendiri dengan bebas.<br /><br />Ini dia panduannya:<br /><br /></span><strong><span class="Apple-style-span" style="color:#000000;">Langkah 1</span></strong><span class="Apple-style-span" style="color:#000000;"><br />Buka sebuah file 3DS Max yang Anda punya<br /></span><p><span class="Apple-style-span" style="color:#000000;"><img src="http://www.ilmugrafis.net/3dmax/3dmax5/1max5.jpg" /><br />Gambar 01. Objek-Objek 3 Dimensi<br /><br /><br /></span><strong><span class="Apple-style-span" style="color:#000000;">Langkah 2</span></strong><span class="Apple-style-span" style="color:#000000;"><br />Buka juga jendela Environment and Effect. Anda ubah </span><strong><span class="Apple-style-span" style="color:#000000;">None</span></strong><span class="Apple-style-span" style="color:#000000;"> pada Environment Map menjadi pilihan</span><strong><span class="Apple-style-span" style="color:#000000;">Smoke</span></strong><span class="Apple-style-span" style="color:#000000;">.<br /><br /></span><span class="Apple-style-span" style="color:#000000;"><img src="http://www.ilmugrafis.net/3dmax/3dmax5/2max5.jpg" /><br />Gambar 02. Pemilihan Smoke Environment</span></p><p><span class="Apple-style-span" style="color:#000000;"><br /></span><strong><span class="Apple-style-span" style="color:#000000;">Langkah 3</span></strong><span class="Apple-style-span" style="color:#000000;"><br />Anda buka jendela </span><strong><span class="Apple-style-span" style="color:#000000;">Material Editor</span></strong><span class="Apple-style-span" style="color:#000000;">. </span><strong><span class="Apple-style-span" style="color:#000000;">Drag Smoke</span></strong><span class="Apple-style-span" style="color:#000000;"> ke salah satu slot material di jendela Material Editor (caranya sama seperti yang telah dijelaskan pada trik sebelumnya). Atur dengan setingan parameter seperti pada gambar dibawah. Ubah </span><strong><span class="Apple-style-span" style="color:#000000;">Color #1</span></strong><span class="Apple-style-span" style="color:#000000;"> dengan warna biru muda dan </span><strong><span class="Apple-style-span" style="color:#000000;">Color #2</span></strong><span class="Apple-style-span" style="color:#000000;"> dengan warna putih.<br /><br /></span><span class="Apple-style-span" style="color:#000000;"><img src="http://www.ilmugrafis.net/3dmax/3dmax5/3max5.jpg" /><br />Gambar 03. Setingan Parameter Smoke</span></p><p><span class="Apple-style-span" style="color:#000000;"><br /></span><strong><span class="Apple-style-span" style="color:#000000;">Langkah 4</span></strong><span class="Apple-style-span" style="color:#000000;"><br />Lakukan kalkulasi </span><strong><span class="Apple-style-span" style="color:#000000;">Render </span></strong><span class="Apple-style-span" style="color:#000000;">(klik menu </span><strong><span class="Apple-style-span" style="color:#000000;">Rendering>Render>Render</span></strong><span class="Apple-style-span" style="color:#000000;">). Anda sudah memiliki </span><a href="http://www.ilmugrafis.com/3dmax-studio.php?page=membuat-sendiri-background-awan-dengan-3dsmax" class="seven" style="font-family: tahoma; font-size: 11px; text-decoration: none; "><span class="Apple-style-span" style="color:#000000;">awan</span></a><span class="Apple-style-span" style="color:#000000;"> yang cerah. Have a Nice Day! ;)<br /><br /></span><span class="Apple-style-span" style="color:#000000;"><img src="http://www.ilmugrafis.net/3dmax/3dmax5/4max5.jpg" /><br />Gambar 04. Hasil Pemberian Smoke Environment</span></p></span></div></span></b><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq7emGQD5iJqKRo6tGq0wI4glaIwCoZBQPpw631mkTRyGPZKELuPwSHjRzEgBdw9soeo1Ie-iaWGRZAdEF_fU3EtRhdkoiR_5bzAlDGYW6lpnK_wSpRaGOvSKFCQwGuHDDoPEuJ5yyalBD/s1600-h/ViewPort+Control.jpg" style="color: rgb(170, 221, 153); text-decoration: underline; "></a></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq7emGQD5iJqKRo6tGq0wI4glaIwCoZBQPpw631mkTRyGPZKELuPwSHjRzEgBdw9soeo1Ie-iaWGRZAdEF_fU3EtRhdkoiR_5bzAlDGYW6lpnK_wSpRaGOvSKFCQwGuHDDoPEuJ5yyalBD/s1600-h/ViewPort+Control.jpg" style="color: rgb(170, 221, 153); text-decoration: underline; "></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq7emGQD5iJqKRo6tGq0wI4glaIwCoZBQPpw631mkTRyGPZKELuPwSHjRzEgBdw9soeo1Ie-iaWGRZAdEF_fU3EtRhdkoiR_5bzAlDGYW6lpnK_wSpRaGOvSKFCQwGuHDDoPEuJ5yyalBD/s1600-h/ViewPort+Control.jpg" style="color: rgb(170, 221, 153); text-decoration: underline; "></a>NibonX's bloghttp://www.blogger.com/profile/06289663153406649921noreply@blogger.com1tag:blogger.com,1999:blog-6191579551794724069.post-17647459224791836142009-10-29T18:35:00.001-07:002009-10-29T18:44:45.620-07:003ds max tutorial's polygon<span class="Apple-style-span" style="font-family: sans-serif; font-size: 13px; line-height: 19px; "><h2 style="color: black; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; font-weight: normal; margin-top: 0px; margin-right: 0px; margin-bottom: 0.6em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(170, 170, 170); font-size: 19px; background-position: initial initial; "><span class="mw-headline" id="Modeling">Modeling</span></h2><h3 style="color: black; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0.3em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: initial; border-bottom-style: none; border-bottom-color: initial; font-size: 17px; background-position: initial initial; "><span class="mw-headline" id="Polygon_modeling">Polygon modeling</span></h3><div class="rellink relarticle mainarticle" style="font-style: italic; padding-left: 2em; margin-bottom: 0.5em; ">Main article: <a href="http://en.wikipedia.org/wiki/Polygon_modeling" title="Polygon modeling" class="mw-redirect" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Polygon modeling</a></div><p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; ">Polygon modeling is more common with game design than any other modeling technique as the very specific control over individual polygons allows for extreme optimization. Usually, the modeller begins with one of the 3ds max primitives, and using such tools as <a href="http://en.wikipedia.org/wiki/Bevel" title="Bevel" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">bevel</a> and <a href="http://en.wikipedia.org/wiki/Extrude" title="Extrude" class="mw-redirect" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">extrude</a>, adds detail to and refines the model. Versions 4 and up feature the Editable Polygon object, which simplifies most mesh editing operations, and provides subdivision smoothing at customizable levels.</p><p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; ">Version 7 introduced the <i>edit poly</i> modifier, which allows the use of the tools available in the editable polygon object to be used higher in the modifier stack (i.e., on top of other modifications).</p><h3 style="color: black; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0.3em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: initial; border-bottom-style: none; border-bottom-color: initial; font-size: 17px; background-position: initial initial; "><span class="mw-headline" id="NURBS_or_Nonuniform_rational_B-Spline">NURBS or Nonuniform rational B-Spline</span></h3><h3 style="color: black; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0.3em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: initial; border-bottom-style: none; border-bottom-color: initial; font-size: 17px; background-position: initial initial; "><span class="mw-headline" id="NURBS_or_Nonuniform_rational_B-Spline"><span class="Apple-style-span" style="font-size: 13px; font-weight: normal; ">A more advanced alternative to polygons, it gives a smoothed out surface that eliminates the straight edges of a polygon model. <a href="http://en.wikipedia.org/wiki/NURBS" title="NURBS" class="mw-redirect" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">NURBS</a> is a mathematically exact representation of freeform surfaces like those used for car bodies and ship hulls, which can be exactly reproduced at any resolution whenever needed. With NURBS, a smooth sphere can be created with only one face.</span></span></h3><p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; ">The non-uniform property of NURBS brings up an important point. Because they are generated mathematically, NURBS objects have a parameter space in addition to the 3D geometric space in which they are displayed. Specifically, an array of values called knots specifies the extent of influence of each control vertex (CV) on the curve or surface. Knots are invisible in 3D space and you can't manipulate them directly, but occasionally their behavior affects the visible appearance of the NURBS object. This topic mentions those situations. Parameter space is one-dimensional for curves, which have only a single U dimension topologically, even though they exist geometrically in 3D space. Surfaces have two dimensions in parameter space, called U and V.</p><p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; ">NURBS curves and surfaces have the important properties of not changing under the standard geometric affine transformations (Transforms), or under perspective projections. The CVs have local control of the object: moving a CV or changing its weight does not affect any part of the object beyond the neighboring CVs. (You can override this property by using the Soft Selection controls.) Also, the control lattice that connects CVs surrounds the surface. This is known as the convex hull property.</p><h3 style="color: black; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0.3em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: initial; border-bottom-style: none; border-bottom-color: initial; font-size: 17px; background-position: initial initial; "><span class="mw-headline" id="Surface_tool.2FEditable_patch_object">Surface tool/Editable patch object</span></h3><p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; "><i>Surface tool</i> was originally a 3rd party plugin, but Kinetix acquired and included this feature since version 3.0. The surface tool is for creating common 3ds max's splines, and then applying a modifier called "surface." This modifier makes a surface from every 3 or 4 vertices in a grid. This is often seen as an alternative to 'Mesh' or 'Nurbs' modeling, as it enables a user to interpolate curved sections with straight geometry (for example a hole through a box shape). Although the surface tool is a useful way to generate parametrically accurate geometry, it lacks the 'surface properties' found in the similar Edit Patch modifier, which enables a user to maintain the original parametric geometry whilst being able to adjust "smoothing groups" between faces.</p><h2 style="color: black; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; font-weight: normal; margin-top: 0px; margin-right: 0px; margin-bottom: 0.6em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(170, 170, 170); font-size: 19px; background-position: initial initial; "><span class="mw-headline" id="Predefined_primitives">Predefined primitives</span></h2><p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; ">This is a basic method, in which one models something using only boxes, spheres, cones, cylinders and other predefined objects from the list of <i>Predefined Standard Primitives</i> or a list of<i>Predefined Extended Primitives</i>. One may also apply boolean operations, including subtract, cut and connect. For example, one can make two spheres which will work as <a href="http://en.wikipedia.org/wiki/Blob" title="Blob" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">blobs</a> that will connect with each other. These are called <a href="http://en.wikipedia.org/wiki/Metaballs" title="Metaballs" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">metaballs</a>.</p><div class="thumb tright" style="margin-bottom: 0.8em; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; width: auto; clear: right; float: right; border-width: initial; border-color: initial; border-width: initial; border-color: initial; margin-top: 0.5em; margin-right: 0px; margin-left: 1.4em; background-color: white; "><div class="thumbinner" style="min-width: 100px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); padding-top: 3px !important; padding-right: 3px !important; padding-bottom: 3px !important; padding-left: 3px !important; background-color: rgb(249, 249, 249); font-size: 12px; text-align: center; overflow-x: hidden; overflow-y: hidden; width: 202px; "><a href="http://en.wikipedia.org/wiki/File:3ds_max_cube.svg" class="image" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; "><img alt="" src="http://upload.wikimedia.org/wikipedia/commons/thumb/5/54/3ds_max_cube.svg/200px-3ds_max_cube.svg.png" width="200" height="205" class="thumbimage" style="border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-width: initial; border-color: initial; vertical-align: middle; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); " /></a><div class="thumbcaption" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; text-align: left; line-height: 1.4em; padding-top: 3px !important; padding-right: 3px !important; padding-bottom: 3px !important; padding-left: 3px !important; font-size: 11px; "><div class="magnify" style="float: right; border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-width: initial !important; border-color: initial !important; background-image: none !important; background-repeat: initial !important; background-attachment: initial !important; -webkit-background-clip: initial !important; -webkit-background-origin: initial !important; background-color: initial !important; background-position: initial initial !important; "><a href="http://en.wikipedia.org/wiki/File:3ds_max_cube.svg" class="internal" title="Enlarge" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none !important; background-repeat: initial !important; background-attachment: initial !important; -webkit-background-clip: initial !important; -webkit-background-origin: initial !important; background-color: initial !important; display: block; border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-width: initial !important; border-color: initial !important; background-position: initial initial !important; "><img src="http://en.wikipedia.org/skins-1.5/common/images/magnify-clip.png" width="15" height="11" alt="" style="border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-width: initial; border-color: initial; vertical-align: middle; display: block; border-width: initial !important; border-color: initial !important; background-image: none !important; background-repeat: initial !important; background-attachment: initial !important; -webkit-background-clip: initial !important; -webkit-background-origin: initial !important; background-color: rgb(255, 255, 255); background-position: initial initial !important; " /></a></div>3ds max cube primitive</div></div></div><div class="thumb tright" style="margin-bottom: 0.8em; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; width: auto; clear: right; float: right; border-width: initial; border-color: initial; border-width: initial; border-color: initial; margin-top: 0.5em; margin-right: 0px; margin-left: 1.4em; background-color: white; "><div class="thumbinner" style="min-width: 100px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); padding-top: 3px !important; padding-right: 3px !important; padding-bottom: 3px !important; padding-left: 3px !important; background-color: rgb(249, 249, 249); font-size: 12px; text-align: center; overflow-x: hidden; overflow-y: hidden; width: 202px; "><a href="http://en.wikipedia.org/wiki/File:3ds_max_hedron_2.jpg" class="image" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; "><img alt="" src="http://upload.wikimedia.org/wikipedia/en/thumb/0/06/3ds_max_hedron_2.jpg/200px-3ds_max_hedron_2.jpg" width="200" height="200" class="thumbimage" style="border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-width: initial; border-color: initial; vertical-align: middle; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); " /></a><div class="thumbcaption" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; text-align: left; line-height: 1.4em; padding-top: 3px !important; padding-right: 3px !important; padding-bottom: 3px !important; padding-left: 3px !important; font-size: 11px; "><div class="magnify" style="float: right; border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-width: initial !important; border-color: initial !important; background-image: none !important; background-repeat: initial !important; background-attachment: initial !important; -webkit-background-clip: initial !important; -webkit-background-origin: initial !important; background-color: initial !important; background-position: initial initial !important; "><a href="http://en.wikipedia.org/wiki/File:3ds_max_hedron_2.jpg" class="internal" title="Enlarge" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none !important; background-repeat: initial !important; background-attachment: initial !important; -webkit-background-clip: initial !important; -webkit-background-origin: initial !important; background-color: initial !important; display: block; border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-width: initial !important; border-color: initial !important; background-position: initial initial !important; "><img src="http://en.wikipedia.org/skins-1.5/common/images/magnify-clip.png" width="15" height="11" alt="" style="border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-width: initial; border-color: initial; vertical-align: middle; display: block; border-width: initial !important; border-color: initial !important; background-image: none !important; background-repeat: initial !important; background-attachment: initial !important; -webkit-background-clip: initial !important; -webkit-background-origin: initial !important; background-color: rgb(255, 255, 255); background-position: initial initial !important; " /></a></div>3ds max hedron primitive</div></div></div><h3 style="color: black; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0.3em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: initial; border-bottom-style: none; border-bottom-color: initial; font-size: 17px; background-position: initial initial; "><span class="mw-headline" id="Predefined_Standard_Primitives_list">Predefined Standard Primitives list</span></h3><ul style="line-height: 1.5em; list-style-type: square; margin-top: 0.3em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 1.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: url(http://en.wikipedia.org/skins-1.5/monobook/bullet.gif); "><li style="margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Box" title="Box" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Box</a> — box produces a <a href="http://en.wikipedia.org/wiki/Rectangular_prism" title="Rectangular prism" class="mw-redirect" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">rectangular prism</a>. An alternative variation of box is available — entitled cube — which proportionally constrains the length, width and height of the box.</li><li style="margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Cylinder_(geometry)" title="Cylinder (geometry)" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Cylinder</a> — cylinder produces a cylinder.</li><li style="margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Torus" title="Torus" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Torus</a> — torus produces a torus — or a ring — with a circular cross section, sometimes referred to as a doughnut.</li><li style="margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Utah_teapot" title="Utah teapot" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Teapot</a> — teapot produces the Utah teapot. Since the teapot is a parametric object, the user can choose which parts of the teapot to display after creation. These parts include the body, handle, spout and lid.</li><li style="margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Cone_(geometry)" title="Cone (geometry)" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Cone</a> — cone produces round cones — either upright or inverted.</li><li style="margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Sphere" title="Sphere" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Sphere</a> — sphere produces a full sphere, hemisphere, or other portion of a sphere.</li><li style="margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Cylinder_(geometry)" title="Cylinder (geometry)" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Tube</a> — tube can produce both round and prismatic tubes. The tube is similar to the cylinder with a hole in it.</li><li style="margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Pyramid" title="Pyramid" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Pyramid</a> — The pyramid primitive has a square or rectangular base and triangular sides.</li><li style="margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Plane_(mathematics)" title="Plane (mathematics)" class="mw-redirect" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Plane</a> — The plane object is a special type of flat polygon mesh that can be enlarged by any amount at render time. The user can specify factors to magnify the size or number of segments, or both. Modifiers such as displace can be added to a plane to simulate a hilly terrain.</li><li style="margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Geosphere" title="Geosphere" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Geosphere</a> — GeoSphere produces spheres and hemispheres based on three classes of regular polyhedrons.</li></ul><h3 style="color: black; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0.3em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: initial; border-bottom-style: none; border-bottom-color: initial; font-size: 17px; background-position: initial initial; "><span class="mw-headline" id="Predefined_Extended_Primitives_list">Predefined Extended Primitives list</span></h3><ul style="line-height: 1.5em; list-style-type: square; margin-top: 0.3em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 1.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: url(http://en.wikipedia.org/skins-1.5/monobook/bullet.gif); "><li style="margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Hedra" title="Hedra" class="mw-redirect" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Hedra</a> — produces objects from several families of <a href="http://en.wikipedia.org/wiki/Polyhedron" title="Polyhedron" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">polyhedra</a>.</li><li style="margin-bottom: 0.1em; ">ChamferBox — creates a box with beveled or rounded edges.</li><li style="margin-bottom: 0.1em; ">OilTank — creates a cylinder with convex caps.</li><li style="margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Spindle_(textiles)" title="Spindle (textiles)" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Spindle</a> — creates a cylinder with conical caps.</li><li style="margin-bottom: 0.1em; ">Gengon — creates an extruded, regular-sided polygon with optionally filleted side edges.</li><li style="margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Prism_(optics)" title="Prism (optics)" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Prism</a> — Creates a three-sided prism with independently segmented sides.</li><li style="margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Torus_knot" title="Torus knot" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Torus knot</a> — creates a complex or knotted torus by drawing 2D curves in the normal planes around a 3D curve. The 3D curve (called the Base Curve) can be either a circle or a torus knot. It can be converted from a torus knot object to a NURBS surface.</li><li style="margin-bottom: 0.1em; ">ChamferCyl — creates a cylinder with beveled or rounded cap edges.</li><li style="margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Capsule" title="Capsule" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Capsule</a> — creates a cylinder with hemispherical caps.</li><li style="margin-bottom: 0.1em; ">L-Ext — creates an extruded L-shaped object.</li><li style="margin-bottom: 0.1em; ">C-Ext — creates an extruded C-shaped object.</li><li style="margin-bottom: 0.1em; ">Hose — a flexible object, similar to a spring.</li></ul><h2 style="color: black; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; font-weight: normal; margin-top: 0px; margin-right: 0px; margin-bottom: 0.6em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(170, 170, 170); font-size: 19px; background-position: initial initial; "><span class="mw-headline" id="Rendering">Rendering</span></h2><dl style="margin-top: 0.2em; margin-bottom: 0.5em; "><dt style="font-weight: bold; margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Scanline_rendering" title="Scanline rendering" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Scanline rendering</a></dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">The default rendering method in <i>3DS Max</i> is scanline rendering. Several advanced features have been added to the scanliner over the years, such as global illumination, radiosity, and<a href="http://en.wikipedia.org/wiki/Ray_tracing_(graphics)" title="Ray tracing (graphics)" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">ray tracing</a>.</dd><dt style="font-weight: bold; margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Mental_ray" title="Mental ray" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">mental ray</a></dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">mental ray is a production quality renderer integrated into the later versions of MAX, and is a powerful rendering tool, with <a href="http://en.wikipedia.org/wiki/Bucket_rendering" title="Bucket rendering" class="mw-redirect" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">bucket rendering</a>, a technique that distributes the rendering burden between several computers efficiently. The 3ds Max version of mental ray also comes with a set of tools that allow a myriad of effects to be created with relative ease.</dd><dt style="font-weight: bold; margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/RenderMan" title="RenderMan" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">RenderMan</a></dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">A third party connection tool to RenderMan pipelines is also available for those that need to integrate <i>Max</i> into Renderman render farms.</dd><dt style="font-weight: bold; margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/V-Ray" title="V-Ray" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">V-Ray</a></dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">A third-party render engine plug-in for 3D Studio MAX. It is widely used, frequently substituting the standard and mental ray renderers which are included bundled with 3ds Max. V-Ray continues to be compatible with older versions of 3ds Max.</dd><dt style="font-weight: bold; margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Brazil_R/S" title="Brazil R/S" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Brazil R/S</a></dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">A third-party high-quality photorealistic rendering system created by SplutterFish, LLC capable of fast ray tracing and global illumination.</dd><dt style="font-weight: bold; margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/FinalRender" title="FinalRender" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">FinalRender</a></dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">Another third-party raytracing render engine created by Cebas. Capable of simulating a wide range of real-world physical phenomena.</dd><dt style="font-weight: bold; margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Indigo_Renderer" title="Indigo Renderer" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Indigo Renderer</a></dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">A third-party photorealistic renderer with plugins for 3ds max.</dd><dt style="font-weight: bold; margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Maxwell_Render" title="Maxwell Render" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Maxwell Render</a></dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">A third-party photorealistic rendering system created by <a href="http://en.wikipedia.org/wiki/Next_Limit_Technologies" title="Next Limit Technologies" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Next Limit Technologies</a> providing robust materials and highly accurate unbiased rendering.</dd><dt style="font-weight: bold; margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/w/index.php?title=BIGrender_3.0&action=edit&redlink=1" class="new" title="BIGrender 3.0 (page does not exist)" style="text-decoration: none; color: rgb(204, 34, 0); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">BIGrender 3.0</a></dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">Another third-party rendering plugin. Capable of overcoming 3DS rendering memory limitations with rendering huge pictures.</dd></dl><h2 style="color: black; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; font-weight: normal; margin-top: 0px; margin-right: 0px; margin-bottom: 0.6em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(170, 170, 170); font-size: 19px; background-position: initial initial; "><span class="editsection" style="float: right; margin-left: 5px; font-size: 13px; ">]</span><span class="mw-headline" id="Features">Features</span></h2><dl style="margin-top: 0.2em; margin-bottom: 0.5em; "><dt style="font-weight: bold; margin-bottom: 0.1em; ">MAXScript</dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">MAXScript is a built-in scripting language, and can be used to automate repetitive tasks, combine existing functionality in new ways, develop new tools and user interfaces and much more. Plugin modules can be created entirely in MAXscript.</dd><dt style="font-weight: bold; margin-bottom: 0.1em; ">Character Studio</dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">Character Studio was a plugin which since version 4 of Max is now integrated in 3D Studio Max, helping user to animate virtual characters. The system works using a character rig or "Biped" which is pre-made and allows the user to adjust the rig to fit the character they will be animating. Dedicated curve editors and motion capture data import tools make Character Studio ideal for character animation. "Biped" objects have other useful features that automated the production of <a href="http://en.wikipedia.org/wiki/Walk_Cycle" title="Walk Cycle" class="mw-redirect" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">walk cycles</a> and movement paths, as well as secondary motion.</dd><dt style="font-weight: bold; margin-bottom: 0.1em; ">Scene Explorer</dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">Scene Explorer, a tool that provides a hierarchical view of scene data and analysis, facilitates working with more complex scenes. Scene Explorer has the ability to sort, filter, and search a scene by any object type or property (including metadata). Added in 3ds Max 2008, it was the first component to facilitate .NET managed code in 3ds Max outside of MAXScript.</dd><dt style="font-weight: bold; margin-bottom: 0.1em; ">DWG Import</dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">3ds Max supports both import and linking of DWG files. Improved memory management in 3ds Max 2008 enables larger scenes to be imported with multiple objects.</dd><dt style="font-weight: bold; margin-bottom: 0.1em; ">Texture Assignment/Editing</dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">3ds Max offers operations for creative texture and planar mapping, including tiling, mirroring, decals, angle, rotate, blur, UV stretching, and relaxation; Remove Distortion; Preserve UV; and UV template image export. The texture workflow includes the ability to combine an unlimited number of textures, a material/map browser with support for drag-and-drop assignment, and hierarchies with thumbnails. UV workflow features include Pelt mapping, which defines custom seams and enables users to unfold UVs according to those seams; copy/paste materials, maps and colors; and access to quick mapping types (box, cylindrical, spherical).</dd><dt style="font-weight: bold; margin-bottom: 0.1em; ">General Keyframing</dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">Two keying modes — set key and auto key — offer support for different keyframing workflows.</dd><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">Fast and intuitive controls for keyframing — including cut, copy, and paste — let the user create animations with ease. Animation trajectories may be viewed and edited directly in the viewport.</dd><dt style="font-weight: bold; margin-bottom: 0.1em; ">Constrained Animation</dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">Objects can be animated along curves with controls for alignment, banking, velocity, smoothness, and looping, and along surfaces with controls for alignment. Weight path-controlled animation between multiple curves, and animate the weight. Objects can be constrained to animate with other objects in many ways — including look at, orientation in different coordinate spaces, and linking at different points in time. These constraints also support animated weighting between more than one target.</dd><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">All resulting constrained animation can be collapsed into standard keyframes for further editing.</dd><dt style="font-weight: bold; margin-bottom: 0.1em; ">Skinning</dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">Either the Skin or Physique modifier may be used to achieve precise control of skeletal deformation, so the character deforms smoothly as joints are moved, even in the most challenging areas, such as shoulders. Skin deformation can be controlled using direct vertex weights, volumes of vertices defined by envelopes, or both.</dd></dl><dl style="margin-top: 0.2em; margin-bottom: 0.5em; "><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">Capabilities such as weight tables, paintable weights, and saving and loading of weights offer easy editing and proximity-based transfer between models, providing the accuracy and flexibility needed for complicated characters.</dd><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">The rigid bind skinning option is useful for animating low-polygon models or as a diagnostic tool for regular skeleton animation.</dd><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">Additional modifiers, such as Skin Wrap and Skin Morph, can be used to drive meshes with other meshes and make targeted weighting adjustments in tricky areas.</dd></dl><dl style="margin-top: 0.2em; margin-bottom: 0.5em; "><dt style="font-weight: bold; margin-bottom: 0.1em; ">Skeletons and <a href="http://en.wikipedia.org/wiki/Inverse_Kinematics" title="Inverse Kinematics" class="mw-redirect" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Inverse Kinematics</a> (IK)</dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">Characters can be rigged with custom skeletons using 3ds Max bones, IK solvers, and rigging tools.</dd><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">All animation tools — including expressions, scripts, list controllers, and wiring — can be used along with a set of utilities specific to bones to build rigs of any structure and with custom controls, so animators see only the UI necessary to get their characters animated.</dd></dl><dl style="margin-top: 0.2em; margin-bottom: 0.5em; "><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">Four plug-in IK solvers ship with 3ds Max: history-independent solver, history-dependent solver, limb solver, and spline IK solver. These powerful solvers reduce the time it takes to create high-quality character animation. The history-independent solver delivers smooth blending between IK and FK animation and uses preferred angles to give animators more control over the positioning of affected bones.</dd></dl><dl style="margin-top: 0.2em; margin-bottom: 0.5em; "><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">The history-dependent solver can solve within joint limits and is used for machine-like animation. IK limb is a lightweight two-bone solver, optimized for real-time interactivity, ideal for working with a character arm or leg. Spline IK solver provides a flexible animation system with nodes that can be moved anywhere in 3D space. It allows for efficient animation of skeletal chains, such as a character’s spine or tail, and includes easy-to-use twist and roll controls.</dd><dt style="font-weight: bold; margin-bottom: 0.1em; ">Integrated Cloth Solver</dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">In addition to reactor’s cloth modifier, 3ds Max software has an integrated cloth-simulation engine that enables the user to turn almost any 3D object into clothing, or build garments from scratch. Collision solving is fast and accurate even in complex simulations.(image.3ds max.jpg)</dd></dl><dl style="margin-top: 0.2em; margin-bottom: 0.5em; "><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">Local simulation lets artists drape cloth in real time to set up an initial clothing state before setting animation keys.</dd><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; ">Cloth simulations can be used in conjunction with other 3ds Max dynamic forces, such as Space Warps. Multiple independent cloth systems can be animated with their own objects and forces. Cloth deformation data can be cached to the hard drive to allow for nondestructive iterations and to improve playback performance.</dd><dt style="font-weight: bold; margin-bottom: 0.1em; ">Integration with Autodesk Vault</dt><dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; "><a href="http://en.wikipedia.org/wiki/Autodesk_Vault" title="Autodesk Vault" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; ">Autodesk Vault</a> plug-in, which ships with 3ds Max, consolidates users’ 3ds Max assets in a single location, enabling them to automatically track files and manage work in progress. Users can easily and safely share, find, and reuse 3ds Max (and design) assets in a large-scale production or visualization environment.</dd></dl><div><br /></div><div>This tag from wikipedia.org</div></span>NibonX's bloghttp://www.blogger.com/profile/06289663153406649921noreply@blogger.com1