RSS

CMOS vs CCD


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 pasangan komplementer dan simetris dari MOSFET semikonduktor tipe-p dan semikonduktor tipe-n untuk fungsi logika.

CCD ( Charge Coupled Device ) Suatu alat pencitraan untuk menkonversikan cahaya menjadi arus elektrik yang proporsional (analog).

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.

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.

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.
  • Sensor CCD, seperti yang disebutkan di atas, kualitasnya tinggi, gambarnya low-noise. Sensor CMOS lebih besar kemungkinan untuk noise.
  • Sensitivitas CMOS lebih rendah karena setiap piksel terdapat beberapa transistor yang saling berdekatan. Banyak foton mengenai transistor dibandingkan diodafoto.
  • Sensor CMOS menggunakan sumber daya listrik yang lebih kecil.
  • Sensor CCD menggunakan listrik yang lebih besar, kurang lebih 100 kali lebih besar dibandingkan sensor CMOS.
  • Chip CMOS dapat dipabrikasi dengan cara produksi mikroprosesor yang umum sehingga lebih murah dibandingkan sensor CCD.
  • Sensor CCD telah diproduksi masal dalam jangka waktu yang lama sehingga lebih matang. Kualitasnya lebih tinggi dan lebih banyak pikselnya.
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.

Perkembangan CMOS terbaru adalah 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.

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”.

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.

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.

Perkembangan CCD terbaru adalah CCD lebih banyak di gunakan pada camera CCTV dan kamera pengintai karena lebih responsive dalam gerakan-gerakan manusia.

Pengolahan Citra dengan menggunakan Histogram


Nama :


Angger Dwi Atmoko (50407116)
Niko Azhimi H. (50407618)

Histogram dalam proses pengolahan citra

Histogram citra adalah grafik yang
menggambarkan penyebaran nilai-
nilai intensitas pixel dari suatu citra
atau bagian tertentu di dalam citra.

Dari sebuah histogram dapat diketahui :

1. Frekuensi kemunculan relative dari intensitas
pada citra.

2. Kecerahan (brightness) dan kontas (contrast)
dari sebuah gambar.

Algoritma

Misalkan citra digital memiliki L derajat keabuan, yaitu dari nilai 0 sampai L – 1 (misalnya pada
citra dengan kuantisasi derajat keabuan 8-bit, nilai derajat keabuan dari 0 sampai 255). Secara
matematis histogram citra dihitung dengan rumus sebagai berikut :



dimana :

ni = jumlah pixel yang memiliki derajat keabuan i
n = jumlah seluruh pixel di dalam citra

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.


Tampilan Aplikasi












tampilan awal aplikasi













membuka file gambar berekstensi .bmp (bitmap)













file gambar telah terbuka, lakukan proses pembacaan gambar dengan histogram



Bisnis Home Design


Home Design adalah suatu pemodelan dimana menampilkan design-design ruangan yang sangat menarik yang nantinya akan digunakan untuk memperindah dan mempercantik .

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.

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.

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.

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.

Perbandingan Game Engine


Torque Game Engine
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.

  • 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.

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.

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.

fitur Torque Game Engine yang paling terkenal adalah kemampuannya untuk berinteraksi dengan program lain melalui Internet.

Beberapa versi torque game engine :
- Torque Game Engine Advanced
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 .

-Torque Game Builder
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.

-Torque Lighting Kit
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.

-Torque X
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.

Unreal Game Engine
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.


  • Referensi :
http://en.wikipedia.org/wiki/Torque_Game_Engine
http://yaminobu.wordpress.com/2009/09/20/top-10-best-game-engine-2009/

Tutorial Manipulasi Sistem Partikel di Delta 3D


Tutorial Manipulasi Sistem Partikel di Delta 3D

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 akan membantu anda melakukan itu, seperti mengubah warna, kecepatannya, masa hidup, massa, dan masih banyak lagi.

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.












Bagaimana mendapatkan data partikel?


Catatan: Kode berikut ini sudah ada di dtCore:: 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.

Untuk memperoleh data partikel mengharuskan kita untuk bekerja secara langsung dengan kode OpenSceneGraph (OSG). Mungkin lebih mudah mengatakan daripada dilakukan, jadi mari kita lakukan!

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.

