My coursework for my DirectX module this term calls for me to create a small scene rendered using DirectX. I struggled for quite a while with ideas for what sort of scene to create, until today settling on the idea of a space scene. In today's blog, I'll cover my plans for this scene and what features will need to be added. I'll give updates in the future as I work on the scene.
For the basics, I plan to have a small solar system with planets rotating a sun at different speeds. The sun will serve as a light source. The viewer will be able to move around the scene and view it from different angles and locations.
In class, we've already accomplished several of the basics:
- Spherical model loaded in
- Texture loaded for model
- Directional, ambient, and specular lighting coded
- Input processing added
In addition to these, I will need to add several features to create my minimal scene:
- Multiple objects with models and textures loaded in at once
- Movement of objects
- Input processing to catch movement keys
- Movement of camera (player)
- Light comes from a point within the scene (direction vector depending on location relative to sun light source) rather than an external point (single direction vector the same for all objects)
With these features, I will have what I consider a minimal functioning scene. Once this is finished, I can build on it to make a more complex and interesting piece of coursework.
The Fancy Stuff
From the basics described above, I will continually add features to create a more interesting scene. These might include some of the following:
- Sky-box - a background of stars and interesting space scenery
- Asteroid field - more interesting models than just spheres
- Space station - similarly, more complex model, perhaps with animation (rotating wheel)
- Comet with ice trail particle effects
- Space cloud particle effects
- Fire effects around sun
- Spaceship UI overlay
- Lens flare - possibly an actual realistic reason for lens flare, seen through a spaceship wind-shield while looking at the sun!
- Bloom - similarly, from looking at the sun
Blogging About It
I'll be keeping a development journal here on the blog for both this and my other coursework. This will help me stay on track with my coursework, assist in me in my final post-mortems of my work process, and I hope be an interesting insight into my work process.