Home > OGRE 3D, Programming > Program OGRE Saya yang Pertama

Program OGRE Saya yang Pertama

Setelah dipelajari sampe otak panas, kemampuan OGRE saya yang nasibnya “gelap gak jelas” akhirnya menunjukkan titik terang….he he he

berikut ini aplikasi OGRE yang suderrrhana banget :)


#include
#include 

class SampleApp : public ExampleApplication
{
public:
    // Basic constructor
    SampleApp()
    {}

protected:

    // Just override the mandatory create scene method
    void createScene(void)
    {
        // Create the SkyBox

        mSceneMgr->setSkyBox(true, "Examples/CloudyNoonSkyBox");  //latar langit

        // Create a light
        Light* myLight = mSceneMgr->createLight("Light0");
        myLight->setType(Light::LT_POINT);
        myLight->setPosition(0, 40, 0);
        myLight->setDiffuseColour(1, 1, 1);
        myLight->setSpecularColour(1, 1, 1);

        Entity *ent1 = mSceneMgr->createEntity( "Ogre", "ogrehead.mesh" );  //bikin objeknya (kepalanya ogre)
        SceneNode *node1 = mSceneMgr->getRootSceneNode()->createChildSceneNode( "OgreNode" );
        node1->attachObject( ent1 );

        Entity *ent2 = mSceneMgr->createEntity( "Ninja", "ninja.mesh" );  //bikin objek ninja
        SceneNode *node2 = mSceneMgr->getRootSceneNode()->createChildSceneNode( "NinjaNode", Vector3( 50, 0, 1000 ) );  // letaknya x=50, y=0, z=1000
        node2->attachObject( ent2 );

        node2->scale( 5, 2, 3 ); // memanipulasi skala dari objek 3D

        //ent1->setVisible(false);  //disable tampilan

    }
};

// ----------------------------------------------------------------------------
// Main function, just boots the application object
// ----------------------------------------------------------------------------
#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
    SampleApp app;

    try
    {
        app.go();
    }
    catch( 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 << &quot;An exception has occured: &quot; <scale( 5, 2, 3 );

gunanya adalah memanipulasi ukuran objek, kalau kita memperbesar skala y nanti karakter kita akan menjadi jangkung, bisa juga diubah jadi gendut atau pendek :)

Dalam OGRE, terdapat berbagai macam jenis vektor, yang saya bahas ini vektor 3D, nah, kalau sumbu x itu adalah garis dari sebelah kiri monitor sampai sebelah kanan monitor, subu y adalah bagian bawah monitor ke bagian atas monitor, sedangkan sumbu z berasal dari dalam monitor lalu ke luar monitor.

kalau kita mau merotasi objek pada sumbu x

node2->pitch( Degree( -90 ) );

kalau kita mau merotasi objek pada sumbu y

node1->yaw( Degree( -90 ) );

kalau kita mau merotasi objek pada sumbu z

node3->roll( Degree( -90 ) );

nih…screenshotnya:

Categories: OGRE 3D, Programming Tags: , ,
  1. No comments yet.
  1. No trackbacks yet.