Skip to content

Unity implementation of the paper "Real-time non-photorealistic animation for immersive storytelling in “Age of Sail”"

Notifications You must be signed in to change notification settings

leonardo-montes/AgeOfSail-NPR-Unity

Repository files navigation

AgeOfSail-NPR-Unity

Unity implementation of the paper Real-time non-photorealistic animation for immersive storytelling in “Age of Sail” (alt link).

Using Jasper Flick/Catlike Coding's Custom SRP Project as a base for the Rendering Pipeline.

Screenshot of the result in Unity.

Disclaimer: I want to emphasize that this project is an experiment and does not prioritize aesthetic appeal or extensive comments of the rendering pipeline code. If certain elements are unclear or if you encounter issues, please feel free to reach out for clarification. Additionally, be aware that the code may exhibit poor memory management and excessive garbage collection allocation, particularly in the AoS Alternative Render Pipeline.

Implementation (based on the Paper):

    1. MetaTexture
    • 3.1. Texture scales and blend coefficients
    • 3.2. Approximate smooth UV gradients
    • 3.3. Compensating for radial angle
    • 3.4. Compensating for skew
    • 3.5. Orienting texture to indicate contour
    • 3.6. Compensating for contrast reduction
    1. Edge Breakup
    • 4.1. Edge inflation
    • 4.2. Animated line boil
    • 4.3. Compensating for camera roll
    • 4.4. Compensating for distance
    1. The Rendering Pipeline
    • Warp Pass
    • Shadow Pass
    • Blur Pass
    • 5.1. Shadow shapes, inner glow, and indication
    • 5.2. Color control
    1. Applications
    • Not planned.

Additions:

  • Mesh importer that creates proper normals for edge inflation (especially for facetted meshes with non smooth normals).
  • Mesh importer support for open meshes (like planes, tubes, etc.).
  • Alternative render pipeline (AoSA RP) supporting colored lights.
    • supports up to 10 lights (directional, point, and spot) with blurred shadows and specular highlights.

Screenshot of colored lights in Unity.

Chart of the AoSA rendering pipeline. Blue indicates a rendering pass, and yellow an image-processing pass.

About

Unity implementation of the paper "Real-time non-photorealistic animation for immersive storytelling in “Age of Sail”"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published