9148c358d0
Topic_Agent/Topic_Blog/Topics/Topics_Biz/Topics_Meeting/Topics_Rag의 마크다운 지식 문서를 Topic_General/Topic_Programming/Topic_Graphic/Topic_Business 4개 카테고리로 재분류. - 중복 제거: frontmatter의 status:duplicate/merged + duplicate_of/redirect_to 필드로 자기 자신을 중복으로 선언한 리다이렉트 stub 1032개 제거, 완전 동일 내용 파일 472개 제거, 동일 파일명·다른 내용 충돌 시 더 큰(완전한) 버전만 유지(162개 제거) — 총 1639개 중복 제거. - 분류: 폴더 단위로 명확한 항목(AI_and_ML/Coding/Architecture 등 → Programming, Comfyui/Visual_Effects → Graphic, Topics_Biz/Topics_Meeting/사업 등 → Business, Poetic_Blog_Writing/창의성/Game_Design 등 → General)은 폴더 우선순위로, 나머지 혼재 폴더(Topic_Agent/Topic_Blog/Topics 루트/Thinking & Reasoning/Other/UI_UX_Assets)는 title/tags 키워드 스코어링으로 파일 단위 분류(불명확한 경우 General로 폴백). 원본 폴더명은 "From_*" 서브폴더로 보존해 추적 가능성 유지. - 최종 배치: Programming 2784 / General 1608 / Graphic 285 / Business 249 = 4926개 문서. - 에이전트 운영 상태(.astra/.agent/.obsidian/sessions/memory/_company/docs/lessons/_shared/src)는 지식 콘텐츠가 아니므로 재분류 대상에서 제외하고 원위치 유지. - Topics/Topic_email(상위 보호 폴더 Topic_email과 파일명 100% 중복) 삭제 — 보호 폴더 자체는 미변경. - 완전히 비게 된 Topic_Agent/Topic_Blog/Topics_Biz/Topics_Rag 폴더 제거.
5.9 KiB
5.9 KiB
id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
| id | title | category | status | canonical_id | aliases | duplicate_of | source_trust_level | confidence_score | verification_status | tags | raw_sources | last_reinforced | github_commit | tech_stack | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| wiki-2026-0508-lighting-and-composition | Lighting and Composition | 10_Wiki/Topics | verified | self |
|
none | A | 0.9 | applied |
|
2026-05-10 | pending |
|
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단.
매 응용
- 인물 사진 → Rembrandt + rule of thirds.
- 풍경 → leading lines + foreground anchor.
- 제품 → soft key + reflector fill (그림자 제거).
- 영화 → motivated lighting (창·램프 등 화면 내 광원).
- 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
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
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 (디자인 검증)
.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
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 추가 |