07/30 그래픽 프로그래밍 기초


Unity 그래픽의 기본 구성 요소
| 순서 | 요소 | 핵심 역할 | 주요 데이터·설정 | Unity에서 자주 사용하는 컴포넌트 |
|---|---|---|---|---|
| 1 | Mesh 메시 | 물체의 모양과 구조를 결정합니다. | 정점(Vertex), 삼각형(Triangle), 노멀(Normal), UV 좌표 | Mesh Filter Mesh Renderer Skinned Mesh Renderer |
| 2 | Material 머티리얼 | 물체의 표면이 어떻게 보이는지 결정합니다. | 색상, 텍스처, 금속성, 거칠기, 투명도, 셰이더 | Material Shader |
| 3 | Light 라이트 | 물체를 비추어 밝기, 명암, 그림자를 만듭니다. | 색상, 세기, 범위, 방향, 그림자 | Directional Light Point Light Spot Light Area Light |
| 4 | Camera 카메라 | 장면을 특정 시점에서 촬영하여 화면에 출력합니다. | 위치, 회전, 시야각, 투영 방식, 렌더링 범위 | Camera |
Mesh
Mesh는 3D 물체의 형태를 구성하는 데이터입니다.
| 구성 요소 | 설명 |
|---|---|
| Vertex | 물체를 구성하는 점 |
| Edge | 정점과 정점을 연결하는 선 |
| Triangle | 실제로 화면에 그려지는 삼각형 면 |
| Normal | 표면이 향하는 방향. 조명 계산에 사용 |
| UV | 3D 표면에 2D 텍스처를 배치하기 위한 좌표 |
Mesh만 있으면 물체의 형태는 존재하지만, 표면의 색이나 재질은 아직 정해지지 않습니다.
Mesh: 모든 것은 삼각형
Scene 뷰 왼쪽 위의 표시 모드를 Shaded에서 Wireframe으로 바꿔봅니다. 매끈해 보이던 구가 사실은 수많은 삼각형 조각으로 이루어져 있는 것이 보입니다.
- 3D 모델은 전부 삼각형(폴리곤)의 모음입니다.
- 삼각형이 많을수록 매끈하지만 그리는 비용이 커집니다.
- "로우폴리(low-poly)" 스타일은 삼각형을 일부러 적게 써서 각진 맛을 내는 것입니다.
이 사실은 7과목 최적화 수업에서 "폴리곤 수 줄이기"로 다시 만나게 됩니다.
Material
Material은 Mesh의 표면 표현 방법을 지정합니다.
| 항목 | 설명 |
|---|---|
| Shader | 표면을 어떤 방식으로 계산하고 그릴지 정의 |
| Base Color | 물체의 기본 색상 |
| Texture | 표면에 붙이는 이미지 |
| Metallic | 금속처럼 보이는 정도 |
| Smoothness | 표면의 매끄러움과 빛 반사 정도 |
| Normal Map | 실제 형태를 바꾸지 않고 표면의 요철 표현 |
| Emission | 물체가 스스로 빛나는 효과 |
Material은 설정값을 저장하고, Shader는 그 설정값을 이용해 화면의 픽셀을 계산합니다.
<Material에 대해서 추가 노트를 작성했습니다.>
Light
Light는 물체의 밝기, 명암, 반사와 그림자를 계산하는 데 사용됩니다.
| 종류 | 특징 | 대표 용도 |
|---|---|---|
| Directional Light | 모든 위치에 같은 방향으로 빛을 비춤 | 태양 |
| Point Light | 한 점에서 모든 방향으로 빛을 비춤 | 전구, 촛불 |
| Spot Light | 원뿔 모양의 특정 방향으로 빛을 비춤 | 손전등, 무대 조명 |
| Area Light | 넓은 면에서 부드러운 빛을 생성 | 창문, 스튜디오 조명 |
빛의 결과는 Material이 사용하는 Shader와 렌더 파이프라인에 따라 달라집니다.
Mode는 조명을 언제 계산할지 결정하는 옵션입니다.
| Mode | 계산 시점 | 실행 중 변경 | 성능 비용 | 적합한 용도 |
|---|---|---|---|---|
| Realtime | 게임 실행 중 매 프레임 계산 | 가능 | 높음 | 움직이는 조명, 캐릭터, 손전등 |
| Mixed | 실시간 계산 + 미리 베이크 | 일부 가능 | 중간~높음 | 고정된 환경과 움직이는 캐릭터가 함께 있는 장면 |
| Baked | 에디터에서 미리 계산 | 사실상 불가능 | 낮음 | 움직이지 않는 건물, 배경, 실내 조명 |
빛 연산을 줄이는 것이 프로젝트의 성능 향상에 가장 크게 영향을 주는 요소 중 하나입니다. 상황에 맞춰 적절한 Mode를 설정하는 것이 중요합니다.
Light — Emission
광원의 색상, 밝기, 도달 거리와 빛의 모양을 설정하는 부분입니다. 아래 내용은 URP 기준입니다.
| 항목 | 핵심 내용 |
|---|---|
| Light Appearance | 빛의 색상을 정하는 방식을 선택 |
| Color | 빛 자체의 색상 설정 |
| Filter | 색온도로 만든 빛에 추가 색상을 입힘 |
| Temperature | 빛의 색온도를 켈빈(K)으로 설정 |
| Intensity | 빛의 밝기 설정 |
| Indirect Multiplier | 다른 표면에 반사되는 간접광의 밝기 조절 |
| Range | 빛이 도달하는 거리 설정 |
하늘에 Skybox 매터리얼 적용하기
- 스카이박스 큐브맵 스프라이트 준비
- 매터리얼 만들고 Shader를 Skybox/Cubemap으로 설정, Cubemap(HDR)에 준비한 스카이박스 큐브맵 스프라이트 적용
- Window->Rendering->Lighting
- Environment의 Skybox Material을 큐브맵 매터리얼로 변경
Camera
Camera는 장면에서 무엇을 화면에 그릴지 결정합니다.
| 설정 | 설명 |
|---|---|
| Transform | 카메라의 위치와 방향 |
| Field of View | 원근 카메라의 시야각 |
| Projection | Perspective 또는 Orthographic 선택 |
| Near/Far Clipping Plane | 렌더링할 최소·최대 거리 |
| Culling Mask | 어떤 Layer를 화면에 그릴지 선택 |
| Clear Flags / Background | 화면을 그리기 전 배경 처리 |
| Target Texture | 화면 대신 Render Texture에 출력 |
투영 방식
| 방식 | 특징 | 대표 용도 |
|---|---|---|
| Perspective | 멀리 있는 물체가 작게 보임 | 일반적인 3D 게임 |
| Orthographic | 거리에 따라 크기가 변하지 않음 | 2D 게임, 전략 게임, UI형 화면 |
Camera는 장면에서 무엇을 화면에 그릴지 결정합니다.
| 설정 | 설명 |
|---|---|
| Transform | 카메라의 위치와 방향 |
| Field of View | 원근 카메라의 시야각 |
| Projection | Perspective 또는 Orthographic 선택 |
| Near/Far Clipping Plane | 렌더링할 최소·최대 거리 |
| Culling Mask | 어떤 Layer를 화면에 그릴지 선택 |
| Clear Flags / Background | 화면을 그리기 전 배경 처리 |
| Target Texture | 화면 대신 Render Texture에 출력 |
전체 흐름
Mesh로 모양을 만들고 → Material로 표면을 정하고 → Light로 명암을 계산한 뒤 → Camera가 최종 화면을 촬영합니다.
Mesh → Material → Light → Camera → Game 화면
모양 표면 조명 촬영



