17 februari 2011 PJ : Nuraini Purwandari Training OGRE 17 februari 2011 PJ : Nuraini Purwandari Copyright@2011. This presentasion is dedicated to Laboratory of Information of Universitas Gunadarma
PEMBAHASAN Dalam Materi Training ini akan dibahas antara lain : Pengenalan & Instalasi Ogre Pewarnaan pada Ogre Shadowing / Bayangan pada Ogre Ligthing, Viewport dan Camera Rotasi pada Ogre Translasi pada Ogre Penskalaan pada Ogre Sky, Fog dan Terrain pada Ogre Particle dan Material pada Ogre Animasi dengan Ogre
Pengenalan & Instalasi Ogre (Object-oriented Graphics Rendering Engine) adalah open source rendering engine grafik yang ditulis dan dimaintain oleh tim inti kecil. http://www.ogre3d.org/about/team Telah berkembang luas menjadi komunitas. http://www.ogre3d.org/ Tutorial http://www.ogre3d.org/wiki/index.php/Ogre_Tutorials
Pengenalan & Instalasi Ogre Berikut ini adalah file-file yg dibutuhkan untuk membuat aplikasi 3D dengan library OGRE3D (Object Oriented Graphics Rendering Engine) antara lain : Eclipse-CPP ganymede sebagai IDE C++ MinGW toolbox sebagai GCC opensource compiler MYSYS sebagai GNU Terminal environment OGRE3D SDK sebagai rendering engine di OGRE SDK for Code::Blocks + MinGW C++ Toolbox , perlu diperhatikan bahwa kita menggunakan MinGW sebagai c++ compilernya Setelah proses penginstalan selesai maka langkah selanjutnya adalah mengetikkan source code pada Eclipse dan melakukan penyetingan pada Menu Setting di properties Setelah itu baru di Build All dan akan muncul outputnya.
Tampilan Awal window Ogre
Pewarnaan pada Ogre Model warna dimana warna yang dihasilkan merupakan kombinasi warna RED, GREEN dan BLUE. Dalam API yang terdapat dalam OGRE, model ini biasa dijadikan pada parameter pemanggilan fungsi ColourValue(float red,float green, float blue) dimana parameter fungsi ini memiliki range antara 0.0f sampai 1.0f. Contoh constanta warna built-in yang terdapat pada OGRE, diantaranya : static const Black = ColourValue(0.0,0.0,0.0) static const White=ColourValue(1.0,1.0,1.0) static const Red = ColourValue(1.0,0.0,0.0) static const Green = ColourValue(0.0,1.0,0.0) static const Blue = ColourValue(0.0,0.0,1.0)
Shadowing pada Ogre SceneManager memiliki fungsi setShadowTechnique untuk menset type bayangan yang kita inginkan Untuk mencoba shadow pada Ogre, tambahkan kode berikut pada TutorialApplication::createScene(); void createScene(void) { Entity *ent; Light *light; mSceneMgr->setAmbientLight( ColourValue( 0, 0, 0 ) ); mSceneMgr->setShadowTechnique( SHADOWTYPE_STENCIL_ADDITIVE ); ent = mSceneMgr->createEntity("Ninja", "ninja.mesh"); ent->setCastShadows(true); mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(ent); Plane plane(Vector3::UNIT_Y, 0); MeshManager::getSingleton().createPlane("ground", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, plane, 1500,1500,20,20,true,1,5,5,Vector3::UNIT_Z); ent = mSceneMgr->createEntity("GroundEntity", "ground"); ent->setMaterialName("Examples/Rockwall"); ent->setCastShadows(false);
Light, Viewport dan Camera pada Ogre Cahaya / Light Point (LT_POINT) cahaya point memancarkan cahaya dari titik ke semua arah Spotlight (LT_SPOTLIGHT) Cahaya akan keluar melalui suatu arah tertentu Bisa ditentukan besar sudut lingkaran dalam dan lingkaran luar terang pada center, dan lebih redup pada bagian luar Directional (LT_DIRECTIONAL) mensimulasikan cahaya jarak jauh yang menabrak apapun pada scene dari satu arah menset directional light
Membuat Viewport pada Ogre Tambahkan kode berikut pada TutorialApplication::createViewport() // Create one viewport, entire window virtual void createViewports(void) { Viewport* vp = mWindow->addViewport(mCamera); vp->setBackgroundColour(ColourValue(0,0,0)); mCamera->setAspectRatio(Real(vp->getActualWidth()) / Real(vp->getActualHeight())); } Perintah membuat viewport dengan menempelkan sebuah kamera pada viewport. Perintah kedua menset background dari viewport. Menset aspect ratio dari viewport.
Membuat Kamera pada Ogre Tambahkan kode berikut pada TutorialApplication::createCamera() protected: virtual void createCamera(void) { mCamera = mSceneMgr->createCamera("PlayerCam"); mCamera->setPosition(Vector3(0,10,500)); mCamera->lookAt(Vector3(0,0,0)); mCamera->setNearClipDistance(5); } Perintah pertama membuat kamera dengan nama “PlayerCam” Perintah kedua menset posisi dari kamera, sedang perintah berikutnya menset arah pandang kamera Perintah terakhir menentukan jarak terdekat yang terlihat kamera. Untuk menset jarak terjauh gunakan setFarClipDistance
Contoh Output menggunakan Light, Viewport, Camera dan Shadowing
Contoh Output menggunakan Light, Viewport, Camera dan Shadowing
Rotasi pada Ogre Di Ogre, kita dapat merotasikan objek dengan mempergunakan method yaw, pitch, dan roll baik dalam degree atau dalam radian.
Contoh Output Rotasi
Translasi pada Ogre Translasi merupakan suatu proses yang menyebabkan perpindahan objek dari satu titik ke titik lain. Method : node1->translate( Vector3( 10, 0, 10 ) );
Penskalaan pada Ogre Penskalaan dalam OGRE merupakan salah satu bagian dari hubungan spasial transformasi yang dinyatakan dengan koordinat dinyatakan dalam sumbu X, Y, dan Z.
Contoh Output Skala
Sky, Fog dan Terrain pada Ogre Sky / Langit Ogre menyediakan tiga jenis langit: SkyBoxes, SkyDomes, dan SkyPlanes SkyBox pada dasarnya adalah sebuah kubus raksasa yang mengelilingi semua objek dalam scene. SkyDomes sangat mirip dengan SkyBoxes. SkyPlanes sangat berbeda dari SkyBoxes dan SkyDomes. Fog / kabut Pada Ogre, setFog adalah jenis kabut (dalam kasus ini, linear). Parameter kedua untuk setFog adalah warna kabut yang kita gunakan (dalam hal ini yang sangat sangat ringan abu-abu atau "WhiteSmoke" untuk C #). Parameter ketiga tidak digunakan dalam linear kabut. Keempat dan kelima parameter menentukan rentang di mana mendapatkan kabut tebal.
Sky, Fog dan Terrain pada Ogre Dasar dari SceneManager mendefinisikan method setWorldGeometry, yang subclass-subclass-nya menggunakan hampir semua scene dalam pembuatannya. Dengan menngunakan class TerrainSceneManager, kita menginginkan nama file yang memuat konfigurasi dataran (terrain). Cari TutorialApplication:: createScene fungsi anggota dan tambahkan baris kode ini: mSceneMgr->setWorldGeometry("terrain.cfg"); Kompilasi dan jalankan program, maka akan muncul dataran dari file terrain. Ada banyak pilihan dalam file terrain.cfg, namun disini kita akan membahas yang paling sederhananya saja. Satu hal yang perlu diketahui tentang TerrainSceneManager adalah bahwa hal itu telah dirancang dengan fungsi paging.
Contoh Output SkyBox SkyDome
Contoh Output SkyPlane
Contoh Output Terrain Fog / kabut
Particle dan Material pada Ogre Particle merupakan pondasi dari sebagian besar spesial efek visual dalam aplikasi 3D. Ketika kita tidak membutuhkan sebuah particle system untuk menarik bagian efek visual tertentu, mereka membuat hidup lebih mudah ketika kita membutuhkan sebuah efek. Materials mendefinisikan bagaimana objek mencerminkan cahaya, tetapi tidak bagaimana cahaya yang dipantulkan berinteraksi dengan objek lainnya dalam scene. Dengan kata lain, objek yang kita buat tidak menjadi sumber cahaya tambahan dalam scene ketika objek tersebut merefleksikan dan/atau memancarkan cahaya.
Contoh Output Material Kita menggunakan material yang telah disediakan oleh Ogre di C:\OgreSDK\media\materials\texture untuk macam-macam gambar tekstur yang dapat digunakan dan C:\OgreSDK\media\materials\scripts\Example.material untuk script code bentukan material yang ingin dibentuk.
Contoh Output Particle Smoke Sun
Animasi pada Ogre Animasi, secara umum tidak berbeda dalam usia komputer daripada ketika beberapa seniman pertama dengan cepat membalik halaman yang berisi serangkaian gambar yang sedikit berbeda dan melihat bahwa hal tersebut memberikan ilusi gerak. Secara umum, Ogre mendukung dua cara yang berbeda untuk memanipulasi objek-objek di functional basis. Pertama adalah keyframed animation dan yang kedua adalah sebuah controller. Berikut macam-macam animasi yang terdapat pada Ogre : Animation State : interaksi utama antara aplikasi dan animasi di Ogre adalah melalui animation state. Dalam alat pemodelan kita, kita dapat menetapkan beberapa animasi unuk kerangka atau mesh sepanjang waktu. Skeletal Animation : skeletal animasi mungkin jenis animasi yang paling umum digunakan. Dengan skeletal animasi, simpul dalam mesh terikat dalam ”tulang” yang membuat sebuah kerangka.
Animasi pada Ogre Vertex Animation : mengacu pada fakta bahwa bukannya menghidupkan tulang dalam kerangka dan perhitungan posisi vertices sebagai fungsi dari tulang-tulang tersebut, yang sebenarnya posisi verteks animasi. Tipe dari animasi ini adalah morph animation dan pose animation. Blending Animation : kita dapat memadukan berbagai tipe animasi untuk membuat animasi kompeks dalam scene, tetapi kita tidak dapat memadukan moprh dan pose bersamaan, kita juga tidak bisa memadukan beberapa animasi morph. Controllers Saat animasi keyframed mengatur bagaimana kita menghidupkan mesh kita, sebuah controller akan menjadikan apa yang dapat bergerak, mengatakan, scenenode yang masih melekat di mesh kita, disekitar scene, dibawah kendali fungsi apa saja. Controllers mengacu pada kenyataan bahwa posisi, orientasi, skala dan sebagainya, dari satu atau lebih objek dalam scene kita yang dikendalikan oleh perhitungan nilai, melainkan melacak ke data keyframe.
Contoh output Animasi
Contoh Output Fresnel Reflection and Refractions pada Ogre
Contoh Output Objek Mesh Car
PENUTUP Slide ini dapat di download di blog : http://anoa5.wordpress.com Sekian presentasi dari saya. Terimakasih.