Rabu, 11 Mei 2011

LP pertemuan 8 AP2A kelas 1IA12

sorry ya lama bgt (>.<)
LP:
1.Jelaskan apa yang kamu ketahui tentang menu!
2.Sebutkan dan jelaskan elemen-elemen yang dimiliki oleh menu!
Sebarin ke tmn2nya yaaaa :)
View full article and comment >>>

Peran karakter pada story game "Scooby Doo and the Creepy Castle Game"



Pada postingan sebelumnya,saya sudah menjelaskan bagaimana story dan cara bermain game ini.
Nah postingan kali ini,saya akan menjelaskan peran scooby doo dalam menjalankan stage-stage dalam game ini.

Peran scooby doo dalam setiap stage berbeda-beda,walaupun cara bermainnya masih sama.
Pada stage pertama scooby doo harus mencari dan membebaskan Daphne dari jebakan hantu didalam kastil (Daphne memiliki beberapa karakteristik yakni berambut panjang dan kemerahan, dan memakai ikat rambut hijau, serta memakai pakaian berwana serba ungu. Juga memakai syal berwarna kehijauan, dan kaos kaki panjang berwarna merah muda dan sepatu berwarna ungu.)


Pada stage kedua,misi scooby doo yaitu mencari dan membebaskan Velma (Karakter ini juga memiliki rambut berwarna merah terang, memakai pakaian berwarna oranye, rok berwarna merah dan sepatu serta kaos kaki dengan warna merah dan oranye.Velma juga menggunakan kacamata).Pada stage kedua,misi yang harus dicapai scooby doo lebih sulit karena jebakannya lebih banyak dan scooby harus berhati-hati.


Pada stage ketiga,misi scooby doo yaitu mencari dan membebaskan Fred (Karakter ini memakai dasi berwarna oranye, pakaian kerja berwarna putih dan biru, celana panjang berwrna biru tua dan sepatu coklat).Pada stage ketiga ini,selain lebih sulit lagi jebakan-jebakan y ang menghadang scooby,perjalanan pencarian ini lebih lama,jadi scooby harus lebih waspada pada jebakan-jebakan hantu yang membuat scooby jadi takut.


Jika scooby doo mampu menyelamatkan semua teman-temannya,maka scooby sudah berhasil menyelamatkan hari itu dan memecahkan misteri yang terdapat pada kastil yang mengerikan



View full article and comment >>>

Sabtu, 07 Mei 2011

Story games "Scooby Doo and the Creepy Castle Game"




Pada postingan kali ini,saya akan menjelaskan cara permainan dan story pada games ini.
Awal cerita dalam game ini,ada hantu yang menjebak gang scooby doo (Freddie Jones,Velma Dinkley,Daphne Blake)didalam kastil yang mengerikan.
Lalu Norville "Shaggy" Rogers Matthville alias Shaggy menyuruh Scooby doo untuk melihat ke kastil,sementara Shaggy tetap diluar untuk menjaga mobil van.Lalu scooby masuk dan memulai petualangannya \(^_^)/



Selanjutnya saya akan menjelaskan aturan permainan dalam games ini.
1.Kita punya 3 kesempatan (3 kali mencoba) untuk menemukan geng scooby
2.Kamu akan kehilangan kesempatan itu jika faktor ketakutan scooby menjadi tinggi.
Lihatlah snack scooby untuk membantu menjaga faktornya tetap rendah
3.Ketika scooby sedang berjalan,klik pada object untuk menempatkannya di inventori kita.
4.Klik pada pintu untuk membuka atau menutupnya
5.Gunakan object yang kamu temukan untuk terjaga dari hantu
6.Contohnya,kamu dapat menyegel pintu yang tertutup dengan menarik papan ke pintu

Nah,dalam perjalanan didalam kastil,scooby akan diganggu oleh hantu terus menerus.Kita harus menemukan cara-cara agar terjaga dari hantu dan scooby tidak ketakutan.Nah jika misi pertama selesai dan menemukan salah satu teman dalam gang,maka akan dilanjutkan ke misi selanjutnya dengan tempat yang berbeda untuk menemukan teman yang lain.



