E3D Updating Roadmap[TODO List]
Scene:
- Spend too much time on actual drawing, too many draw calls
- We should do instancing, since our entire structures is consist of it anyway
also we still should keep HZB in hierachical matter!Need more efficent batching, maybe we should draw subentitysWe can also optimize it by pretransforming stuff, but i doubt it will improve perfomance that muchour current batching also take significant time!(the good one must sort by texture sizes, maybe draw entire mesh if it has only 1 texture, instead of subsets, or even if texture in mesh are the same size, we can create texture array, then draw entire mesh.
since we using batches, we can just make all motion blur somehow separate from anim meshes- add BS/DS/RASTER to Pipeline so it would be easyier to set them, also add unbind at some form!
- Need CopySubresourceRegion to device With retieving data from textures+ugly variables in the end of function!
PhysX Must be move to DLL, and add base class for iScene->iP- PhysX Cloth MyCloth.cpp
- Continue doing HDR stuff
Since HZB sizes are constant, we can: (compress some texture into float4 buffer, then sample by doing much less reads[can improve GPU speed a lot]128 x 128 goes into 128×32 floats, we rarely use 256 x 256As was said before, we can dispatch in blocks(aka 1×128), we can even create few like that, that will use more threads and will be more parallel.idea about meshes, let’s make them behave like fx/efx structure, not some weird other format meshes[less pain for everyone[- We need something like container for singletons for iCore!
Need triple buffering in general- PhysX Rebuild into little classes(simplify scene and rest creation + if failed convex, create triangle[user_mode]
- Exponential Shadow Mapping(ESM)(Spot only)(try that with csm)(merge them with spot light class)
Make Bump/Parallax deffered(must have)(update deffered render)Update specular texturing with correct EyePos(we have better alghorytm to compute it)(update deffered render)- D:\Progs\CEGUI\SVN\cegui\src\ScriptingModules\LuaScriptModule\CEGUILua.cpp HAVE SOME GREAT PLUGINS TO ADD TO LUA!
- MOVE OUR CAMERA CONTROL TO SEPARATE CLASS![mostly make it dependable on actors like everything else]
Big need for optimizing animation controllerWE NEED REALTIME EDITOR, Mostly for physx, add some form of .settings or .physx file to mesh, where we define what will be convex, cloth e.t.c., define that with AntGUI
Secondary:
- MJP HDR With Light Adaptation + Auto exposure control(must have) + Our good old HQ downscale
- Make deffered shading DX11 Mode(only on compute shaders)
- Good Old Glare
- Make deffered particles
- Make person shoot[for now boxes] we already did that, redo it for the new system[abuse instancing]
- Add Instance Rendering[since we already have separation, we just need to render them in instance form]
Others:
e3d_TRFM switch back to good old axis, + must rorate celeste to 280 degrees, but all physics and trfm will work correctly and no z=-z;(must do)- Shadow occlusion[use radius based occluders selection]
- Snow Effect[isl_samir] deffered? we have few examples
Add selector for hzb(we have standart=near plane, radius based, and we need to test hzb and add proj based if required]
Editor:
Will rely on AntTweakBar, since it’ very easy to do- something like in linux, we may have sources to compile, and we just call update on them
or newest FBX we may need texconverer![in case of tga bug!]
ok, our mega idea about making HL like content manager, where everything will be like a resource
unifyed file_list of textures, with hash table inside[we can use tripple hash, whatever works]
unifyed file_list of meshes also with hash tables[this will allow us just add new mesh in level editor]
either compressed into single mesh object or something like that animated mesh+anims???
so our level editor, will just use matrices and stuff[and preview]
as bonus we can enable BBox for objects, so they can be placed on ground - Menu
Import From Mesh[loads from mesh, converts to TRGL form]
Add
Mesh – adds full mesh from meshtree
Light – adds light with settings
Billboard – adds billboard f
Sounds:
- Need to wrap CAudio/OpenAL
- D3DXKEY_CALLBACK aKeysWalk[ 2 ];
aKeysWalk[ 0 ].Time = 0;
aKeysWalk[ 0 ].pCallbackData = &m_CallbackData[ 0 ];
aKeysWalk[ 1 ].Time = float( pASWalk->GetPeriod() / 2.0 * pASWalk->GetSourceTicksPerSecond() );
aKeysWalk[ 1 ].pCallbackData = &m_CallbackData[ 1 ]; - D3DXKEY_CALLBACK aKeysJog[ 8 ];
for( int i = 0; i < 8; ++ i )
{
aKeysJog[ i ].Time = float( pASJog->GetPeriod() / 8 * ( double )i * pASWalk->GetSourceTicksPerSecond() );
aKeysJog[ i ].pCallbackData = &m_CallbackData[ ( i + 1 ) % 2 ];
} similar stuff can be used to repot actual sounds - Sounds can also be reported by physx callbacks[on first touch e.t.c.]
Water:
- Since water is deffered we can abuse geometry shaders[like for cubemap] in order to generate reflection[by using different matrices and killing everything out of something]
- refraction goes with separate camera with clipping or can somehow be done with geomtry shader [YES, GS can output clamp plane
so it should work, at least it will greatly reduces Draw calls]
Post:
- Transmittance as postprocess
- AlphaMapping
- GlossMapping
- Distortion
- MotionBlur VSync off fix
- good old Cubemap/env map
WordPress Tags: Roadmap,TODO,List,Scene,HZBUser,CopySubresourceRegion,PhysX,
Cloth,MyCloth,Continue,Rebuild,Exponential,Spot,Make,Bump,Parallax,
Update,EyePos,Progs,CEGUI,ScriptingModules,LuaScriptModule,CEGUILua,
SOME,GREAT,PLUGINS,MOVE,CAMERA,CONTROL,SEPARATE,CLASS,REALTIME,
EDITOR,AntGUI,Secondary,Adaptation,Auto,Mode,Glare,Instance,Effect,
AntTweakBar,BBox,Menu,Import,From,Mesh,TRGL,Billboard,Sounds,CAudio,
OpenAL,Time,GetPeriod,GetSourceTicksPerSecond,Water,Draw,Post,
Transmittance,Distortion,MotionBlur,VSync,Cubemap,remove,textures,stuff,
into,goes,create,idea,about,meshes,also,easy,convex,render,compute,form,settings,
where,define,shaders,already,abuse,just,work,radius,plane,file_list,hash,level,matrices,
adds,aKeysWalk,pCallbackData,m_CallbackData,float,pASWalk,aKeysJog