Work Projects

DCS World VFX System - Senior Graphics Programmer

  • Creating, improving, and optimization graphics effects
  • Developed flexible exporter and editor of particle effects with GPU and CPU optimization
  • Optimizing the performance of the game and the engine, profiling using NSight and VTune
  • Support private custom C++/LUA engine (rendering part)
  • Worked on PBR Volumetric effects and optimization of them for real-time.
  • Research global illumination techniques for real-time rendering using machine learning and neural networks

Video Steam

Hungry Jump - Lead Programmer

  • About 10 different screens with unique Ui + we have about 16 insects and every insect has its own unique behavior and style of flying. There Are 100 different levels, dozens of achievements. For saving and editing gaming settings we use Google Spreadsheets and our own python updater, which can parse all these tables (now we have about 60 tables and 1 million filled cells with strings, numbers, and math formulas). And you can compete with your Facebook friends in our game.
  • The flying system of insects is modeled by Markov Chain Random Walk simulations. Transitions matrices and some physical formulas of flying were set by game designer in Google Spreadsheets also
  • Game Designers have the ability to set timers of respawning insects, range of types of insects, max amounts, time to passing level, type of a plan, conditions for respawning each insect, and a lot more and more configurations for every level. Play in the game and you understand the variety of gameplay cases.
  • cocos2d-x + gafmedia for Flash animations

Video Google Play

Pet\Course Projects

Wooden PBR RayTracer based on ECS and SIMD

Wooden PBR Engine is a software unidirectional path-tracing researching engine for rendering 3D scenes based on C++17, SIMD Math Library, Data-Oriented ECS Design (similar to Unity ECS). It has some very good low-level performance metrics with regard to OOP RayTracers (PBRT). I implemented my own SIMD math library, ECS meta-programming library, allocators library for this project
Basic geometry shapes meshes generator ● Exporter models data from some formats ● Area lights ● Texturing ● Bilinear, Anisotropic samplers ● Filter functions for reconstruction ● Uniform, Stratified sampler ● Uniform sampling different geometric surfaces ● Dielectric, conductor fresnel ● BRDF, BSDF, Micro-surface distribution ● Linear Bounding Volume Hierarchy - hybrid building method based on surface area heuristic + fast Morton code 3d volume separation ● Multiple Importance sampling ● Several materials (plastic, metal) ● Blackbody emitters
Source Paper SIMD MetaMathSource MetaEcsSource

Wooden Engine

Wooden Engine is a 3D Graphics Renderer for rendering 3D scenes with minimal logic and basic non-PBR-shading with DirectX 12 backend. It was started as my first-course project. based on "Introduction to 3d game programming with DirectX 12" by Frank Luna and "Effective modern C++" by Scott Meyers
Basic geometry shapes meshes generator ● Exporter models data from some formats ● Drawing static opaque objects ● Drawing transparent objects ● Drawing alpha-test objects ● Texturing ● Point, spot, directional lights ● Ambient occlusion, specular light, diffuse ● LODs, Billboard (geometry shaders) ● Bezier curves\surfaces, tessellation ● Planar shadows ● Materials ● Normal mapping ● Resource manager ● Post Processing effects (blur for example) using compute shaders ● Simple water
Source Paper Video