• Stars
    star
    302
  • Rank 138,030 (Top 3 %)
  • Language HLSL
  • License
    MIT License
  • Created almost 4 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A single-component, GPU-based universal ambient occlusion and bent normal baker for Unity. The successor to my BNAO respository

Baker Boy

Ambient occlusion baked using BakerBoy Showcasing some advanced bent normal effects

--> Demo Executable <--

What is this?

A tiny GPU-based ambient occlusion and bent normal baker for Unity. It is the successor to my BNAO repository. In comparison it has a lighter feature set but outputs cleaner/more consistent results and should work in any render pipeline.

How do I use it?

Place the BakerBoy script on the root GameObject of the objects you would like to bake and press Find Renderers. Use the UI to manage which renderers should be part of the bake and press the Bake button. All settings live inside a BakerBoyConfig scriptable object.

What are bent normals?

Bent normal maps store the direction of least occlusion (in other words, the direction in which the most ambient light is coming from) in a texture.
They can be used to occlude cubemap reflections based on the view direction in a much more realistic way than just multiplying with an ambient occlusion term. They can also be used to attenuate light sources without shadows, and to get an ambient color value which more closesly resembles a ray traced result. For a visual example, check the demo executable linked at the top. For details on how to implement these effects in your own shader, check the function GetReflectionOcclusion in the file BakerBoyLighting.hlsl

Features

  • Supports baking ambient occlusion or bent normal maps from low-poly geometry, right in the editor.
  • Supports baking with alpha-tested materials.
  • Simple UI for managing which renderers are baked, included in occlusion testing or skipped entirely. Automatically groups output textures based on which materials are found.
  • Automatically uses normal maps present in original materials for a higher quality result.

More Repositories

1

BNAO

A tiny, GPU-based Bent Normal and Ambient Occlusion baker for Unity.
C#
529
star
2

MinimalAtmosphere

A minimal atmospheric scattering implementation for Unity
C#
459
star
3

MeshDecal

A simple mesh decal component for Unity
C#
210
star
4

TerrainPrettifier

A small GPU-based component designed to aid in cleaning and refining satellite/DEM based terrains directly inside Unity.
C#
185
star
5

CloudNoiseGen

A static utility class for Unity which handles generating and loading periodic, cloud-like (perlin-worley) 3D noise textures on the GPU.
C#
127
star
6

VolumetricTracer

A simple way to render soft, volumetric bullet tracers in Unity. Only needs a unit cube and a material to render and supports instancing.
ShaderLab
117
star
7

CapsuleOcclusion

Unity package implementing clustered capsule/character occlusion
C#
92
star
8

VertexColorBaker

A tiny vertex color baker for Unity that runs on the GPU, implemented as an AssetPostprocessor
C#
86
star
9

SDFGI

A Monte Carlo path tracer implemented on the GPU in Unity, using Signed Distance Fields.
C#
77
star
10

Celery

Mask
24
star
11

SphericalHarmonicsDev

ShaderLab
10
star
12

SphericalHarmonics

HLSL
9
star
13

TNM084_Lab3

A procedural lava ball in Unity
C#
5
star
14

BasicPlayerMovement

A super simple Unity demo featuring two ways of doing basic player and camera movement.
C#
5
star
15

AtomicSurfer

A super-rad surfing/shark shooter simulator.
C#
4
star
16

TextureProcessor

Static utility class for processing texture on the GPU.
C#
4
star
17

InfinitePain

A RougLike FPS created during a game jam
C#
4
star
18

LiTHeLan_Final

C#
3
star
19

LudumDare38

C#
2
star
20

iMat

Java
1
star
21

MoS

C#
1
star