View full article and comment >>>

Karakter SCOOBY DOO pada games



Oke,pada postingan kali ini,saya akan membahas karakter dari sebuah game.
Game yang saya bicarakan kali ini adalah "Scooby Doo and the Creepy Castle Game".
Tentu saja,tokoh utama dalam game ini adalah scooby doo.
Game ini merupakan game online yang sangat mudah dimainkan,dapat kamu klik dan mainkan game ini disini klik untuk games scooby doo


Oke,saya mulai pembahasan karakter scooby ini..
Seperti yang kita tahu,sama halnya dengan yang ada dilayar kaca,scooby doo ini adalah seekor anjing yang penakut dan makannya sangat banyak.
Karakter ini merupakan peliharaan Norville "Shaggy" Rogers.
Karakter ini membantu dalam memecahkan masalah. Mampu berbicara, namun dengan ucapan yang sulit dimengerti. Hal itu disebabkan karena dalam bahasa apapun, Ucapan diawali dengan huruf "R", seperti "Rhaggie" untuk Shaggy, "Rrantu" untuk Hantu, dan lain-lain. Scooby-Doo Sangat menyukai snack Scooby. Hal yang membuat takut adalah hantu. Namun, dia adalah senjata yang paling ampuh untuk menangkap sang hantu, biasanya jebakan yang disediakan akan gagal, namun pasti ujungnya kembali tertangkap.

sumber:
wikipedia
View full article and comment >>>

Senin, 11 April 2011

Membuat animasi dari Ogre

Oke,postingan kali ini,saya akan memberikan listing untuk membuat project dalam ogre.
Mungkin agak pusing,karena saya pun sebenarnya masih "newbie" dalam ogre.
Untuk object,saya menggunakan object fish.mesh yang sudah disediakan (jadi saya tidak mengubah object lg).
Tapi,jika ingin membuat object sendiri dari blender,membuat skeleton,lalu mengconvertnya menjadi mesh,kamu bisa lihat dari sumber yang ini~http://crystalforest.wordpress.com karena dari sumber tersebutlah saya belajar :D.
oke saya mulai ya..

Setiap kita akan membuat project baru,dalam eclipse,kita harus selalu menkofigurasi(dapat dilihat pada post blog yang lalu)~lihat disini atau lihat saja disini
Nah,setelah kita mengkonfigurasinya,pastinya pada lembar kerja eclipse,kita harus memasukkan listing program (dengan bahasa C++).

