Konstantin Kolchin,

Senior Software Engineer

Align Technology, Inc.

Past Projects

Mafia II

The 2K Czech Company and NVIDIA had a joined project for the game "Mafia II," a sequel of the popular game Mafia. The NVIDIA part of work included (1) adding PhysX (a proprietary real-time physics engine middleware SDK belonging to NVIDIA) to the game; (2) adding NVIDIA’s technology for 3D visualization (3D VISION); (3) optimization of game performance – in particular, on multi-GPU configurations, known as SLI (a brand name for a multi-GPU solution developed by NVIDIA for linking two or more video cards together). I was the devtech lead for this title (devtech stands for Developer Technology). My personal responsibilities were to assure good competitive performance (the framerate on NVIDIA hardware should be higher than on competition), high-quality stereo and proper SLI performance. The results of my work are as follows.


SLI scaling changed from negative, -30%, to positive, 70% (which means that two-GPU performance is 1.7 times greater than that of one GPU). The game’s stereo quality received the highest possible rating, 3D Vision Ready. I am especially proud with rainy scenes. With stereo glasses on, you can see that rain drops are not only in 3D, but they are transparent – you can see electric signs through them. Also, it took a lot of efforts to make fuzzy reflections in wet roads look 3D.



The image courtesy of the TechGremlin web site.

CUDA-Based Simulation of Flocking

Simulation of coordinated animal motion, such as bird flocks and fish schools, has been attracting attention of people working in the area of artificial intelligence since Craig Reynolds wrote the first program for simulating flocking in 1986. The goal of the project is to do CUDA-based simulation of flocking. The first task I chose is to model formation of V-shaped flocks by big birds, such as geese and cranes. I used the paper “V-like formations in flocks of artificial birds” from Artificial Life, Vol. 14, No. 2,  2008. The CUDA-based simulation in my implementation is four times faster than the CPU one when the number of birds is 25. CPU is Core 2 Duo T7300, GPU is Quadro FX570M. The sample “V Flocking” is available at the NVIDIA web site (http://developer.nvidia.com/cuda-toolkit-40).



Surface Curvature Effects on Subsurface Light Scattering

Most of the physically based techniques for rendering translucent objects use the diffusion theory of light scattering in turbid media. The widely used dipole diffusion model (Jensen et. al., 2001) applies the formula derived from that theory for the planar surface to objects of arbitrary shapes. I investigated how surface curvature affects the diffuse reflectance from translucent materials. I solved the problem for a sphere analytically.


A spherical potato (left) and a marble sphere (right) illuminated with a stencil beam, which enters at the image center, normally to the image plane. Each of the spheres is rendered using the exact solution proposed (left part of a sphere) and the dipole diffusion model (right part of a sphere). The results are described in K. Kolchin, “Surface Curvature Effects on Reflectance from Translucent Materials,” Communication Papers Proceedings of the 18th International Conference on Computer Graphics, Visualization and Computer Vision 2010 – WSCG2010, pp. 169-172.

Drawing of Julia sets in the Mandelbrot CUDA sample

I added drawing of Julia sets to the “Mandelbrot” sample in CUDA SDK (CUDA is an acronym for Compute Unified Device Architecture). The appearance of a Julia set depends on a complex parameter. I connected its value to the position of the mouse cursor. As a result, the shape and color of the Julia set changes as you move the mouse over the screen.


Curvature-Based Shading of Translucent Materials

For PICA200 I developed a kind of “physically based wrap lighting” for rendering translucent materials. It is used in Nintendo 3DS – see the screenshot below.



Image courtesy of http://www.g4tv.com.

The idea of the method is described in

K. Kolchin, Curvature-based shading of translucent materials, such as human skin, Proceedings of the 5th international conference on Computer graphics and interactive techniques in Australia and Southeast AsiaGRAPHITE 2007, pp. 239-242. PPT


Rendering of Japanese Lacquer Ware

Algorithms and methods for rendering objects with spatially varying BRDFs on the example of the Japanese lacquer ware were developed and reported in

R. Ďurikovič and K. Kolchin, Rendering of Japanese Artcraft, Proceedings of Eurographics 2002, Short Papers, Saarbrucken, Germany, September 2-6, 2002.

R. Ďurikovič, R. Kimura and K. Kolchin. Real-time Visualization of Japanese artcraft, Proceedings of the IEEE Computer Graphics International - CGI2003, Tokyo, Japan, pages 184—189, 2003.

The 3D model and textures are courtesy of Galina Pasko (gpasko@iti.kanazawa-it.ac.jp).

More images and real-time visualization can be found on Prof. Durikovic’s web page -http://www.sccg.sk/~durikovic/projects/urushi/index.html.


Inverse Engineering for Metallic and Pearlescent Paints

The work on simulation of metallic and pearlescent paints was started at the Keldysh Institute of Applied Mathematics in 1996. An inverse problem for metallic and pearlescent paints (finding a paint composition from paint appearance represented as Bidirectional Reflectance Distribution Function) has been studied, a solution for a two-layer paint model was published in

S. Ershov, R. Ďurikovič, K. Kolchin and K. Myszkowski, Reverse engineering approach to appearance-based design of metallic and pearlescent paints, The Visual Computer, vol. 8-9, No.20, pages 586-599, Springer-Verlag Berlin Heidelberg, Germany, 2004.

Figure 2 shows a measured paint on a 3D model of a car (left) and rendering of BRDF calculated from composition found by solving the inverse problem for a two layer paint structure (right). 

Measured paint on a 3D model of a car (left) and the visualization of BRDF calculated from composition found by solving the inverse problem for a two layer paint structure (right). 

The two-layer paint model was used for development of software for paint design. It was reported in

S. Ershov, K. Kolchin and K. Myszkowski, Rendering Pearlescent Appearance Based on Paint-Composition Modeling, Computer Graphics Forum (Proceedings of Eurographics 2001), Manchester, UK, September 3-7, 2001, Blackwell, Oxford, 2001.


Lighting Simulation for Colored Reflector Design

The project “Lighting Simulation for Colored Reflector Design” was done at the University of Aizu in 2002 for a company producing special colored finishes for lamp reflectors. These finishes are used to color light coming from lamps in stores with the aim to affect the appearance of goods in a desired direction, such as to stress freshness of fish and meat. The projects included

  • perceptually correct visualization of lighting simulation results
  • spectral lighting simulation for a lamp with a reflector and an object lit up by them
  • rendering of optically complex objects upon spectral lighting simulation 

For the first problem, the model of human visual system by Pattanaik et al. (reported on the conference Siggraph 1998) was implemented. Fig.3 below illustrates the situation when an object (gray fish) is lit up by a standard incandescent lamp (without any special reflectors). When the results of lighting simulation are shown on monitor "as is", that is, without inclusion of perception effects, the resulting image looks too orange (left), while after applying the human vision model, it looks more realistic, which simulates 'chromatic adaptation effect.' The effect refers to the tendency of the human eye to consider prevailing illuminant as white. 

Simulation of chromatic adaptation effect. 

The second and third problems were tackled by developing photometrically correct combined RGB-spectral Monte-Carlo ray tracing.


Simulation of Glare Effects of Photographic Filters and Stops

R. Durikovic and K. Kolchin, Physically Based Model of Photographic Effects for Night and Day Scenes, The journal of Three Dimensional Images, 15, 4, 119-124, 2001.