From dtCore::ParticleSystem (h and cpp)

 
/**
* geode yang memiliki sistem partikel dapat ditarik,
* dan diberi nama layer.
*/
RefPtr mGeode;
 
/**
* Sistem partikel aktif.
*/
RefPtr mParticleSystem;
 
/**
* Transformasi yang mengontrol posisi dari emitter.
*/
RefPtr mEmitterTransform;
 
/**
* Emitter aktif.
*/
RefPtr mModularEmitter;
 
/**
* Program aktif.
* Dapat membuat modular dan cairan
*/
RefPtr mProgram;
 
/**
* nama layer
*/
std::string mstrLayerName;
 
 
Semua variabel di atas digunakan di fungsi SetupParticleLayers. 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. 
 
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.
 

dtCore::ParticleSystem (h and cpp)

 
/**
 *  Memanggil fungsi LoadFile(), sebaiknya tidak memanggilnya 
 *  dari user
 */
void ParticleSystem::SetupParticleLayers()
{
  osg::Group* newParticleSystemGroup = (osg::Group*)mLoadedFile.get();
 
   osg::Node*  searchingNode = NULL;
   
   unsigned int i = 0;
 
Catatan: 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. Hal ini dilakukan, sejak kita mendapatkan perintah children yang lain, tapi perlu mengetahui variabel layer sistem partikel yang lain.

   for(i=0;igetNumChildren();i++)
   {
      searchingNode = newParticleSystemGroup->getChild(i);
      ParticleLayer layer;
 
      if(dynamic_cast(searchingNode))
      {
    //Ini terjadi ketika mengimpor beberapa file osg dalam satu sistem.
// Satu untuk setiap file dapat diambil, untuk memberitahu sistem //segala sesuatu yang lain ada di sini.
      }
 
      // Jika ini adalah sistem partikel yang geode      if(dynamic_cast(searchingNode))
      {
         // sebuah geometrinya node.
         layer.mGeode = (osg::Geode*)searchingNode;
 
         for(unsigned int j=0;jgetNumDrawables();j++)
         {
             osg::Drawable* drawable    = layer.mGeode->getDrawable(j);
 
   // Tampak seperti kami menemukan sistem partikel, lanjutkan!             if(dynamic_cast(drawable))
             {
                layer.mParticleSystem = (osgParticle::ParticleSystem*)drawable;
                layer.mstrLayerName     = layer.mGeode->getName();

               // We're done setting values up, push it onto the list
               mlLayers.push_back(layer);
             }
         }
      } // akhir if                        
   }// akhir dari perulangan for
      
   for(i=0;igetNumChildren();i++)
   {
      searchingNode = newParticleSystemGroup->getChild(i);
 
      
      if(dynamic_cast(searchingNode))
      {
       osg::MatrixTransform* newEmitterTransform = 
            (osg::MatrixTransform*)searchingNode;
 
         for(unsigned int j=0;jgetNumChildren();j++)
         {
            osg::Node* childNode = newEmitterTransform->getChild(j);
 
             if(dynamic_cast(childNode))
             {
    osgParticle::ModularEmitter* newModularEmitter = 
                   (osgParticle::ModularEmitter*)childNode;
               
               for(std::list::iterator layerIter = mlLayers.begin();
               layerIter != mlLayers.end(); layerIter++)
               {
                  if(layerIter->mParticleSystem == newModularEmitter->getParticleSystem())
                  {
                     // mengatur data dalam layer
                     layerIter->mEmitterTransform    = newEmitterTransform;
                     layerIter->mModularEmitter      = newModularEmitter;
                  }
               }
            }
         } // akhir dari perulangan for
      } // akhir dari perintah if
 
      else if(dynamic_cast(searchingNode))
      {
         osgParticle::ModularProgram* newModularProgram = (osgParticle::ModularProgram*)searchingNode;
         for(std::list::iterator layerIter = mlLayers.begin();
         layerIter != mlLayers.end(); layerIter++)
         {
            
            if(layerIter->mParticleSystem == newModularProgram->getParticleSystem())
            {
               // mengatur data di layer
               layerIter->SetModoluarProgram(true);
               layerIter->mProgram  = newModularProgram;
               break;
            }
         } // akhir dari perulangan loop
      } // akhir dari perintah if
      // memeriksa dan melihat apakah ini adalah sebuah program fluida      else if(dynamic_cast(searchingNode))
      {
         osgParticle::FluidProgram* newFluidProgram = (osgParticle::FluidProgram*)searchingNode;
         for(std::list::iterator layerIter = mlLayers.begin(); 
               layerIter != mlLayers.end(); layerIter++)
         {
            if(layerIter->mParticleSystem == newFluidProgram->getParticleSystem())
            {
               // mengatur data di layer
               layerIter->SetFluidProgram(true);
               layerIter->mProgram  = newFluidProgram;
               break;
            }
         } // akhir dari perulangan for 
      } // akhir dari perintah if
   } // akhir dari perulangan for 
}// akhir dari pemanggilan fungsi

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.

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.