#include "ExampleApplication.h"
#include < ogretexture.h >
#include < OgreHardwarePixelBuffer.h >
#include < OgreTextureManager.h >
#include < OgreLogManager.h >
#include < sstream >
TexturePtr ptex;
HardwarePixelBufferSharedPtr buffer;
Overlay* overlay;
static const int reactorExtent = 130; // must be 2^N + 2
uint32 clut[1024];
AnimationState *swim;
// Nano fixed point library
#define FROMFLOAT(X) ((int)((X)*((float)(1<<16))))
#define TOFLOAT(X) ((float)((X)/((float)(1<<16))))
#define MULT(X,Y) (((X)*(Y))>>16)
ColourValue HSVtoRGB( float h, float s, float v )
{
int i;
ColourValue rv(0.0f, 0.0f, 0.0f, 1.0f);
float f, p, q, t;
h = fmodf(h, 360.0f);
h /= 60.0f; // sector 0 to 5
i = (int)floor( h );
f = h - i; // factorial part of h
p = v * ( 1.0f - s );
q = v * ( 1.0f - s * f );
t = v * ( 1.0f - s * ( 1.0f - f ) );

switch( i ) {
case 0: rv.r = v; rv.g = t; rv.b = p; break;
case 1: rv.r = q; rv.g = v; rv.b = p; break;
case 2: rv.r = p; rv.g = v; rv.b = t; break;
case 3: rv.r = p; rv.g = q; rv.b = v; break;
case 4: rv.r = t; rv.g = p; rv.b = v; break;
default: rv.r = v; rv.g = p; rv.b = q; break;
}
return rv;
}
class DynTexFrameListener : public ExampleFrameListener
{
private:
static float fDefDim;
static float fDefVel;
float tim;

int *chemical[2];
int *delta[2];
size_t mSize;
int dt,hdiv0,hdiv1; // diffusion parameters
int F,k; // reaction parameters

bool rpressed;
public:
DynTexFrameListener(RenderWindow* win, Camera* cam) : ExampleFrameListener( win, cam )
{
tim = 0;
rpressed = false;
// Create colour lookup
for(unsigned int col=0; col<1024; col++)
{
ColourValue c;
c = HSVtoRGB((1.0f-col/1024.0f)*90.0f+225.0f, 0.9f, 0.75f+0.25f*(1.0f-col/1024.0f));
c.a = 1.0f - col/1024.0f;
PixelUtil::packColour(c, PF_A8R8G8B8, &clut[col]);
}
// Setup
LogManager::getSingleton().logMessage("Creating chemical containment");
mSize = reactorExtent*reactorExtent;
chemical[0] = new int [mSize];
chemical[1] = new int [mSize];
delta[0] = new int [mSize];
delta[1] = new int [mSize];

dt = FROMFLOAT(2.0f);
hdiv0 = FROMFLOAT(2.0E-5f/(2.0f*0.01f*0.01f)); // a / (2.0f*h*h); -- really diffusion rate
hdiv1 = FROMFLOAT(1.0E-5f/(2.0f*0.01f*0.01f)); // a / (2.0f*h*h); -- really diffusion rate
//k = FROMFLOAT(0.056f);
//F = FROMFLOAT(0.020f);
k = FROMFLOAT(0.0619f);
F = FROMFLOAT(0.0316f);

resetReactor();
fireUpReactor();
updateInfoParamF();
updateInfoParamK();
updateInfoParamA0();
updateInfoParamA1();

LogManager::getSingleton().logMessage("Cthulhu dawn");
}
void resetReactor()
{
LogManager::getSingleton().logMessage("Facilitating neutral start up conditions");
for(unsigned int x=0; x<<16)-U);
delta[1][idx] += UVV - MULT(F+k,V);
idx++;
}
idx += 2;
}
// Update concentrations
for(x=0; xlock(HardwareBuffer::HBL_DISCARD);
const PixelBox &pb = buffer->getCurrentLock();
unsigned int idx = reactorExtent+1;
for(unsigned int y=0; y<(reactorExtent-2); y++) {
uint32 *data = static_cast(pb.data) + y*pb.rowPitch;
int *chem = &chemical[0][idx];
for(unsigned int x=0; x<(reactorExtent-2); x++) {
data[x] = clut[(chem[x]>>6)&1023];
}
idx += reactorExtent;
}
buffer->unlock();
}
// GUI updaters
void updateInfoParamK()
{
OverlayManager::getSingleton().getOverlayElement("Example/DynTex/Param_K") \
->setCaption("[1/2]k: "+StringConverter::toString(TOFLOAT(k)));
}
void updateInfoParamF()
{
OverlayManager::getSingleton().getOverlayElement("Example/DynTex/Param_F") \
->setCaption("[3/4]F: "+StringConverter::toString(TOFLOAT(F)));
}
void updateInfoParamA0()
{
// Diffusion rate for chemical 1
OverlayManager::getSingleton().getOverlayElement("Example/DynTex/Param_A0") \
->setCaption("[5/6]Diffusion 1: "+StringConverter::toString(TOFLOAT(hdiv0)));
}
void updateInfoParamA1()
{
// Diffusion rate for chemical 2
OverlayManager::getSingleton().getOverlayElement("Example/DynTex/Param_A1") \
->setCaption("[7/8]Diffusion 2: "+StringConverter::toString(TOFLOAT(hdiv1)));
}

