Files
2nd/10_Wiki/Topics/AI_and_ML/Lighting and Composition.md
T
Antigravity Agent f8b21af4be Wiki cleanup: error-doc removal, dedup merge, link normalization
10_Wiki/Topics 대규모 정리:
- 오류 캡처/미완성 stub 문서 227개 제거
- 교차폴더 중복 43클러스터 병합 (63파일 → redirect)
- 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건
- 카테고리 MOC 6개 신규 생성
- Graph 섹션 미해결 related-keyword 링크 10,058건 제거

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 23:52:15 +09:00

177 lines
5.9 KiB
Markdown

---
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 추가 |