Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

Some background...

Sign in to follow this  


Currently I'm working on two parallell projects. One is a hobby 3D game engine project (FortiaEngine) and the other is a project about implementing rigid body physics and collision detection with the help of pixel shaders (GPURigidBody). The entries will be labeled as to which project they concern.

What has been done so far?


- Help librarys including basic classes for arrays, lists etc, as well as math things.

- Graphics engine library with the following current facilities:
* Scene graph internally organized by space and effects (for easy batching)
* Loading and saving of scenegraphs, and corresponding data (no editor at the moment, but textfiles can be used)
* Has all D3D code in one class enabling easy update from one dx version to another
* Is designed to work with shaders and effects and does batching automatically
* Cameras, Frustum Culling, Viewports and Lights
* User can add functionality without modifying the core classes by simply deriving from them in their application and overriding certain functions
* Newly added things include Animation controllers, Support for Hardware geometry instancing (or emulated if not supported), Transparent object rendering, Conversion of .x meshes including skinning information, Different texture types (2D, Cube, Volume), Texture Shader support.
* 2D drawing and custom text support (not entirely using ID3DXFont)
* Easy to use! About 15 calls and a complex scene can be rendered with all optimization (like batching) done by the engine, although you can control this with the structure of your scene graph.
* BASICALLY: The graphics engine can at the moment be used to render about any effects that you might want to implement with your shaders. The only thing that is not yet added to the core 3d engine is shadow support. This is the next thing on the list, though...

- An application class that you can derive from to quickly get started, as well as a statemanagement system

- A windows control library for easy creation of windows API controls

- Drawing functions for custom GUI. Not yet using input though.

- Soon to come an extention library with classes that derive from the core classes and implement functionality like octree structures, level of detail, billboards, skinned animation etc.

This is my thesis project that I started about a month ago. It's about implementing rigid body simulations on the GPU. I know Havok already does it, but I'm not doing exactly the same...

At this point I have but sketched som ideas. The most difficult problem is how to do collision detection efficiently on the GPU. This was a hard one, but I finally came to a possible solution for a limited number of different geometrys (about 10). The rest of the rigid body simulation is based on a demo by NVidia (in their samples directory) simulating particle systems on the GPU, only I will extend it to a rigid body simulation.

I will need to test my ideas but theoretically they should work (taking practical limitations into consideration)...

More info about the projects will be filled in as things develop, and can also be found at FortiaGame.com.
Sign in to follow this  


Recommended Comments

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • 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!