Jump to content
zsuperxtreme

Kelab Bina Game: Tutorial Membuat Game 3d

Recommended Posts

assalamualaikum...

aku dh test tutorial ko tuh..tpi dia kena letak 'L' kat pangkal "Hello Dunia Putera" ngan "Hello geng putera, jom rock".

kalu tk letak dia tak compile pon. apa maksud 'L' tuh? (aku tgk contoh yg dia bagi)

//Menyediakan satu permukaan pada skrin untuk rendering

IrrlichtDevice *device =createDevice(EDT_SOFTWARE, dimension2d<s32>(512, 384), 16,false, false, false, 0);

device->setWindowCaption(L"Hello Dunia Putera");

//Letak text pada antaramuka iaitu pada guienv

guienv->addStaticText(L"Hello geng putera, jom rock",rect<int>(10,10,200,22), true);

* yg lain xder? gi sarap kot? haha..

EDIT::

tutorial post #9 aku dh pass (wpun xtau maksud 'L' tu..)

..tpi code fps post #16 tu selit kat maner?

//meletakkan camera dalam ruangan game, iaitu view player

smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0));

---- aku try selit sini -----

// RENDER, lukis apa yang kita dah set ke dalam game

while(device->run()){

driver->beginScene(true, true, SColor(0,200,200,200));

smgr->drawAll(); //Lukis 3 dimensi game

guienv->drawAll(); //Lukis paparan 2d game

driver->endScene(); //Bagitau driver takat tu je, pastu render

dia mcm konflik la plak ngan model kotak sebelum tu...redeclare..slh selit kot?

atau sebenonye ade 2 model? - satu kotak, satu lantai ke..

Edited by MalaYneuMaya

Share this post


Link to post
Share on other sites

Betul le, aku semalam try pun takleh compile benda yang sama. Aku bahasa C++ memang buta betul, so aku main letak je code yang ko bagi tu kat Dev-C++ tapi takleh compile plak... Nasib baik MalayNeuMaya dah tanya, kalo tak.. aku pun nak tanya tadi... hehehe.

Share this post


Link to post
Share on other sites

Ha ah, kena letak "L" tuh. Masa aku paste tu, aku ter remove, jadi korang just guna example yang dia bagi, tutorial nie kalau ko nak guna satu-satu code dia memang payah. So just untuk penjelasan sahaja. Sorry sbb tak repair, sbb aku ingat korang dah tau... sorry..sorry.

kod FPS tu letak sebelum while.

smgr->addCameraSceneNodeFPS();

*Aku dah ubah

INFO DARI Microsof MSDN

To specify a string of type wide-character (wchar_t[]), precede the opening double quotation mark with the character L.

Edited by zsuperxtreme

Share this post


Link to post
Share on other sites

assalamualaikum...

laaa..ropenye ada kod yg perlu DIGANTIKAN dengan setkod fps tuh..

patutla aku wat asik konflik je psl aku guna dedua kod skali..hahaha

so ni setting aku:

1. repair dlu kod post #9 tu - letak 'L' (baca post #51,#53)

2. wat mcm zx suruh dlm post #44, cuma dekat

Project - Project Options - tab Build Options, dedua kotak tu linkkan pada ..\irrlicht-1.2\bin\Win32-gcc pasal dlm dir tu ada file 'Irrlicht.dll' (digunakn utk run)

3. aku dpt tahu utk wat pgerakn fps, sume kod dlm post#9 tu digunakan, KECUALI GANTIKAN BAHAGIAN:

-----------------------------------------------------

//Menambahkah model ke dalam game

IAnimatedMesh* mesh = smgr->getMesh("../../media/kotak.md2");

IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode( mesh );

//Meletakkan texture pada model tadi

if (node)

{

node->setMaterialFlag(EMF_LIGHTING, false);

node->setFrameLoop(0, 310);

node->setMaterialTexture( 0, driver->getTexture("../../media/kotak.bmp") );

}

//meletakkan camera dalam ruangan game, iaitu view player

smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0));

------------------------------------------------------

-- GANTIKAN DENGAN KOD POST #16 --

*dengan syarat dir model dlm kod tu betul.

