The Jakarta Struts Framework

Download Report

Transcript The Jakarta Struts Framework

MATA PRAKTIKUM
GRAFKOMP2
Pertemuan 3
PJ : Nuraini Purwandari
Copyright©2010. This presentasion is
dedicated to Laboratory of
Information of Universitas Gunadarma
DEFINISI SHADOWING /
BAYANGAN





Bayangan adalah proses penentuan warna dari semua
pixel yang menutupi permukaan menggunakan model
illuminasi. Metodenya melliputi :
Penentuan permukaan tampak pada setiap pixel
Perhitungan normal pada permukaan
Mengevaluasi intensitas cahaya dan warna menggunakan
model illuminasi.
Metode pembuatan bayangan cukup mahal, untuk
membuatnya lebih efisien dilakukan melalui kustomisasi
untuk merepresentasikan permukaan yang spesifik. Jaring
poligon secara umum sering digunakan untuk
merepresentasikan permukaan yang kompleks. Informasi
geometri yang tersedia hanyalah vertice dari poligon.
Interpolasi dari model bayangan dapat digunakan untuk
meningkatkan substansi secara lebih efisien.
Camera and View Port


Kamera
– objek special yang berkerja seperti SceneNode
– dipergunakan untuk melihat scene
– memiliki fungsi setPosition, yaw, roll, dan pitch,
dan bisa kita attach pada SceneNode
Viewport
– menentukan scene mana pada kamera yang
akan kita render
Light and Shadowing

Dalam membangun OGRE, diperlukan
beberapa fitur yang terdapat pada OGRE
itu sendiri antara lain SceneManager,
SceneNode
dan
Entitas.
Langkah
selanjutnya adalah meletakkan Objek lalu
mulai mengubah coding untuk melakukan
bayangan dengan menggunakan Scene
Manager yang berfungsi setShadow
Technique untuk menset type bayangan
yang kita inginkan.
Membuat Kamera

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.
Membuat Viewport

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.
Bayangan (shadow)


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);
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
Cahaya (Light)

Tambahkan kode sebagai berikut :
light = mSceneMgr->createLight("Light1");
light->setType(Light::LT_POINT);
light->setPosition(Vector3(0, 150, 250));
light->setDiffuseColour(1.0, 0.0, 0.0);
light->setSpecularColour(1.0, 0.0, 0.0);
light = mSceneMgr->createLight("Light3");
light->setType(Light::LT_DIRECTIONAL);
light->setDiffuseColour(ColourValue(.25, .25, 0));
light->setSpecularColour(ColourValue(.25, .25, 0));

Output pada Ogre
Laporan Akhir (LA)
Jelaskan program membuat camera,
viewport dan shadowing pada Ogre ! Lalu
print screen outputnya !