Development

Work Projects

DCS World VFX System - Senior Graphics Programmer


  •  Research global illumination techniques for real-time rendering using machine learning. My algorithm allows updating probe-based GI just in 0.1ms on modern GPU using neural networks and ideas from the NRC paper. It supports dynamic geometry and materials. 
  • Research of applying path-guiding for real-time application. Implemented a robust production-ready solution and wrote a paper, which was presented on Eurographics 2022
  •  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. 

Video  Steam

MSU Graphics & ML Researcher

  • Supervising a group of students for researching the application of tiny MLP Neural Networks for real-time computer graphics problems (Global Illumination, Differentiable Rendering, Geometry approximation, Generative networks and so on).
  • Worked on preparing research proposal documents for getting funding from private companies and participated in negotiations (Huawei, Samsung and etc.)
  • Report on some topics linked with AI and CG


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