View Single Post
Old 29-08-2008, 21:17   #4 (permalink)
Name, Title, Location meow
Kissed all the girls

The twighlight zone
Maldives
Avatarmeow's Avatar
Awards
Mood
Posts3,295
Karma meow is amazing.
meow is amazing.meow is amazing.meow is amazing.meow is amazing.meow is amazing.meow is amazing.meow is amazing.meow is amazing.meow is amazing.meow is amazing.meow is amazing.meow is amazing.meow is amazing.meow is amazing.meow is amazing.
Pu8,005.21
Cat 3 Gift Box Medal Single Red Rose Flowers Cake French Fries litebeer Apple Superman Heart Love Hearts Cash Love Hearts Tissues

Default

yep ive used that site a lot, it has great tutorials, also the directx software development kit SDK is a good place to look.

it realy depends what you want to do with directx.even doing the stuff the simple way like drawing individual points is quite a lot to learn and triangles and meshes and lighting etc. the trouble is that when you reach a certain point all that becomes useless and you have to make sure you use more eficient function calls wich are totaly diferent.

then once you get even more items to draw you have to re organise your code yet again to make sure all draw operations are joined together in batches of primitives all with the same render state and textures. then you have to make sure any translucent surfaces are drawn last etc.

I have a module wich is about 1000 lines wich does almost all the low level stuff you ever need to do with directx and any calls to it do not need to reference directx so it can easily be replaced when directx is made obselete.

the higher level module deals with all the sorting of objects into batches etc. I spent ages trying to get various 3d graphics engines to do exactly what I wanted. but each of them had problem with one of the things i wanted to do.

with c++ theres quite a lot more work, as you need to ensure you free all memory etc at the right time wich with directx is a heck of a lot of work. when an other aplication grabs the device many of the data items you sent to the device become invalid such as textures and render surfaces etc, and its a lot to deal with as there are so many diferent types. once youve done that youl probably have many many thousands of lines of difficult to debug code that causes memory leaks and illegal memory access errors.

with c# the memory management manages to cope with it all quite well.

with c# you can get a free microsoft development system and with the xna wich is similar to directx you can write your own game in a few easy lessons. however xna is a real pain if you want to have multiple 3d viewports.

directx is also awkward to use becuase only one aplication can use it at a time, at least easily anyway.
with opengl there is no such limitation.

although opengl and directx look fairly diferent at first, once you start to use the batch processing functions theres actualy little diference between them. exept of course directx is a lot more work. niether are realy OOP friendly.

I would stronlgly sufggest looking at the many 3D engines out there some are truly fantastic.
the ones I was looking at were all open source such as Irrlicht Engine - A free open source 3d engine
meow's Sig:"Some people see things as they are and ask `Why?'. I dream of things that never were and ask `Why not?'. "
"science without religion is lame, religion without science is blind"
Toolsmeow is offline
Reply With Quote