4. lepas korang run, mgkin skrin kosong - sebenonye model korang ade tpi korang 'terbenam' dlm tu, mgkin sbab model tu beso. so korang tekan je down arrow utk gostan skit..

betulka wahai cikgu zx? kalu slh sila betulkn..tpi aku wat camni jadi plak..

Share this post


Link to post
Share on other sites

Err.. aku ada masalah sikit dengan tutorial grafik engine (post #9)..

Tadi aku try buat tutorial tue..

Ni model yang aku buat dalam anim8or:

anim8or.jpg

Dan ini pulak output guna enjin irrlicht:

output1.jpg

Soalan 1:

Kenapa kaler dalam output tak sama seperti dalam anim8or?

Soalan 2:

Macamana nak set dalam anima8or supaya kita tau frame yang kita sedang view tu dari top/bottom/left/right/dan lain2.. Macam 3dsmax ada bagitau frame tu view dari arah mana..

Soalan 3:

Dalam anim8or macamana nak tau anak panah tu untuk x/y/z?

Soalan 4:

Macamana nak edit format static text dalam irrlicht?

Ni pulak aku buat mesh cube dalam anima8or tanpa letak texture.. Dan aku guna texture avatar.jpg dalam coding:

avatar.jpg:

avatar.jpg

output program:

output2.jpg

Soalan 5:

Kenapa texture tu diletak pada satu surface jer? Macamana nak set setiap surface tu letak texture apa dengan menggunakan coding?

Ni pulak texture dalam contoh Hello World! irrlicht:

sydney.jpg

Soalan 6:

Macamana nak buat texture macam dalam contoh Hello World di atas? Dan macamana nak sesuaikan dia dengan mesh?

smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0));

Soalan 7:

Aku tak dapat tangkap macamana setting kedudukan camera dari code kat atas.. Boleh terangkan tak fungsi vector3df yang pertama dan yang kedua.. Yang aku tau yang pertama tu untuk kedudukan kamera dan yang kedua tu camera fokus ke kedudukan objek.. Tapi aku tak berapa clear lagi konsep sebenar dia.. Dan katakan vector3df(a,b,c).. a tu setting untuk ape, b tu untuk ape, c tu untuk ape? Yang aku main agak c untuk vector3df pertama tue mewakili jarak kamera dari objek..

p/s: huhu tak dapat tido gara2 tak puas hati sebab tak dapat buat..

Share this post


Link to post
Share on other sites

Tepat malayneumaya, memang betul.

Mak aih banyaknya soalan ye. aku jawab satu satu ok.

MENJAWAB SOALAN

Soalan powerabu

1. game binding untuk irrlicht ni apa?

Game binding nie adalah menggunakan bahasa pengaturcaraan lain untuk running irrlicht, simple and square.

Soalan binarycode

1. Kenapa kaler dalam output tak sama seperti dalam anim8or?

Biasala, 3d editor akan masukkan "shadow", agar 3d view nampak 3d. Tapi dalam irrlicht, shadow tu ko kena buat sendiri, kena guna lightmap.

2. Macamana nak set dalam anima8or supaya kita tau frame yang kita sedang view tu dari top/bottom/left/right/dan lain2.. Macam 3dsmax ada bagitau frame tu view dari arah mana..

Irrlicht tak bagitau kat mana lokasi, tapi ko sendiri boleh setkan supaya boleh identify mana lokasi point kamera from(x,y,z) to (x1,y1,z1). Itu caranya.

3. Dalam anim8or macamana nak tau anak panah tu untuk x/y/z?

Graphic engine tak sama dengan model editor, macam soalan 2 ko kena generate sendiri. Normally model yang ko masukkan tu boleh adjust rotation, transformation, dan scaling, so pada asal tanpa ubah semua tu sama dengan yang ada dalam grafik editor. contoh bunga tu mengadap ke utara, dalam irrlicht pun mengadap ke utara.

4. Macamana nak edit format static text dalam irrlicht?

Kalau nak ubah format panjang cerita so just refer link dibawah nie

http://irrlicht.sourceforge.net/docu/class...tatic_text.html

5. Kenapa texture tu diletak pada satu surface jer? Macamana nak set setiap surface tu letak texture apa dengan menggunakan coding?

