dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

Scene-Graph objektu nobīdes problēma

 
dev.gamez.lv Forum Index -> Programmēšana
View previous topic :: View next topic  
Author Message
programmer



Joined: 15 Sep 2006
Posts: 71
Location: Latvija, Limbaži

PostPosted: Wed Jul 25, 2007 11:31 am    Post subject: Scene-Graph objektu nobīdes problēma

Veidoju savam 3D dzinim scene graph struktūru. Taču saskāros ar problēmu. Piekabinu objektu B (child) pie objekta A (parent). Savienojums ir absolūti neelastīgs - tātad kustinot objektu A, objektam B vajadzētu kustēties līdzi ar noteiktu koordinātu offsetu. Taču problēma ir tāda, ka kustinot objektu A, var redzēt, ka objekts B tajā brīdī itkā dreifē ar kādu noteiktu nobīdi no offseta koordinātām. Kad apstādina objektu A, tad objekts B nostājas savās īstajās offseta koordinātās no objekta A.
Es izsaku minējumu, ka pie tā varētu būt vainojams tas, ka abu objektu pozīcijas netiek updeitotas vienā laikā (tas itkā nemaz nav iespējams), t.i. no sākuma updeito parent'a (A) koordinātas un tikai pēc tam child'a (B) koordinātas. Bet no otras puses, SwapBuffers tiek izsaukts pašās beigās.. tad kāpēc šī nobīde ir redzama, kad abiem updeitiem jau jābūt veiktiem? Un kā to varētu labot?

P.S. To pašu novēroju arī taisot GUI, kad velkot logus, kontroļi uz tā pārvietojas ar nobīdi. (te to varētu nosaukt par diezgan labu efektu Very Happy )
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Jul 25, 2007 12:34 pm    Post subject:

Nesaprotu problēmu.
Vai tev katram childam ir relatīva transformācijas matrica pret parentu kā normālā SceneGraph'ā? Kā tur var nevarēt updeitot pozīcijas vienā laikā (tb updeitā)? Rekursīvi ej cauri savam grafam un updeito tās!

Un kāpēc tu izsaki minējumu, nevis pārbaudi to ar debugeri?
Back to top
View user's profile Send e-mail
programmer



Joined: 15 Sep 2006
Posts: 71
Location: Latvija, Limbaži

PostPosted: Wed Jul 25, 2007 12:51 pm    Post subject:

Problēma atrisināta. Biju piemirsis par Update() funkciju katram childam un es pozīcijas akli updeitoju Render() funkcijā pēc šī paša chailda renderēšanas, kas ir vēl stulbāk. Very Happy
Laikam pie vainas bija miegainums, kas vakar visu dienu mācās virsū un neko nevarēju kārtīgi padomāt (uzrakstīju dažas koda rindas, pasnaudu uz dīvāna, atkal uzrakstīju dažas rindas, atkal pasnaudu utt.). Vakar vakarā domāju - šodien no rīta, kad piecelšos, uzrakstīšu forumā, kā es arī izdarīju, taču pēctam, kā Tu man teici, pārbaudīju visu ar debuggeri un viss tapa skaidrs! :)

p.s. Tagad zinu, ka programmēt bezfilmā nav ieteicams :D

Paldies par to pašu!
Back to top
View user's profile Visit poster's website
Display posts from previous:   
dev.gamez.lv Forum Index -> Programmēšana All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group