Static helper that creates two non-networked PointLight GameObjects for character portraits, one key light and one fill light, with positions, radii, colors, and shadows disabled.
namespace CharacterEditor;
/// <summary>Soft portrait lights. Native skin normals provide shape shading;
/// point-light cube shadows produce visible triangular self-shadow artifacts on the human mesh.</summary>
public static class CharacterStudioLighting
{
public static void Create()
{
var key = new GameObject
{
NetworkMode = NetworkMode.Never,
Name = "Portrait key"
}.Components.Create<PointLight>();
key.WorldPosition = new(80, -70, 120);
key.Radius = 250;
key.LightColor = new Color(1, 0.88f, 0.7f) * 3;
key.Shadows = false;
var fill = new GameObject
{
NetworkMode = NetworkMode.Never,
Name = "Portrait fill"
}.Components.Create<PointLight>();
fill.WorldPosition = new(-50, 70, 90);
fill.Radius = 200;
fill.LightColor = new Color(0.5f, 0.65f, 1) * 2;
fill.Shadows = false;
}
}