bool frameStarted( const FrameEvent& evt )
{
using namespace OIS;
if( ExampleFrameListener::frameStarted( evt ) == false )
return false;

if( mKeyboard->isKeyDown( KC_1 ) ) {
k -= FROMFLOAT(0.005f*evt.timeSinceLastFrame);
updateInfoParamK();
}
if( mKeyboard->isKeyDown( KC_2 ) ) {
k += FROMFLOAT(0.005f*evt.timeSinceLastFrame);
updateInfoParamK();
}
if( mKeyboard->isKeyDown( KC_3 ) ) {
F -= FROMFLOAT(0.005f*evt.timeSinceLastFrame);
updateInfoParamF();
}
if( mKeyboard->isKeyDown( KC_4 ) ) {
F += FROMFLOAT(0.005f*evt.timeSinceLastFrame);
updateInfoParamF();
}
if( mKeyboard->isKeyDown( KC_5 ) ) {
hdiv0 -= FROMFLOAT(0.005f*evt.timeSinceLastFrame);
updateInfoParamA0();
}
if( mKeyboard->isKeyDown( KC_6 ) ) {
hdiv0 += FROMFLOAT(0.005f*evt.timeSinceLastFrame);
updateInfoParamA0();
}
if( mKeyboard->isKeyDown( KC_7 ) ) {
hdiv1 -= FROMFLOAT(0.005f*evt.timeSinceLastFrame);
updateInfoParamA1();
}
if( mKeyboard->isKeyDown( KC_8 ) ) {
hdiv1 += FROMFLOAT(0.005f*evt.timeSinceLastFrame);
updateInfoParamA1();
}

if( mKeyboard->isKeyDown( KC_0 ) && !rpressed ) {
// Reset 0
resetReactor();
fireUpReactor();
rpressed = true;
} else {
rpressed = false;
}
for(int x=0; x<10; x++)
runStep();
buildTexture();
swim->addTime(evt.timeSinceLastFrame);

return true;
}

virtual ~DynTexFrameListener(void)
{
delete [] chemical[0];
delete [] chemical[1];
delete [] delta[0];
delete [] delta[1];
}
};

float DynTexFrameListener::fDefDim = 25.0f;
float DynTexFrameListener::fDefVel = 50.0f;

class DynTexApplication : public ExampleApplication
{
public:
DynTexApplication() {}

protected:


virtual void createFrameListener(void)
{
mFrameListener= new DynTexFrameListener(mWindow, mCamera);
mFrameListener->showDebugOverlay(true);
mRoot->addFrameListener(mFrameListener);
}


virtual void createViewports(void)
{
// Create one viewport, entire window
Viewport* vp = mWindow->addViewport(mCamera);
vp->setBackgroundColour(ColourValue(0,0,0));

// Alter the camera aspect ratio to match the viewport
mCamera->setAspectRatio(
Real(vp->getActualWidth()) / Real(vp->getActualHeight()));
}

// Just override the mandatory create scene method
void createScene(void)
{
// Create dynamic texture
ptex = TextureManager::getSingleton().createManual(
"DynaTex","General", TEX_TYPE_2D, reactorExtent-2, reactorExtent-2, 0, PF_A8R8G8B8,
TU_DYNAMIC_WRITE_ONLY);
buffer = ptex->getBuffer(0, 0);

// Set ambient light
mSceneMgr->setAmbientLight(ColourValue(0.6, 0.6, 0.6));
mSceneMgr->setSkyBox(true, "Examples/SpaceSkyBox", 50 );

//mRoot->getRenderSystem()->clearFrameBuffer(FBT_COLOUR, ColourValue(255,255,255,0));

// Create a light
Light* l = mSceneMgr->createLight("MainLight");
l->setDiffuseColour(0.75, 0.75, 0.80);
l->setSpecularColour(0.9, 0.9, 1);
l->setPosition(-100,80,50);
mSceneMgr->getRootSceneNode()->attachObject(l);


Entity *planeEnt = mSceneMgr->createEntity("TexPlane1", Ogre::SceneManager::PT_PLANE);
// Give the plane a texture
planeEnt->setMaterialName("Examples/DynaTest");

SceneNode* node = mSceneMgr->getRootSceneNode()->createChildSceneNode(Vector3(-100,-40,-100));
node->attachObject(planeEnt);
node->setScale(3.0f, 3.0f, 3.0f);

// Create objects
SceneNode *blaNode = mSceneMgr->getRootSceneNode()->createChildSceneNode(Vector3(-200,0,50));
Entity *ent2 = mSceneMgr->createEntity( "knot", "knot.mesh" );
ent2->setMaterialName("Examples/DynaTest4");
blaNode->attachObject( ent2 );

blaNode = mSceneMgr->getRootSceneNode()->createChildSceneNode(Vector3(200,-90,50));
ent2 = mSceneMgr->createEntity( "knot2", "knot.mesh" );
ent2->setMaterialName("Examples/DynaTest2");
blaNode->attachObject( ent2 );
blaNode = mSceneMgr->getRootSceneNode()->createChildSceneNode(Vector3(-110,200,50));

// Cloaked fish
ent2 = mSceneMgr->createEntity( "knot3", "fish.mesh" );
ent2->setMaterialName("Examples/DynaTest3");
swim = ent2->getAnimationState("swim");
swim->setEnabled(true);
blaNode->attachObject( ent2 );
blaNode->setScale(50.0f, 50.0f, 50.0f);


//TextureManager::getSingleton().getByName("RustySteel.jpg");


std::stringstream d;
d << "HardwarePixelBuffer " << buffer->getWidth() << " " << buffer->getHeight() << " " << buffer->getDepth();
LogManager::getSingleton().logMessage(d.str());

buffer->lock(HardwareBuffer::HBL_NORMAL);
const PixelBox &pb = buffer->getCurrentLock();
d.str("");
d << "PixelBox " << pb.getWidth() << " " << pb.getHeight() << " " << pb.getDepth() << " " << pb.rowPitch << " " << pb.slicePitch << " " << pb.data << " " << PixelUtil::getFormatName(pb.format);
LogManager::getSingleton().logMessage(d.str());
buffer->unlock();

// show GUI
overlay = OverlayManager::getSingleton().getByName("Example/DynTexOverlay");
overlay->show();
}

void destroyScene(void)
{
// Free resource pointers before shutdown
ptex.setNull();
buffer.setNull();
}

};