Ikhtisar Hierarchal:

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

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.

OpenScene Graph Documentation For the Overview

Sistem Partikel OSG:

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.

OpenScene Graph Documentation For the particle system

Partikel Default:

Semua Partikel terbuat dari partikel Template.

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.

Untuk mendapatkan akses ke partikel default kita harus melalui Sistem Partikel dan mendapatkannya di sana. 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.

Berikut ini daftar beberapa anggota yang dapat mengubah partikel Default:

void setLifeTime (double t) mengatur waktu hidup partikel.

void setSizeRange (const rangef &r) mengatur angka minimum dan maksimum ukuran polygon.

void setAlphaRange (const rangef &r) mengatur angka minimum dan maksimum alpha.
void setColorRange (const rangev4 &r) mengatur nilai minimum dan maksimum warna.
void setSizeInterpolator (Interpolator *ri) mengatur interpolator untuk komputasi nilai-nilai ukuran.
void setAlphaInterpolator (Interpolator *ai) mengatur interpolator untuk komputasi nilai alpha.
void setColorInterpolator (Interpolator *ci) mengatur interpolator untuk komputasi nilai-nilai warna
void setRadius (float r)
Atur radius fisik partike

l.

void setMass (float m) Mengatur massa partikel.
void setPosition (const osg::Vec3 &p) Mengatur posisi vektor.
void setVelocity (const osg::Vec3 &v) Mengatur vektor kecepatan.

Untuk daftar lengkap sebuah partikel, ikuti link ini:

OpenScene Graph Documentation for a particle class

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.

Modular Emitter:

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.

Emitor ini memiliki Shooter dan Placer objek di dal

amnya. Placers adalah di mana partikel-partikel tersebut dilakukan dengan menembakan kontrol di mana mereka pergi setelah mereka telah "Ditempatkan".

OpenScene Graph Documentation for a modular emitter

Emitter Transform:

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.

OpenScene Graph Documentation for a transform

Mengatur layer:

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 ().

Berinteraksi dengan simulasi tangki:

Melalui program simulasi tangki, kita akan menguba

h jejak asap berdebu yang melekat pada tangki, untuk memberikan kenyataan lebih didasarkan pada kecepatan tangki. Singkatnya, kita akan membuat Seumur Hidup dari partikel pendek atau didasarkan pada kecepatan tangki.

Pada fungsi MoveTheTank tangki, saya menambahkan sebagai berikut:

if(mDust.valid() && mIsEngineRunning && mVelocity != 0)
{
   // Mendapatkan layer yang diinginkan
   dtCore::ParticleLayer& pLayerToSet = *mDust->GetSingleLayer("Layer 0");
      
    osgParticle::Particle& defaultParticle = pLayerToSet.GetParticleSystem().getDefaultParticleTemplate();
 
   // melakukan perubahan funky
   float lifetime = max(2.0f, abs(mVelocity) * .4f);
   defaultParticle.setLifeTime(lifetime);
   
pLayerToSet.GetModularEmitter().setNumParticlesToCreateMovementCompenstationRatio(abs(mVelocity) * 0.10f);    
}

Sekarang ketika Anda memindahkan tangki yang memiliki partikel, maka partikel tersebut akan berubah sesuai dengan kecepatan kendaraan Anda. Keren!

















Referensi:


http://www.delta3d.org/article.php?story=20060622140124995&topic=tutorials

Copyright 2009 NibonX's blog. All rights reserved.
Free WPThemes presented by Leather luggage, Las Vegas Travel coded by EZwpthemes.
Bloggerized by Miss Dothy