Better ko guna 3d editor untuk setkan setiap surface, sbb kalau guna code panjang gila, mau 1 minggu ajar. hehehe

6. Macamana nak buat texture macam dalam contoh Hello World di atas? Dan macamana nak sesuaikan dia dengan mesh?

Aku tau masalah ko adalah dengan UVW mapping. so try to find out. Kalau guna Anima8or memg susah buat UVW, try blender, or 3dsmax.

7. Aku tak dapat tangkap macamana setting kedudukan camera dari code kat atas.. Boleh terangkan tak fungsi vector3df yang pertama dan yang kedua.. Yang aku tau yang pertama tu untuk kedudukan kamera dan yang kedua tu camera fokus ke kedudukan objek.. Tapi aku tak berapa clear lagi konsep sebenar dia.. Dan katakan vector3df(a,b,c).. a tu setting untuk ape, b tu untuk ape, c tu untuk ape? Yang aku main agak c untuk vector3df pertama tue mewakili jarak kamera dari objek..

smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0));

Menanadakan kamera tu pada kedudukan X, dan camera pada kedudukan Y yang tinggi iaitu Y(30) dan mengadap ke Y (5), maksudnya camera tu tunduk, dan berundur Z(-40) mengadap ke z(0). So camera ni dia undur sikit.

Edited by zsuperxtreme

Share this post


Link to post
Share on other sites

Ya , aku setuju sebab topik game engine tu terlalu advance bagi yang beginner. Aku cadangkan ko buat tutorial2 berkenaan basic2 module dulu sebagai contoh bagaimana nak integrasikan objek2 3D dan sebagainya.

Share this post


Link to post
Share on other sites

PROBLEM SOLVING

Ok oleh kerana membuat lighting adalah amat membebankan, adalah better korang guna IrrEdit untuk adjust lighting bagi setiap permukaan. Rajah dibawah menunjukan masalah yang dihadapi apabila model yang tiada lighting digunakan.

light.png

Ok berikut adalah bagaimana light dimasukkan ke dalam scene. First import *.3ds (model, eg kotak), pastu klik light tu dan letak dimana-mana, savekan sebagai *.irr, pastu linkkan irrlicht dengan file irr seperti dalam tutorial sebelum ini.

irreditlight.png

Edited by zsuperxtreme

Share this post


Link to post
Share on other sites

zsuperxtreme - dynamic light ko ajar gak ke?

UVW map/Unwrapping mmg agak sukar..nak senang try pakai plugin nama 'texporter' dlm 3ds max.

yang penting mengenai texture semua ni..make sure save file tu jgn melebihi 8chatacter/perkataan(contoh:file1.jpg = 5chrter),saiz bersesuaian dan save file tu dlm satu folder utk senang panggil..untuk more advance punya texturing..leh pakai 'bodypaint'..

*sekadar membantu je(kalau salah,sorry)

Share this post


Link to post
Share on other sites

Aku just ajar light je, yang dinamic tu aku tak pasti lagi. Bagi aku UVW nie taklah sesusah mana, just korang tau mcm mana nak handle dah senang dah. Explain izmal mengenai texture file name range memang betul.

Takper lepas aku finish bab lighting, kita masuk pulak bab UVW mapping. Sebenarnya UVW mapping nie dah masuk bab buat model.

Share this post


Link to post
Share on other sites

assalamualaikum...

err..kod post #24 takleh compile le...dia tulis:

C:\Dev-Cpp\irrexample.cpp - missing template arguments before '(' token

aku tulis sejibik kod ko tuh n aku dh letak example.irr kat ../../media/ aku. tpi ttap xjadi. kenapa yek? (masih mencari penyelesaian...)

EDIT ::

dah setel mslh, aku pegi kat :

createDevice(driverType, core::dimension2d(640, 480));

-- masalahnya adalah tertinggal '<s32>' --

tambah jer dia akan jadi:

createDevice(driverType, core::dimension2d<s32>(640, 480));

-- dh bleh compile n run tpi xde texture la plak..agknya aku x setup dir kot..nnti aku check

EDIT LAGI ::

assalamualaikum...

yes,aku run dh ader txture, setting :

1. example.irr masih dlm folder irrlicht-1.2\media\

