Shadowing pada Ogre

Download Report

Transcript Shadowing pada Ogre

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


OGRE
(Object-oriented Graphics Rendering Engine)
adalah open source rendering engine grafik
yang ditulis dan dimaintain oleh tim inti kecil.


Telah berkembang luas menjadi komunitas.


http://www.ogre3d.org/about/team
http://www.ogre3d.org/
Tutorial

http://www.ogre3d.org/wiki/index.php/Ogre_Tutori
als
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");
mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(ent);
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
sebuah kamera pada viewport.
dengan
menempelkan
• 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
Terrain
 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.mate
rial 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.