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

심지태
∙∙조회 3
07/30 그래픽 프로그래밍 기초

Unity 그래픽의 기본 구성 요소

순서요소핵심 역할주요 데이터·설정Unity에서 자주 사용하는 컴포넌트
1Mesh 메시물체의 모양과 구조를 결정합니다.정점(Vertex), 삼각형(Triangle), 노멀(Normal), UV 좌표Mesh Filter Mesh Renderer Skinned Mesh Renderer
2Material 머티리얼물체의 표면이 어떻게 보이는지 결정합니다.색상, 텍스처, 금속성, 거칠기, 투명도, 셰이더Material Shader
3Light 라이트물체를 비추어 밝기, 명암, 그림자를 만듭니다.색상, 세기, 범위, 방향, 그림자Directional Light Point Light Spot Light Area Light
4Camera 카메라장면을 특정 시점에서 촬영하여 화면에 출력합니다.위치, 회전, 시야각, 투영 방식, 렌더링 범위Camera

Mesh

Mesh는 3D 물체의 형태를 구성하는 데이터입니다.

구성 요소설명
Vertex물체를 구성하는 점
Edge정점과 정점을 연결하는 선
Triangle실제로 화면에 그려지는 삼각형 면
Normal표면이 향하는 방향. 조명 계산에 사용
UV3D 표면에 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 매터리얼 적용하기

  1. 스카이박스 큐브맵 스프라이트 준비
  2. 매터리얼 만들고 Shader를 Skybox/Cubemap으로 설정, Cubemap(HDR)에 준비한 스카이박스 큐브맵 스프라이트 적용
  3. Window->Rendering->Lighting
  4. Environment의 Skybox Material을 큐브맵 매터리얼로 변경

Camera

Camera는 장면에서 무엇을 화면에 그릴지 결정합니다.

설정설명
Transform카메라의 위치와 방향
Field of View원근 카메라의 시야각
ProjectionPerspective 또는 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원근 카메라의 시야각
ProjectionPerspective 또는 Orthographic 선택
Near/Far Clipping Plane렌더링할 최소·최대 거리
Culling Mask어떤 Layer를 화면에 그릴지 선택
Clear Flags / Background화면을 그리기 전 배경 처리
Target Texture화면 대신 Render Texture에 출력

전체 흐름

Mesh로 모양을 만들고 → Material로 표면을 정하고 → Light로 명암을 계산한 뒤 → Camera가 최종 화면을 촬영합니다.

plain text
Mesh → Material → Light → Camera → Game 화면
모양     표면       조명      촬영