NormalGen: Interactive Normal Map Generation Tool

NormalGen: Interactive Normal Map Generation Tool

Overview

Overview

Overview

Rendering a normal map out of a 2D texture has been a long-existing hindrance for artists to create 2D animations effectively, often leading to increased production costs and limited dynamic scenes. Traditional methods, which are tailored more towards 3D rendering, fail to address the unique needs of 2D sprite-based artwork, often resulting in unsatisfying outcomes.

We introduce NormalGen, an innovative GUI tool that allows artists to generate normal maps through a user-friendly interface, offering the ability to define segmentations and normals interactively. This approach particularly excels on smooth surfaces by enabling more precise control over lighting effects, although further refinement is needed to handle hard edges effectively. NormalGen provides a practical solution that bridges the gap between 2D artwork and dynamic scene rendering, improving both the efficiency and quality of 2D animation production.

This is the final project for "Computation Content Creation" Course (CS6682) at Cornell University by Yumeng Jin, Barry Lyu, and George Zou.

Key Features

Normal Interpolation

A key component of our method is to interpolate vectors at sample points to an entire surface. We use Gaussian RBF Interpolation for its smoothness, locality, and non-linearity, providing excellent approximations for curved surfaces.

Mask Segmentation

We implemented two popular segmentation methods to deal with different segment scenarios. For simple, uniform surfaces, we incorporated flood-fill, for more complex surfaces that might be the same color, we use the SAM predictor. Users can switch between the two segmentation methods and choose the ones that work the best for them.

Frameworks

Frontend: Python

Image Segmentation: SAM (Segment Anything)

Ithaca, NY

Ithaca, NY

Ithaca, NY