32 lines
996 B
Plaintext
32 lines
996 B
Plaintext
/* SPDX-FileCopyrightText: 2011-2022 Blender Foundation
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0 */
|
|
|
|
#include "stdcycles.h"
|
|
|
|
shader node_ambient_occlusion(color ColorIn = color(1.0, 1.0, 1.0),
|
|
int samples = 16,
|
|
float Distance = 1.0,
|
|
normal Normal = N,
|
|
int inside = 0,
|
|
int only_local = 0,
|
|
output color ColorOut = color(1.0, 1.0, 1.0),
|
|
output float AO = 1.0)
|
|
{
|
|
int global_radius = (Distance == 0.0 && !isconnected(Distance));
|
|
|
|
/* Abuse texture call with special @ao token. */
|
|
AO = texture("@ao",
|
|
samples,
|
|
Distance,
|
|
Normal[0],
|
|
Normal[1],
|
|
Normal[2],
|
|
inside,
|
|
"sblur",
|
|
only_local,
|
|
"tblur",
|
|
global_radius);
|
|
ColorOut = ColorIn * AO;
|
|
}
|