Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

579 Good

About Sparkon

  • Rank

Personal Information

  • Interests
  1. Usually there is an explicit relationship between the resource and its creator ( ID3D11Device ) and during its lifetime is very unlikely to change, and in case it might need to change ( creation / destruction ) is way better ( IMHO ) to directly create a new instance. Thus i would approach the problem this way : class IResource { IResource(GraphicsContext& graphics_context) : m_graphics_context { graphics_context } { } protected: GraphicsContext& m_graphics_context; }; obviously the GraphicsContext& contains Device, immediate context, feature levels and more ( it can also be a POD ). Since you directly manipulate resources w/ no handles inbetween copying resources is debatable .   I´m personally a big fan of references, but still you might go aswell with pointers. References disallow invalid ( null ) instances but at the same time they do have some ¨¨problems¨¨ ( if you wanna call them that way ) with copy constructors.   If you think the resource is going to be recreated different times by different devices, just ( as said already ) pass the graphics context or the device to the create() method. Since i´m sort of promoting references, pass the parameter as reference <3 and keep it as a pointer inside. ( we are using C++ afterall )   Happy coding
  2. I'll try to address your question the best way i can ( i'm not the most experienced around here) ^^ : - Direct3D11 should be available from Vista SP2+ if i'm not wrong. Choosing whether to support Windows XP or not is totally your choice, i would probably read some hardware surveys ( http://store.steampowered.com/hwsurvey | http://stats.unity3d.com/pc/index.html ). Yes, there are still many peoples running Windows XP ( unfortunately ) - I'm sorry i'm not aware of any reference article that covers 'doing 2D with D3D', still, as i wrote the previous post and if you start googling around, most of the answers will reference : - Textured quads - GS - Batching and this is exactly how XNA would do it ( not GS tho ) [ https://directxtk.codeplex.com/SourceControl/latest#Src/SpriteBatch.cpp ] - Direct3D vs OpenGL on Windows, argh this question ^^ Don't like this terrain... I cautiously tell you that D3D 'should' 'is supposed' 'might' be better than OGL on Windows platform mostly due to hardware support, but Valve wouldn't agree with me ( http://blogs.valvesoftware.com/linux/faster-zombies/ ) [ I took 'better' for 'faster' ]. I personally prefer D3D API to the OGL's one, but that's a matter of taste. - I'm just going to mention this library, i don't think it really fits your purpose and i hate its API, but you've probably heard of it and you will : Direct2D. Developing games / wrapping it up is quite painful for the way it is structured, but undoubtedly has a crazy amount of features. If you code your entire game with no wrapping, porting it to OpenGL is probably a hassle, if you start wrapping D3D calls / resources it will not be that hard to port it to OGL, not saying it is easy tho. Another road you might take if you are going to port the game later is just dive into OGL and leave D3D aside for the moment. Hope i was helpful, and you if need anything else, don't hesitate to PM me. Happy coding
  3. Hey, I'll just point out few things :   - XNA bottleneck : As long as the game runs fine (60+ fps ) using XNA i don't see the need to switch to D3D for performance reasons. If you have a real bottleneck is probably somewhere else or you draw something like tens of thousands of particles in an inefficient way. The statement [ xna is working much slower than directx ] well.. it's too wide, it is true for obvious reasons, but at the same time, this performance difference should be negligible for the most part.     - XNA / C# D3D / C++ : by switching to D3D9 i guess you were considering moving to C++ ( but you might be talking about Managed DX ). Learning D3D will be fulfilling in many ways, but not a wise choice if your purpose is to complete the game as soon as possible. C++ is a whole another language and will massively ( usually, don't take my word for wisdom ) increase your development time.    - D3D9 : there is a new, much better ( depends ? ) version called D3D11 that provides backward compatibility with D3D9 hardware http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876(v=vs.85).aspx   - 2D with D3D : after you've properly chosen to use D3D11 and start looking for 2D help people will tell you : 2D is nothing else than rendering textured quads, well that's it really. There are many techniques that you can use ( naming Geometry Shaders, Instancing, Batching ) but it all revolves around 2 triangles being textured. If you come from XNA i'd really tell you to check out DirectXTK ( https://directxtk.codeplex.com/ ). It provides some XNA-like modules for D3D11. If you still don't want to use it, just dig in the source code to learn more.   - Platform games : same concepts apply to D3D   Have fun & happy coding : )
  4. Thank you for the answer, as soon as i get home i'll make a couple of tests with the particle engine! Btw great blog, bookmarked :) Happy coding !
  5. Thanks from me too Spiro! I've read your article and i was interested in the DX9 32 bit padding, since XNA is DX9 based it is supposed to work too, isnt it? If you had any experience with it i'd be glad to hear from you :) Thank you for your time and happy coding!!
  6. Sparkon

    [XNA] COLLADA Deled3D editor

    Thank you for answering me, that's a good idea, i'll probably go for that and write a content processor that will discard all the vertex data.     Thank you and happy coding!
  7. Hello guys, lately i started working on my game's levels and i found Deled3D to be an amazing product, extremely easy to use, fantastic material manager, but i had only a simple problem regarding custom models and exporting :    Every time i export the scene in any format, for each mesh it saves all it's data ( vertices, normals, UVs and more ) while i only want it to save either the models name or it's directory.  If i didn't make myself clear, here's what i would like :  Instead of :  <geometry id="mesh2-geometry" name="88_trailer2"> <mesh> <source id="mesh2-geometry-position"> <float_array id="mesh2-geometry-position-array" count="7071"> <!-- HERE ALL VERTICES,NORMALS, UVs --> </float_array> </source> </mesh>   I'd simply like : <geometry id="mesh2-geometry" name="88_trailer2"> <mesh> <source id="mesh2-geometry-position" src="MODEL NAME or PATH TO MODEL" /> </mesh>     Is there any way to achieve it without manually doing it after exporting the scene ?. This also dramatically decreases the file's size and allows me to reuse models across different scenes without reloading them each time. Thanks for the time and feel free to suggest other tools aswell!    Happy coding!
  8. Sparkon

    Who are your developer heros?

    I'd say Michael Morhaime Blizzard's co-founder and Carmack ofc. But as Buster2000 said, not for their programming's skill, instead for what they created!.
  9. Another kind of map that you might want to use ( it depends on the game ) are glow maps. Used to make glow only certain parts of the models. They are mostly used in futuristic looking games, but nonetheless they can improve the game's style instead of using full glow on models. They are very often monochromatic, thus they require one channel. The glow's color is usually extracted from the Happy coding !
  10. Sparkon

    Deferred rendering

    You absolutely got the point, i will convert all the shaders for deferred rendering and move on.  Sorry if the question was confused, but my mind is too. :) Thank you and happy coding!
  11. Sparkon

    Deferred rendering

    I'm sorry if i didn't make myself clear. The texture in pass1 is the complete scene rendered without lighting but with the shaders used in the forward lighting model, so they are not refactored for the GBuffer. I then take that texure and draw it fullscreen after having set the GBuffer. Thus i continue with the normal deferred process. I wanted to know if there was a way to use the shaders used in the forward lighting model without rewriting them for multiple render targets output.
  12. Hello! I'm working on a deferred rendering engine ( lighting ) for my game. The approach is really simple :    Set up multiple render targets for color,specular,depth etc.. (GBuffer)  Draw geometry Resolve render targets ( GBuffer) Draw lights I'm drawing the geometry with the GBuffer shader whose pixel shader returns the different render target values, but what if i wanted to use "custom" shaders for the geometry that don't return the values for the multiple render targets : the "normal" shaders.   My idea would be : Draw geometry with "normal" shaders to a render target Set up multiple render targets (GBuffer) Draw the previously rendered scene once again  Resolve render targets (GBuffer) Draw lights This approach shouldn't be very memory expensive and seems quite simple, but i'm interested in knowing how other people tackled this problem and if there are "better" solutions. If my idea is completely wrong please tell me!   Thank you for your time and happy coding!  
  13. Sparkon

    What does 2.5D actually mean?

    Since i'm working on what i suppose it's a 2.5D game i thought i could give my very honest opinion. In my game everything it's 3d except that since it's a space shooter and camera angle is fixed i work out all the collision and "physics" in 2D because it saves a LOT of computation time even though i have to "manually" project the points.   I still think that Trine & Trine 2 ( great games btw ) are another interpretation of 2.5D and Sacred ( if i remember correctly ) is isometric but with 3d models and i personally consider it 2.5D.    Doom... i wouldn't consider it 2.5D it's neither 3D nor 2.5D. I would put it in the Raycasting/fake 3D category.         Of course it depends on the game, but for some 2.5D games if a part of the model is "missing" it can be gamebreaking for performance.     Just my two cents, please correct me if anything is wrong.
  14. Hello guys, i'm working on a little game that i plan to release on XBox, but i have a little problem. I have a .fbx model that has different textures for different meshparts, if i use basic-effect XNA automatically assign the right texture to the right mesh part, but when i use a costum effect i don't know which texture to assign to the right mesh part. I've been googling for awhile, but most of the question are either not-answered or answers are completely useless.  Now to resolve this problem i've thought about 3 solutions, but i have no clue how to implement them :    I ) Hard-coding the texture for each meshpart, saving them in a configuration file. I don't like this approach because it's not dynamic and it's way too long   II ) Compressing the textures into a single texture. This won't be bad, but i don't know where to look for such tool III ) Extracting the texture information from the model. This is IMHO the best solution and what i should try to do, since BasicEffect knows it there must a be a way to get it from the .fbx file, but really i have no clue.   Thank you again. I'd be glad if you could provide a code sample or link me a paper or tutorial. 
  15. Sparkon

    Best format to start on?

    absolutely! Python is a great language to start with :)
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!