Currently I’m working on two side projects.
- DirectX 11 based engine
First one is engine/framework based on directx 11. At the moment framework includes basic code for renderer, camera, particles, skinned animations, visibility system, mesh importer and wrappers/helper classes for directx const buffers, rendertargets, textures etc. I use visual studio 2012, windows graphics sdk and cpp11. I will publish full source code soon. I use three middlewares: assimp, pugiXml and AntTweakGui.
Intresting parts:
- my implementation of shadow mapping using “Rectilinear texture warping” technique (http://broniac.blogspot.com/2012/06/rectilinear-texture-warping-for-fast.html). It uses compute shader and tesselation.
- dispacement mapping<
- input system implemented using buffered raw input which is handled using another thread and synchronized using single producer single consumer bounded queue
- simple gpu skinning implementation with loader based on assimp library
- simple particle system using geometry shader
- simple terrain with tesselation
- memory pool and lru cache
- simple, macro-based c++ reflection system + helper class to reflect shaders used to validate cbuffers (not finished)
Work in progress:
– thread pool and asynchronous resource loading
– tweaks and optimizations of rtw shadow mapping
Plans for near future:
– tile-based deferred renderer
– clustered deferred renderer
– move particle system calculation to compute shader
– adaptive shadow maps
Plans for future:
– water
– athmospheric scattering
– lod system for terrain
– physx and apex integration
- CPU profiler using detours
The second side project is cpu profiler based on this presentation: http://twvideo01.ubm-us.net/o1/vault/gdc08/slides/S6468i1.jpg . The main idea is to use detoruing: intercept function call and return and place there my own code to measue and store timing. Functions are patched in runtime. It uses map files or pdb files to read functions addresses so it’s fully dynamic: no need to mark fragments of code with macros. I’m writing my own detour libarry in c++ and assembly. I hope i will release first version in month or two.
Leave a comment