documentation:planning:todo
This is an old revision of the document!
Table of Contents
TODO
‘Small’ and needed technologies
- Implement SSAO (Screen Space Ambient Occlusion)
- Fix unrealistic water
- Implement Parallax mapping
- Create spot lights + shadow mapping
- Create Depth of field
- Create HDR lighting
- Light beams / light shafts
Things to do
- Occlusion culling
- Pre-Z pass
- Maybe use NShader: visual studio shader syntax highlighting. Update Cascaded shadow mapping using this : http://www.geeks3d.com/20100518/nshader-visual-studio-syntax-highlighter-for-glsl-hlsl-and-cg-languages/http://the-witness.net/news/?p=113
- Also think about using a geometry buffer implementation (see DirectX10 module) http://www.wolfgang-engel.info/blogs/?p=123
- Make a XML helper library, which uses the exact same functions for loading as for saving. This way save and load code will be equal. (Make sure this is possible first, I don’t think so actually)
- Take a Serious look at Light Pre-Pass rendering: http://www.m4x0r.com/blog/2010/05/specular-color-in-light-pre-pass-renderer/
- Implement PSD reading: http://www.imagemagick.org/script/index.php . Use System.IO.FileSystemWatcher for change detection.
- Bake a large scale texture for the terrain to counter the tiling problem + major performance boost.
- Terrain: Use the GPU instead of the CPU for weightmap and heightmap painting.
- Better multitexturing: Terrian: implement noise creation. Implement turbulence noise with multiple octaves. Turbulence noise here: http://www.m4x0r.com/blog/2010/05/blending-terrain-textures/http://filougk.blogspot.com/search?updated-max=2007-02-04T15:52:00%2B01:00&max-results=7
- Add, besides Geomipmapping, a method to the terrain engine that creates low detail models from an entire piece of terrain, with different lods, for use in distant images.
- Create impostor system. Also think about the depth twiddling algorithm. The basic idea here is to pick a near and far plane of 0.1-400, render all objects in that range, and then pic a near and far plan of 400-20000 or more and render all objects after that, behind the already existing pixels. This should be possible by, in the second pass, setting all the depth values of pixels rendered in the first pass to the near plane of the second pass (which is a value of 0) and leaving the other pixels at a value of 1 (far plane). This should allow for dramatically GINORMOUS sight ranges. this technique has been found and suggested at blogs too. Implement it !
- For the editor, correctly implement the Black & White hand-style camera movement correctly. The terrain editor is supposed to use this, but the rotation currently centers at the hand when rotating, this should not be like that. Note: In black & White, the hand moves like a cursor in screen space, so world movementspeed is not lineair with mouse speed.
- While we’re at it, implement Black & White style object pickup and dropping on the terrain.
- Add functionality to run in a fixed frame mode, rendering the frames to files for video creation. Later on, also add functionality to disable rendering and record the audio, so it can be multiplexed with the recorded video later.
- Check this pdf: 'Deferred_Shading_Tutorial_SBGAMES2005.pdf' for optimizations
- Apply this fix to the depth bias for shadow mapping: http://www.gamedev.net/community/forums/topic.asp?topic_id=525805
epsilon = 1 / (d*d - 2*d);
- Implement this ocean: http://www.gamedev.net/blog/715/entry-2249487-ocean-rendering/
Things to do in long term
These things just HAVE to be implemented, but are not yet essential for the basic game
- Create functionality for Decals.
- Upgrade the terrain like the frostbite engine in this article : http://developer.amd.com/media/gpu_assets/Course28-Advanced_Real-Time_Rendering_in_3D_Graphics_and_Games_SIGGRAPH07.pdf
- Implement physics on grass, force fields like spells and shields, flying objects, … should affect the grass (ok, this is quite essential :D)
- Deferred rendering
- Voxel terrain for cliffs
- Implement Linear-Speed Vertex Cache Optimisation as in http://home.comcast.net/~tom_forsyth/papers/fast_vert_cache_opt.html (used by wolfire)
Cool things to do in long term development
These are things that definitely should be in The Wizards but are not essential and entirely optional, however in essence part of what should be The Wizards.
- Create a creature morpher. (Use skeletal info to match destination character vertices to source character. Create a special model with 2 sets of position and texture data, and then use vertex shader to tween between the 2)
- Think about a cliff generater
documentation/planning/todo.1307366904.txt.gz · Last modified: 2024/08/26 13:25 (external edit)