#ifdef __cplusplus
extern "C" {
#endif

#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#define WIN32_LEAN_AND_MEAN
#include "windows.h"

INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
#else
int main(int argc, char *argv[])
#endif
{
// Create application object
DynTexApplication app;

try {
app.go();
} catch( Ogre::Exception& e ) {
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
MessageBox( NULL, e.getFullDescription().c_str(), "An exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
#else
std::cerr << "An exception has occured: " <<
e.getFullDescription().c_str() << std::endl;
#endif
}

return 0;
}

#ifdef __cplusplus
}
#endif


Jadi,pada listing diatas,akan menghasilkan output berbentuk texture.
Nah,jika kita memencet angka 7 atau 8 dan 4 atau 5 akan memberikan efek perubahan texture.
Hasilnya menjadi seperti ini:









View full article and comment >>>

LP Pertemuan 7 kelas 1IA12

LP pertemuan 7:
1. Jelaskan apa yang kamu ketahui tentang form!
2. Sebutkan dan jelaskan properties dan event yang dimiliki oleh form (min. 5)!
3. Jelaskan apa perbedaan antara MDI dan SDI form





View full article and comment >>>

Sabtu, 02 April 2011

OGRE game engine



Oke..sekarang saya akan membahas ttg ogre game engine.
Ogre,hmm ogre disini bukan monster rawa hijau yang ada di film SHREK.hehee
Jadi,apa sih ogre itu??
OGRE (Object-Oriented Graphics Rendering Engine) adalah engine yang object oriented & flexible 3D rendering pada game engine yang ditulis dalam bahasa C++ serta didesain untuk mampu men-developer dengan intuitif & mudah kepada aplikasi produksi dengan menggunakan utility hardware-accelerated 3D graphic. Gambaran abstraknya OGRE menggunakan sistem library seperti Direct3D & OpenGL, serta menyediakan sebuah dasar interface di dunia objek dan class object yang lebih tinggi.




Informasi Umum

OGRE hanyalah rendering engine. Seperti pada engine lainnya, hanya saja OGRE pada umumnya hanya sebagai graphic rendering. Dengan kata lain fitur OGRE hanya khusus menangani vector & matrix classes, memory handling, dan lain-lain. Ini bukanlah salah satu dari semua solusi dalam istilah game development / simulasi, OGRE tidak menyediakan audio / physics support.

Pada umumnya ini bisa dikatakan sebagai kelemahan utama dari OGRE, tetapi itu setara setelah melihat kemampuan grafis ada engine ini. Kemempuan utama OGRE adalah graphics engine yang bisa memberikan para developer sebuah kebebasan untuk menggunakan physics apapun, input, audio, & library lainnya. OGRE memberikan para tim development untuk fokus pada graphics daripada beberapa sistem-sistem yang ada dalam game development. OGRE dapat mensuport OIS, SDL, dan CEGUI libraries.

Sekarang ini OGRE adalah publish dibawah dua lisensi, yaitu LGPL & OUL. Maka sekarang ini para publish tersebut membuka OGRE sebagai free / open-source software.

Fitur-fitur dalam ogre

Fitur-Fitur yang terdapat pada OGRE yaitu:
* Desain yang berobject oriented dengan menggunakan plug-in untuk mempermudah memasukkan fitur lainnya.
* Engine berbasis scane graph dengan bantuan untuk sebuah varietas yang luas, octree, BSP, & Paging Landscape scene manager.
* Multi-platform dengan dukungan OpenGL & Direct3D. Bisa merender konten yang sama di beda platform tanpa harus mempunyai content creator. Dapat diakses pada platform Linux, Mac OS X, dan semua versi Windows.
* OGRE mendukung program Vertex dan Fragment selama ditulis dengan GLSH, HLSL, Cg, dan assembler.
* The landscape scene manager untuk Progressive LOD, yang mana bisa dibuat secara otomatis & manual.
* Engine animasi yang mensuport penuh untuk multiple hardware.
* OGRE mempunyai comositing manager dengan bahasa script dan full screen postprocessing untuk efek seperti HDR, blooming, satruation, brightness, blurring, & noise.
* Libraries mempunyai fitur memory debugging & loading resource dari archive-nya.
* Tersedia konten tools untuk 3D modeler, seperti 3D Studio Max, Maya, Blender, LightWare, Milkshape, Sketchup, dsb.

Installasi Ogre dalam Windows
Ogre atau object-oriented Graphics Rendering Engine adalah open source rendering engine grafik yang ditulis dan dimaintain oleh tim inti kecil. Ogre merupakan suatu aplikasi 3D yang bersifat open source. 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


1.Pertama install MinGW Toolbox dan setelah itu lakukan setting environment variable, misalkan anda menginstalnya di D:\mingw, maka dalam environment variable kita set path dengan nilai D:\mingw\bin


2.untuk mengecheck apakah MinGW sudah terinstall dengan benar, ketik gcc –v pada command prompt

3.kemudian install MYSYS, jalankan setup MYSYS-1.0.10, kemudian setting path seperti yang dilakukan untuk menginstall MinGW seperti gambar dibawah berikut


4.untuk mengechecknya ketikan uname –a dicommand prompt

5.selanjutnya install OGRE, kemudian setting variable seperti MinGW dan MYSYS diatas, tetapi kita membuat variabel system baru yang bernama OGRE_HOME


6.Lalu extractlah file eclipse hasil download dan jalankan file eclipse.exe dalam folder eclipse

7.Setelah itu kita buat project baru dengan menekan alt+shift+n lalu pilihlah C++ Project, perhatikan gambar berikut :


8.Lalu selanjutnya kita akan membuat sebuah project aplikasi 3D yang memanfaatkan OGRE.
9.pilih empty project dengan toolchains MinGW

10.lalu klik project pada bagian project explorer lalu tekan alt+enter

11.Arahkan kebagian C/C++ Build --> Settings, Klik Manage Configurations lalu klik baris Release dan tekan Set Active dan klik OK.

12.Masuk ke bagian GCC C++ Compiler pada Tool Settings, selanjutnya ikutilah petunjuk table berikut ini untuk bagian-bagian properties pada pilihan Debug dan Release. Pastikan yang aktif adalah Release.


13.Masih pada bagian Tool Setting, masuk ke bagian MinGW C++ Linker ikutilah petunjuk table berikut ini untuk bagian-bagian properties pada pilihan Debug dan Release. Pastikan yang aktif adalah Release.


14.Masuk kebagian sourcecode, masukkan contoh sourcecode

15.Build project tersebut(dari sourcode yang kamu masukkan), dan masuk kedalam direkori OgreSDK\bin\release lalu buka file resource.cfg

16.Ganti bagian ../../../ dengan fullpath lokasi OgreSDK

17.Savelah file tersebut, lalu copy semua isi direktori OgreSDK\bin\release kedalam workspace project anda khusunya direkori nama_workspace\nama_project\Release

18.Masuk ke direktori nama_workspace\nama_project\Release, jalankan file executablenya biasanya nama_project.exe maka akan muncul dialog seperti ini,
>

19.Disini kita mengkonfigurasi output yang ditampilkan, tekan OK, maka hasilnya akan tampak


Installasi Ogre dalam Ubuntu
Sebenarnya di Ubuntu Repository sudah ada Ogre3D, namun hanya terbatas pada library (pada /usr/lib/OGRE) dan development headernya (pada folder /usr/include/OGRE). Mereka disimpan pada package libogre6 dan libogre-dev. Dan juga, yang berguna, adalah dokumentasi ogre yang disimpan pada package ogre-doc

Tapi, Ubuntu tidak menyertakan Samples yang memudahkan kamu untuk mempelajari, dan terkesan, pada Ogre. Namun, menginstall Ogre dari Source pun tidak mudah. Ada beberapa hal yang perlu dicermati :

1. Ada library yg harus kamu download, yaitu Freeimage, OIS, dan Cg_toolkit. Kamu harus mendownload sourcesnya, dan melakukan kompilasi. Siap-siap ya dengan membaca file2 spt README, INSTALL dan sebagainya. Bagi kamu yang pemula, kamu hanya tinggal menjalankan ./configure, make dan make install. Itu aja kok, mudah. Tapi untuk jelasnya silahkan baca masing-masing petunjuk instalasi. Oh ya, kalau saat instalasi OIS,kamu disuruh menginstall beberapa paket yang dibutuhkan, install saja. Misalnya nanti kamu akan disuruh menginstall Automake dan sebagainya. Bisa kan menginstall mereka dengan sudo apt-get install ? Pastikan dulu nama packagenya dengan mencari dengan apt-search ya.
Download source ogre disini--> source ogre

buat lebih jelas klik disini aja--> cara install


2.Untuk menjalankan Demo ini(yang diatas), kamu harus berada di folder Samples/Common/bin dan menjalankan semua file binary hasil perintah make dari situ. Contoh untuk menjalankan demo Robot ini, perintahnya adalah ../../Robot/src/Robot, tentu dari direktori /Samples/Common/bin.

Langkah utuk instalasi Ogre 3D di Ubuntu Gutsy (setidak2nya Gutsy sudah menyediakan paket libfreeimage, jadi kamu tidak perlu download dari sourcenya).
Paket yang yg belum ada di Gutsy (klik aja untuk download-->) : OIS dan Cg Toolkit.

Instalasi OIS
Install dulu dependency :

sudo apt-get install autoconf automake1.9 libtool libxaw6-dev build-essential

membutuhkan 63.3 MB

Kemudian mulai build

make clean # bersihkan folder objek hasil kompilasi sebelumnya
./bootstrap
./configure --disable-ogre # karena ogre yg akan memanggil ois
make
sudo make install
Instalasi Cg Toolkiet
extract Cg_toolkit, dan kopi ke /usr semuanya :
cd Cg
sudo cp usr/* /usr -R

Instalasi Ogre
Install dulu dependency :
sudo apt-get install libzzip-dev libxxf86vm-dev \
libxrandr-dev libxrandr-dev libfreeimage-dev \
libcegui-mk2-dev libfreetype6-dev libdevil-dev \
libgtk2.0-dev libcppunit-dev libglut3-dev

jalankan terlebih dahulu :
aclocal

Kemudian mulai build :
./bootstrap
./configure
make
sudo make install

sumber:
- sumber1
- sumber2
- sumber3
- sumber4

View full article and comment >>>