2. copy folder 'textures' dan 'meshes' dlm maindir irredit-0.6 dan pastekn kat irrlicht-1.2\bin\Win32-gcc\

itu shj..

aku try tetuka driver kod post#24, result aku:

""""""""""""""""""""""""""""""""""""""""""""""

EDT_DIRECT3D9 - dos error: DIRECT3D9 Driver was not compiled into this dll. Try another one.

EDT_DIRECT3D8 - sama mcm atas

EDT_OPENGL - scene klua, tapi xder texture (atau mungkin tx default kaler coklat)

EDT_SOFTWARE - scene klua, texture ader tapi tak penuh

EDT_SOFTWARE2 - scene klua, texture penuh - yg terbaik antara ke6-6

EDT_NULL - dos shj klua, pastu wat bodo...

*MAKLUMAN - aku TAK PAKAI GC, oleh itu error aku mngkin takder kat korang yg pakai gc dan mngkin error ni xder kalu aku pakai gc...(uu..pening ker?hehe)

Edited by MalaYneuMaya

Share this post


Link to post
Share on other sites

ha ah aku lupa plak nak letak <s32>, sowi, sowi.. hehehe.. takper. solve problem sendiri lagi bagus, so boleh faham mcm mana. mengenai texture dan segala, memang kena move media texture folder. Pastu mengenai driver, memang problemo startup driver, terpaksa guna cara lain untuk view.

Share this post


Link to post
Share on other sites

assalamualaikum...

skang nih masalah kat collision detection le...

kod post #29 tu bleh guna ker kalu kita guna scene file .irr? apa yg perlu diubah?

Share this post


Link to post
Share on other sites

Ok, actually dalam game dev nanti kita akan guna mesh untuk develop game, yang irrEdit tu just untuk buat scene je, at the end still kena call octree model untuk collision detection. Aku dah find out memang tak dapek nak load mesh dari irredit untuk buat collision. So kena guna cara lain.

Share this post


Link to post
Share on other sites

assalamualaikum...

o yeke cam tu ke...okeh aku tunggu tutorial akn datang....

*sibuk wat model ke? hehe

Share this post


Link to post
Share on other sites

Tunggu je la Zsuperxtreme sambung tutorial dia nie... nie pun dah kira bagus gak dia dapat sempurnakan asas membina game nie...

Hehehe... malayneu, aku takleh ler.. banyak lagi kena belajar. Ilmu tak cukup!

Share this post


Link to post
Share on other sites

Ok kalau sesiapa kat sini tak biasa dengan programming korang boleh ajar modelling at the same time, tu pun kira game tutorial gak... hehe... buat masa nie sibuk buat game online... so tunggu... hehehe.

Share this post


Link to post
Share on other sites

assalamualaikum...

sajer jer aku tanya tuh hehe :P .sesapa yg ada benda nk sumbang tu letak jer lar okeh..janji tutorial terus on.

takyah ler 100% dari zx jer ye tak?

okeh aritu aku find out yang file .pk3 (yg blum blajo tuh) hanyalah file zip sahaja.maknanya pkai wi[nz]ip pon bleh pack/unpack

so, aku jumpa [o]pen sour[c]e nyer zipper, korang bleh lah try utk tutorial nnti (xyah pkai wi[nz]ip lagi)

http://www.7-zip.org

aku dh try nih...lagi kecik dia compress dari wi[nz]ip. yg pling penting opsour[c]e ler ye tak?

Share this post


Link to post
Share on other sites

Hmm sememangnya ko masih baru dalam bidang ini nxskynet, tapi takpe bertanya itu bagus. OpenGL dan Direct X adalah 2 3D platform yang berbeza. Kalau takde kedua2 ni memang sah game tak jalan. Direct X ni adalah 3D platform yg direka oleh Microsoft yang hanya boleh di pakai didalam window mana kala Open Gl ni mana-mana Operating System (Windows, Apple, Linux) pon bole pakai. Tapi aku tak sure kalau Open Gl tu open source ke tak. Itu nanti aku check dgn member aku but kalau ade org dalam forum yg lebih arif seperti Zsuperextreme ke pasti bole terangkan dgn lebih mendalam. Maklumlah aku ni lebih kepada 3D art bukan 3D programming.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...