Agung Toto Wibowo Materi tutorial diambil dari wiki Ogre :

Slides:



Advertisements
Presentasi serupa
Menggambarkan Data: Tabel Frekuensi, Distribusi Frekuensi, dan Presentasi Grafis Chapter 2.
Advertisements

INTRO (TO BPOS). What is BPOS? Apakah BPOS itu? •BPOS = (Microsoft) Business Productivity Online Suite (Service) •adalah sebuah layanan online Microsoft,
WE-2010 Web Engineering Husni husni.trunojoyo.ac.id
Dasar dasar GUI programming di Java
MS. POWER POINT 2007 Kelas XII Semester 2
Array.
3D Game Engine Agung Toto Wibowo
INTRO TO BPOS ( Coffey’s Project Portal). What is BPOS? Apakah BPOS itu? •BPOS = (Microsoft) Business Productivity Online Suite (Service) •adalah sebuah.
Pengujian Hipotesis untuk Satu dan Dua Varians Populasi
This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2006 Microsoft Corporation. All.
Mata Kuliah : ALGORITMA dan STRUKTUR DATA 1.
PEMOGRAMAN BERBASIS JARINGAN
Administrator - Pengaturan User Hari I Sesi 1.  Membuat Account User a. Add a New User b. Upload User  Mengubah Profile User  Menghapus Account User.
MELAKUKAN INSTALASI SISTEM OPERASI WINDOWS XP
Memulai Drive Test menggunakan TEMS Investigation 6.1.4
File Handling.
DRAINASE JALAN KERETA API
Pemrograman Visual. Pernyataan IF…THEN…ELSE Pernyataan ini hanya memeriksa apakah suatu blok kode program dapat dieksekusi atau tidak. Jika kondisi pernyataan.
Feni Veramica Futri, S.Pd
Pemrograman Berorientasi Objek
PERULANGANPERULANGAN. 2 Flow of Control Flow of Control refers to the order that the computer processes the statements in a program. –Sequentially; baris.
Slide 3-1 Elmasri and Navathe, Fundamentals of Database Systems, Fourth Edition Revised by IB & SAM, Fasilkom UI, 2005 Exercises Apa saja komponen utama.
ModulXII (dua belas) TopikKonkurensi Sub TopikAlgoritma Penyelesaian Mutual Eksklusion Materi  Algoritma Peterson  Semaphore TujuanMahasiswa mengenal.
1 IKI20210 Pengantar Organisasi Komputer Kuliah No. 18: I/O, Interupsi 15 November 2002 Bobby Nazief Johny Moningka
Introduction to The Design & Analysis of Algorithms
Database Create-Retrieve-Update-Delete (CRUD)
PROSES PADA WINDOWS Pratikum SO. Introduksi Proses 1.Program yang sedang dalam keadaan dieksekusi. 2.Unit kerja terkecil yang secara individu memiliki.
KIMIA ORGANIK II ELFI SUSANTI VH.
1 IKI10230 Pengantar Organisasi Komputer Kuliah no. A4: Bahasa Rakitan AVR Conditional & Branch Instructions 21 Maret 2003 Bobby Nazief
DEPARTEMEN ILMU KOMPUTER FMIPA IPB 2011 Praktikum Bahasa Pemrograman.
Could not load an object because it is not avaliable on this machine. Tidak dapat memuat sebuah benda karena tidak tersedia pada mesin ini.
Interface Nur Hayatin, S.ST Jurusan Teknik Informatika Universitas Muhammadiyah Malang Sem Genap 2010.
Agung Toto Wibowo Materi tutorial diambil dari wiki Ogre :
Agung Toto Wibowo Feil, John and Scattergood, Marc, "Beginning Game Level Design", Thomson Course Technology,
JAVA CLASS Bahasa Pemrogramam BAHASA PEMROGRAMAN PERTEMUAN #9.
Menggunakan OLE Drag-Drop
Menggunakan Drag-Drop
Implementing an REA Model in a Relational Database
FreeRTOS Tutorial.
NoObjekPropertiNilai 1FrmsegitigaNameFrmsegiitiga 2FrmsegitigaCaptionLuas Segi Tiga MDI ( Multiple Document Interface ) Pendahuluan MDI singkatan dari.
MEMORY Bhakti Yudho Suprapto,MT. berfungsi untuk memuat program dan juga sebagai tempat untuk menampung hasil proses bersifat volatile yang berarti bahwa.
Kinematics in One Dimension - Kinematika dalam Satu Dimensi -
Basisdata Pertanian. After completing this lesson, you should be able to do the following Identify the available group functions Describe the use of group.
Array
Function, Procedure, Unit
AUSTRALIA INDONESIA PARTNERSHIP FOR EMERGING INFECTIOUS DISEASES 3. MERAPIKAN DATA.
Slide 1 QUIS Langkah pertama caranya Buat di slide pertama judul Slide kedua soal Slide ketiga waktu habis Slide keempat jawaban yang benar Slide kelima.
Selamat Datang Peserta Workshop
Roundtable discussion on citizen engagement for good governance in East Indonesia diskusi keterlibatan penduduk untuk tata pemerintahan yang baik di Indonesia.
TRAVERSING BINARY TREE
AUSTRALIA INDONESIA PARTNERSHIP FOR EMERGING INFECTIOUS DISEASES Excel tingkat menengah – Bagan (lanjutan) Location Date Name.
Lecture 1 Introduction to C# Erick Pranata © Sekolah Tinggi Teknik Surabaya 1.
Contoh Pengembangan Layanan Infrastructure as a Service Oleh : Oya Suryana.
PEMROGRAMAN PPBD (UAS) SEBELUM MELANGKAH KE TAHAP SELANJUTNYA BERDOA DULU BIAR LANCAR DAN GA EROR
Linked List dan Double Linked List
Sprite Setiap objek dalam game yang memiliki gambar dan karakteristik.
ACCURATE MINI KASUS.
Metering Nol memerintahkan kamera utk melihat, sedekat mungkin dengan seperti mata kita melihatnya Eny Erawati, S.Sn.
Amortization & Depresiasi
STRUCTURAL CONTROL continuation STATEMENT  SWITCH  WHILE  DO..WHILE.
Operator dan Assignment Pertemuan 3 Pemrograman Berbasis Obyek Oleh Tita Karlita.
1. 2 Work is defined to be the product of the magnitude of the displacement times the component of the force parallel to the displacement W = F ║ d F.
Via Octaria Malau Transfer (Internal Transfers) Transfer (Transfers Internal) Select the account from which funds are to be transferred FROM and then select.
Kelas Dasar HTML Dasar SMK Al-Muhajirin Sabtu, 29 November 2014.
Double Linked List. © 2005 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved. Double Linked List Sama seperti single linked list, double.
Web Teknologi I (MKB511C) Minggu 12 Page 1 MINGGU 12 Web Teknologi I (MKB511C) Pokok Bahasan: – Text processing perl-compatible regular expression/PCRE.
Interaksi dengan Objek HTML A’ud Solehuddin::Februari2012.
FISIKA DASAR By: Mohammad Faizun, S.T., M.Eng. Head of Manufacture System Laboratory Mechanical Engineering Department Universitas Islam Indonesia.
MEMBUAT DATABASE LEWAT KODE PROGRAM
AUSTRALIA INDONESIA PARTNERSHIP FOR EMERGING INFECTIOUS DISEASES PELATIHAN EXCEL DASAR.
Transcript presentasi:

Agung Toto Wibowo Materi tutorial diambil dari wiki Ogre :

Pendahuluan Di pelajaran ini, pada dasarnya Ogre tidak membuat algoritma untuk animasi dengan sendirinya. Animasi dibuat dari 3D modelling tools yang lain seperti 3ds max, blender dlsb. Yang dilakukan hanya mentranslasi dan merotasikan entitas yang memiliki animasi.

Persiapan Animasi Buat aplikasi dengan nama Ogre “MoveDemoApplication” using namespace std; class MoveDemoListener : public ExampleFrameListener { public: MoveDemoListener(RenderWindow* win, Camera* cam, SceneNode *sn, Entity *ent, deque &walk) : ExampleFrameListener(win, cam, false, false), mNode(sn), mEntity(ent), mWalkList(walk) { } // MoveDemoListener /* This function is called to start the object moving to the next position in mWalkList. */ bool nextLocation() { return true; } // nextLocation() bool frameStarted(const FrameEvent &evt) { return ExampleFrameListener::frameStarted(evt); } protected: Real mDistance; // sisa jarak yang masih harus ditempuh Vector3 mDirection, mDestination; // vektor arah dan lokasi tujuan AnimationState *mAnimationState; // State animasi dari objek Entity *mEntity; // Entitas yang dianimasikan SceneNode *mNode; // SceneNode tempat Entity diletakkan std::deque mWalkList; // list lokasi yang akan dilalui Real mWalkSpeed; // kecepatan entitas berjalan }; Extend ExampleFrameListener Jalur pergerakan animasi

class MoveDemoApplication : public ExampleApplication { protected: public: MoveDemoApplication() { } ~MoveDemoApplication() { } protected: Entity *mEntity; // entitas dari objek yang akan dianimasikan SceneNode *mNode; // SceneNode dari object yang bergerak std::deque mWalkList; // deque yang berisi titik pergerakan void createScene(void) { } void createFrameListener(void) { mFrameListener= new MoveDemoListener(mWindow, mCamera, mNode, mEntity, mWalkList); mFrameListener->showDebugOverlay(true); mRoot->addFrameListener(mFrameListener); } }; Persiapan Animasi

Skenario Kita letakkan objek yang akan bergerak. Kita letakkan objek lain sebagai acuan agar terlihat bahwa objek telah bergerak. Kita set list point pergerakan objek. Kita amati dengan kamera berada di lokasi ideal.

Meletakkan Objek Tambahkan kode berikut pada MoveDemoApplication::createScene() // Set the default lighting. mSceneMgr->setAmbientLight(ColourValue(1.0f, 1.0f, 1.0f)); // Create the entity mEntity = mSceneMgr->createEntity("Robot", "robot.mesh"); // Create the scene node mNode = mSceneMgr->getRootSceneNode()->createChildSceneNode("RobotNode", Vector3(0.0f, 0.0f, 25.0f)); mNode->attachObject(mEntity); Buat pencahayaan environtment menjadi terang

Menambahkan list pergerakan Tambahkan kode berikut pada MoveDemoApplication::createScene() // Create the walking list mWalkList.push_back(Vector3(550.0f, 0.0f, 50.0f )); mWalkList.push_back(Vector3(-100.0f, 0.0f, f)); // bisa kita tambahkan lagi sesuka kita, atau dari hasil algoritma A*

Menambahkan Objek lain (acuan) Tambahkan kode berikut pada MoveDemoApplication::createScene() // Create objects so we can see movement Entity *ent; SceneNode *node; ent = mSceneMgr->createEntity("Knot1", "knot.mesh"); node = mSceneMgr->getRootSceneNode()->createChildSceneNode("Knot1Node", Vector3(0.0f, -10.0f, 25.0f)); node->attachObject(ent); node->setScale(0.1f, 0.1f, 0.1f); ent = mSceneMgr->createEntity("Knot2", "knot.mesh"); node = mSceneMgr->getRootSceneNode()->createChildSceneNode("Knot2Node", Vector3(550.0f, -10.0f, 50.0f)); node->attachObject(ent); node->setScale(0.1f, 0.1f, 0.1f);

Meletakkan Kamera Tambahkan kode berikut pada TutorialApplication:: createCamera() // Set the camera to look at our handiwork mCamera->setPosition(90.0f, 280.0f, 535.0f); mCamera->pitch(Degree(-30.0f)); mCamera->yaw(Degree(-15.0f));

Animasi Tambahkan kode berikut pada kontructor MoveDemoListener // Set idle animation mAnimationState = ent->getAnimationState("Idle"); mAnimationState->setLoop(true); mAnimationState->setEnabled(true); Kompile dan jalankan aplikasi. // perlu kita update animationstate dengan evt.timeSinceLastFrame // pada MoveDemoListener::frameStarted mAnimationState->addTime(evt.timeSinceLastFrame);

Menggerakkan Robot Kita ganti konstruktor pada MoveDemoListener dengan // Set default values for variables mWalkSpeed = 35.0f;// kecepatan pergerakan mDirection = Vector3::ZERO;// untuk status tidak bergerak ke manapun. Sedang pada MoveDemoListener ::frameStarted kita tambahkan dengan kode berikut (sebelum AnimationState::addTime ) : if (mDirection == Vector3::ZERO) { if (nextLocation()) { // Set walking animation mAnimationState = mEntity->getAnimationState("Walk"); mAnimationState->setLoop(true); mAnimationState->setEnabled(true); }

Mengimplementasikan nextLocation() nextLocation berfungsi untuk mengecek apakah objek masih memiliki point untuk tujuan pergerakan atau tidak. Tambahkan kode berikut pada nextLocation() if (mWalkList.empty()) return false; mDestination = mWalkList.front(); // mengambil nilai terdepan deque mWalkList.pop_front(); // membuang front dari deque mDirection = mDestination - mNode->getPosition(); mDistance = mDirection.normalise(); // mengubah arah wajah robot Vector3 src = mNode->getOrientation() * Vector3::UNIT_X; Ogre::Quaternion quat = src.getRotationTo(mDirection); mNode->rotate(quat);

Kembali ke menggerakkan Robot Robot yang ada belum berjalan, meski animasi sudah berubah. Untuk membuat robot berjalan, kita tambahkan kode berikut pada MoveDemoListener::frameStarted(); else { Real move = mWalkSpeed * evt.timeSinceLastFrame; mDistance -= move; if (mDistance <= 0.0f) { mNode->setPosition(mDestination); mDirection = Vector3::ZERO; // Set animation based on if the robot has another point to walk to. if (! nextLocation()) { // Set Idle animation mAnimationState = mEntity->getAnimationState("Idle"); mAnimationState->setLoop(true); mAnimationState->setEnabled(true); }

Kembali ke menggerakkan Robot Lanjutan else { // Rotation Code will go here later } else { mNode->translate(mDirection * move); } // else } // if if (mWalkList.empty()) return false;

Agung Toto Wibowo Materi tutorial diambil dari wiki Ogre :

Blender dan Ogre Objek yang dibuat di blender dapat diload ke Ogre. Format pada ogre *.mesh, blender *.blend Butuh konversi (meshes exporter) er er Download dan integrasikan Blender Exporter. Copy ogremeshesexporter.py dan subfolders ke lokasi...\blender\.blender\scripts. Install Python (atau lebih tinggi) yang dibutuhkan oleh exporter.

Blender Meshes Exporter

Melihat hasil konversi Aplikasi ceguimeshviewer Informasi lebih lanjut pada link : Mengintegrasikan langsung ke kode Ogre dengan kode.