---
id: wiki-2026-0508-lighting-and-composition
title: Lighting and Composition
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Lighting, Composition, Photography Lighting, Three-Point Lighting]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [photography, 3d, ai-image, lighting, composition, art]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
  language: prompt
  framework: midjourney/stable-diffusion/blender
---

# Lighting and Composition

## 매 한 줄
> **"매 좋은 이미지는 광원과 frame이 결정한다 — subject가 아니라"**. 사진/3D/AI image generation 모두에서 lighting (방향·강도·색)과 composition (frame 안의 시선 유도)이 quality를 좌우한다. AI 시대에는 prompt에 이 어휘를 넣어야 결과가 달라진다.

## 매 핵심

### 매 Lighting 3원칙 (Three-point)
- **Key light**: 주광원, 가장 강함, subject 한쪽에서 45도.
- **Fill light**: 그림자 부드럽게 — key 반대편, 1/2~1/4 강도.
- **Back/Rim light**: subject 뒤에서 — 윤곽선 분리, 깊이감.

### 매 Lighting 종류
- **Soft light**: 큰 광원, 부드러운 그림자 (구름 낀 날, softbox).
- **Hard light**: 작은 광원, 선명한 그림자 (정오 햇빛, bare bulb).
- **Golden hour**: 일출·일몰, 따뜻한 색온도 (3000K).
- **Blue hour**: 일몰 후 30분, 차가운 톤.
- **Rembrandt**: 코 옆 삼각형 highlight — 영화적.
- **Split**: 얼굴 절반만 — 드라마틱.

### 매 Composition 법칙
- **Rule of thirds**: 화면 9분할, 교차점에 subject.
- **Leading lines**: 길/난간/시선이 subject로 향함.
- **Symmetry**: 좌우/상하 대칭 — 안정.
- **Negative space**: 빈 공간 — minimalism, 호흡.
- **Framing**: 창문/문/나뭇가지로 subject 둘러싸기.
- **Golden ratio (1.618)**: 황금나선 spiral 따라 배치.
- **Foreground / midground / background**: 깊이 3단.

### 매 응용
1. 인물 사진 → Rembrandt + rule of thirds.
2. 풍경 → leading lines + foreground anchor.
3. 제품 → soft key + reflector fill (그림자 제거).
4. 영화 → motivated lighting (창·램프 등 화면 내 광원).
5. AI image → prompt에 lighting term 명시.

## 💻 패턴

### Midjourney prompt — cinematic portrait
```
portrait of a samurai, rembrandt lighting, side key light from left,
shallow depth of field, 85mm lens, rule of thirds composition,
shadow on right side of face, --ar 4:5 --style raw
```

### Stable Diffusion (SDXL) — 풍경
```
mountain valley at golden hour, leading lines from river to peak,
foreground wildflowers, low angle, warm tones (3000K),
volumetric god rays, rim light on ridge, ultra detailed
Negative: flat lighting, noon, harsh shadow, centered, no depth
```

### Blender Python — 3-point setup
```python
import bpy
def add_light(name, loc, energy, color=(1,1,1,1)):
    bpy.ops.object.light_add(type='AREA', location=loc)
    light = bpy.context.object
    light.name = name
    light.data.energy = energy
    light.data.color = color[:3]

# Key (45도, 강함)
add_light("Key", (4, -4, 5), 1000)
# Fill (반대편, 1/3)
add_light("Fill", (-3, -3, 3), 300)
# Rim (뒤쪽, 차가운 톤)
add_light("Rim", (0, 4, 4), 800, (0.7, 0.85, 1, 1))
```

### Three.js — 시네마틱 lighting
```js
import * as THREE from 'three';
const scene = new THREE.Scene();

const key = new THREE.DirectionalLight(0xfff0d0, 2.5);
key.position.set(5, 8, 5);
key.castShadow = true;
scene.add(key);

const fill = new THREE.DirectionalLight(0xa0c0ff, 0.6);
fill.position.set(-5, 3, 3);
scene.add(fill);

const rim = new THREE.SpotLight(0xffffff, 4, 30, Math.PI/8, 0.5);
rim.position.set(0, 5, -8);
scene.add(rim);

scene.add(new THREE.AmbientLight(0x404040, 0.3));
```

### CSS — rule of thirds grid overlay (디자인 검증)
```css
.thirds-overlay {
  position: relative;
}
.thirds-overlay::before {
  content: '';
  position: absolute; inset: 0;
  background-image:
    linear-gradient(to right, transparent 33.33%, rgba(255,0,0,.4) 33.33% 33.5%, transparent 33.5% 66.66%, rgba(255,0,0,.4) 66.66% 66.83%, transparent 66.83%),
    linear-gradient(to bottom, transparent 33.33%, rgba(255,0,0,.4) 33.33% 33.5%, transparent 33.5% 66.66%, rgba(255,0,0,.4) 66.66% 66.83%, transparent 66.83%);
  pointer-events: none;
}
```

### Lightroom-style — exposure 검증 Python
```python
import numpy as np
from PIL import Image

img = np.asarray(Image.open("photo.jpg").convert("L"))
# zone system: 0-255 → 11 zones
hist, _ = np.histogram(img, bins=11, range=(0, 256))
print("Shadow %:", hist[:3].sum() / img.size * 100)
print("Mid %:", hist[3:8].sum() / img.size * 100)
print("Highlight %:", hist[8:].sum() / img.size * 100)
# 일반: 20/60/20 근처가 균형
```

## 매 결정 기준
| 상황 | Approach |
|---|---|
| 인물, 부드럽게 | soft key + fill, golden hour |
| 인물, 드라마 | hard key, Rembrandt/split, no fill |
| 제품 | softbox key + reflector fill + rim |
| 풍경 | golden/blue hour + leading lines |
| AI prompt | lighting term + 광원 방향 + 색온도 |

**기본값**: 3-point lighting + rule of thirds + foreground anchor.

## 🔗 Graph
- 부모: [[Cinematography]]
- Adjacent: [[Post-Processing]]

## 🤖 LLM 활용
**언제**: prompt에 lighting/composition vocabulary 추가, 이미지 분석해 lighting 약점 지적, 영화 reference 매칭.
**언제 X**: 실제 촬영 장비 selection — 물리적 spec은 manual 확인.

## ❌ 안티패턴
- **Flat lighting**: key=fill — depth 없음.
- **Centered subject 항상**: 정적, 시선 고정 안 됨.
- **너무 많은 광원**: 그림자 충돌, 비현실적.
- **Negative space 0**: 답답함.
- **Lighting term 없는 AI prompt**: 평범한 결과.

## 🧪 검증 / 중복
- Verified (cinematography textbooks, Adobe Lightroom 2026).
- 신뢰도 A.

## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — Blender/Three.js 코드, AI prompt 추가 |
