Code/CharacterKit/CharacterStudioLighting.cs

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.

Native Interop
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;
	}
}