[3D] modeleren van bewegingen op verschillende objecten

Pagina: 1
Acties:

  • Mischa_NL
  • Registratie: Mei 2004
  • Laatst online: 01-02-2023
Ik zit met een leuke gedachtekronkel waar ik geen antwoord op weet...

Je kunt in directX de world bewegen MAAR ook de camera....
Als ik nu zeg maar een poppetje heb wat over de wereld loopt, doe ik dit dan door:

1. het poppetje plus de camera te bewegen.
2. De wereld te bewegen.


Mijn logische gedachte zegt: beweeg het poppetje en de camera zo gaat het irl ook. jij beweegt, de wereld niet. (vanuit dit opzicht dan, de aarde beweegt ook wel :P)
Maar van de andere kant: als ik de wereld draai, zou ik in principe maar 1 ding moeten bewegen: de wereld.
Nadeel daarvan is: stel er zijn 100 tegenstanders en ik ga lopen, dan moeten die allemaal met de wereld meebewegen. Verre van ideaal lijkt me?

Wat is de juiste manier om dit op te lossen? Ik zou zelf zeggen gewoon oplossing 1. Wat jullie?

  • Technicality
  • Registratie: Juni 2004
  • Laatst online: 19-10-2025

Technicality

Vliegt rechtsom...

1. Ik heb zelf geen ervaring met directx en C#, maar dat lijkt me verreweg het meest logisch. Hoe ga je dat doen als je een keer netwerkcode wil implementeren?

Verwijderd

1) What de HELL heeft dit met C# te maken?
2) Tevens gaat het hier ook niet omDirectX, maar om Direct3D.
3) Denk even na :Z.

  • Mischa_NL
  • Registratie: Mei 2004
  • Laatst online: 01-02-2023
geef even antwoord je weet waar het om gaat. mierenneuker met je kutsmilies.
Direct3D is onderdeel van DirectX dus wtfuck, loop me niet op te stoken.

editje.

Voor de mensen die echt punt-komma-zeiken:
Het is Direct3D.

[ Voor 21% gewijzigd door Mischa_NL op 11-05-2006 02:05 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-02 01:27

.oisyn

Moderator Devschuur®

Demotivational Speaker

Tja, als je niet normaal kunt doen gooi ik je topic wel gewoon dicht. Daarnaast zou je je ook gewoon even kunnen verdiepen in de materie, er is zat over geschreven.

Emiel heeft gelijk (muv het D3D gedeelte, daar heb jij weer een punt). Dit heeft niets met C# noch met DirectX te maken, maar gewoon met 3d computer graphics. Bovendien had je je probleemstelling wel wat beter in de topictitel kunnen vermelden.

Je relaas slaat nergens op, omdat je de wereld niet echt beweegt. Wat je doet is een transformatie bouwen van worldspace naar cameraspace. Elk object heeft z'n eigen space, en matrices zijn transformaties tussen die spaces. De videohardware verwacht coordinaten in cameraspace, omdat je vanuit dat referentiekader wilt renderen. In welke space jij je objecten beweegt doet er in feite niet toe, als je de complete transformatie van objectspace naar cameraspace maar kunt achterhalen.

En typisch heeft elk object z'n eigen space, en een matrix voor de transformatie naar worldspace, en heb je ook weer een matrix voor de transformatie van worldspace naar cameraspace. De totale transformatie is dan gewoon het product van die twee matrices. Maar dat wil niet zeggen dat jij dat ook zo hoeft te modeleren, wellicht wil je wel alles opslaan aan de hand van de space van een wiel van een auto. Dit werkt niet erg handig, maar wiskundig gezien maakt het geen bal uit :).

Een beetje scenegraph library stelt je ook in staat om alle objecten in een boomstructuur aan elkaar te knopen. Elk object krijgt de transformatie van z'n parent mee, en heeft zelf ook weer een transformatie. Zo is in het simpele geval de wereld de root, en zijn alle objecten én de camera een kind van de root. Maar als je een sterrenstelsen zou willen modeleren, dan heb je misschien een groot zwart gat als root, de sterren als kinderen van de root, planeten als kinderen van de sterren en tot slot manen als kinderen van de planeten. Je camera hangt dan ook ergens in de boom, en om te kijken hoe je een willekeurig object moet renderen volg je simpelweg het pad van dat object naar de camera, en accumuleer je alle matrices die je onderweg tegenkomt. Zo kun je je camera dus onder een planeet hangen en zul je deze planeet altijd vanaf dezelfde plek bekijken, maar de rest (manen, zon, andere sterren) draait wel om je heen.

[ Voor 153% gewijzigd door .oisyn op 11-05-2006 03:32 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

voor een goeie tut:
zoek ff op craig direct3D tutorial op google

ASSUME makes an ASS out of U and ME

Pagina: 1