SlideShare a Scribd company logo
1 of 35
Download to read offline
게임 그래픽스의 이해
이야기하려는 내용
• 게임에 필요한 3D 모델을 만드는 과정
• 셰이더란 무엇인가?
• 그래픽 퀄리티를 높이는 각종 표현
• 3차원의 가상 월드를 모니터로 표현하는 방법(렌더링 파이프라인)
3D 모델 제작 과정
3D 모델 제작 과정
• 3차원 오브젝트의 표현
➢ Vertex(점) : 정점, 꼭지점, 모델을 구성하는 가장 작은 단위
➢ Edge(선) : 점과 점이 만나 이루어진 선
➢ Polygon(다각형) : 선과 선이 만나 이루어진 삼각형, 모든 오브젝트는 삼각형을
무수히 이어 붙여 만들어짐
➢ 컴퓨터로 표현되는 모든 3차원 오브젝트는 위의 3요소로 표현 됨
3D 모델 제작 과정
• LOD (Level of Detail)
➢ 게임 내에서 현재 카메라에 보이는 오브젝트를 화면에 표현하기 위해서는 CPU가 GPU에게 Vertex에 기반한
Polygon을 그려 달라는 호출을 하게 되는데, 이것을 「드로우콜(Draw Call) 」이라고 함
➢ 화면 내에 그려야 하는 Vertex 개수가 많을 수록 드로우콜은 증가하게 되며 GPU의 부담으로 다가옴
➢ 결과적으로 GPU가 처리 속도를 따라가지 못해 프레임마다 화면을 정상적으로 그려내지 못하게 됨
➢ 이를 해결하기 위해 카메라와 물체와의 거리에 따라 폴리곤 수를 늘리거나 줄이는 최적화 기법이 바로 LOD
➢ 카메라에서 멀리 떨어진 오브젝트는 디테일이 잘 보이지 않아도 괜찮다 라는 생각에서 출발
3D 모델 제작 과정
• 프로파일러 (Profiler)
➢ 런타임 중에 각종 병목현상을 찾아내기 위한 기능
➢ CPU, 메모리, 오디오, 물리, GPU, 렌더링 관련한 항목들이 실시간으로 얼마나 연산을 하고 있는지를 나타냄
3D 모델 제작 과정
• 언랩과 UV 맵핑
➢ 3차원 오브젝트에 2차원 이미지를 입혀 적은 Polygon으로도 높은 디테일의 표현을 하기 위해 「텍스쳐
(Texture)」라는 2차원 이미지를 사용
➢ 2차원으로 펴서 각각의 Polygon에 위치한 기반의 텍스쳐링으로 손쉬운 디테일 표현 가능
➢ 이렇게 3차원 오브젝트를 2차원 형태로 펴는 과정을 「언랩(Unwarp)」이라고 함
➢ 2차원으로 만들어진 오브젝트는 3차원을 표현하는 3차원 좌표계(XYZ)가 아닌, 「UVW 좌표계」를 사용
➢ 텍스쳐링 된 2차원 오브젝트를 3차원 이미지에 입히는 것을 「UV 맵핑」, 또는 「텍스쳐 맵핑」 이라고 함
셰이더(Shader)
셰이더
• 셰이더란 무엇인가?
➢ 3차원 공간에 있는 오브젝트를 2D 화면인 모니터의 최소 단위인 픽셀로 표현하는 함수(기법)
➢ GPU의 연산 과정을 건드릴 수 있는 렌더링 파이프라인을 프로그래밍 하는데 사용
➢ 셰이더를 통해 오브젝트의 명암, 재질, 색조 등을 표현
➢ 셰이더를 구현해 이를 머티리얼에 입히고, 머티리얼을 매쉬에 적용시키는 방법으로 사용
※ 머티리얼(Material) : 셰이더를 담을 수 있는 팔레트 같은 역할을 하는 에셋
• 스페큘러 (Specular)
➢ 오브젝트의 재질 정보를 빛의 계산에 의해서 표현하는 기술
➢ 일반적으로 금속 계열의 재질의 하이라이트 표현을 위해 사용
➢ 금속의 경우 광석 고유의 입자 구성에 의해 고유한 반사율을 가지는 특성을 이용
➢ 빛을 가장 가까이서 받는 부분이 빛의 정반사에 의해서 빛나는 효과
※ 빛이 있는 곳에서 거울을 봤을 때 이마나 코가 반짝거리는 것과 같은 효과
셰이더
빛의 정반사 원리
입사각과 반사각이 동일한 원리를 이용
• 노말 맵핑 (Normal Mapping)
➢ 오브젝트의 입체감을 텍스쳐로 표현하기 위한 기술
➢ Polygon으로 실질적인 높낮이를 줘 입체감을 구현하는 것이 아닌, 각 Polygon의 법선 벡터(Normal Vector)를
이용해 빛에 의한 음영을 계산한 맵을 「노말 맵(Normal Map)」이라고 함
➢ 이 노말 맵을 모델에 덧씌움으로 인해 처리하는 텍스쳐로 눈속임을 하는 기술
➢ High Polygon 모델에서 노말 맵을 뽑아 Low Polygon 모델에 적용
법선 벡터에 의한 노말 맵 추출 원리
셰이더
High Polygon에서 추출, Low Polygon에 적용 샘플 노말 맵 데이터
• 림 라이트 (Rim Light)
➢ 오브젝트에게 후광과 같은 테(Rim)를 보여주기 위한 셰이더 기술
➢ View Vector를 기준으로 각 Polygon의 Normal Vector의 각도에 따라 Polygon에 빛의 강도나
색상을 조절
➢ 캐릭터의 후광처리나 툰 쉐이딩 게임에서의 외곽선 처리, 타격감 효과 등에 많이 사용
셰이더
림 라이트 계산 원리
• 앰비언트 오클루전 (Ambient Occlusion, AO)
➢ 주변 환경 오브젝트들이 차폐(Occlusion)되어 서로 가로막고 있을 때, 빛의 반사에 의해서 만들어
진 환경광의 일종
➢ 주변 오브젝트에게서 반사된 반사광들이 다른 오브젝트들에게 영향을 끼쳐 색의 변화를 일으켜 더
욱 사실감을 나타낼 수 있음
셰이더
3D 애니메이션의 표현
3D 애니메이션의 표현
• 리깅(Rigging)
➢ 오브젝트를 손쉽게 움직이게 만들기 위해 바이패드나 본(Bone)에 3D 오브젝트의 Polygon들을 연결시키는 작업
➢ 애니메이션을 제작할 때 Vertex나 Polygon들을 일일이 조작하기엔 매우 공수가 크기 때문에 리깅 과정을 거침
➢ 관절들의 움직임을 만들기 위한 작업이므로 해부학 지식 필수
➢ 바이패드(Biped)
▪ 기본적으로 인간형 체형을 갖춘 뼈대
▪ 새롭게 관절을 추가하거나 확대 축소에 유용
▪ 인간형 모델에 일반적으로 사용하며, 최상위 부모는 골반
• FK, IK
➢ 관절은 기본적으로 부모, 자식 형태의 계층형 구조를 가짐
➢ 리깅 과정에서 관절의 움직임에 따라 어떻게 부모와 자식들이 움직이는 지를 결정 가능
➢ FK (Forward Kinematics, 전진 동작)
▪ 부모가 움직이면 자식도 따라서 움직이는 방식
▪ 관절형 피규어의 움직임과 동일한 방식
➢ IK (Inverse Kinematiscs)
▪ 자식이 먼저 움직이면 그에 맞춰 부모가 자연스럽게 움직여주는 방식
▪ 마리오네트 인형의 움직임과 동일한 방식
3D 애니메이션의 표현
• 키 프레임 애니메이션 (Key Frame Animation)
➢ 특정 프레임 마다 3D 오브젝트를 이루고 있는 본의 Position, Rotation, Scale에 변화를 줘 오브젝
트를 움직이는 것
➢ 매 프레임 마다 조절해야 하는 것은 아니며, 사이 부분은 보간 처리를 수행
➢ 우리가 흔히 알고 있는 애니메이션 제작 기법
3D 애니메이션의 표현
• 물리 기반 애니메이션 (Physics Animation)
➢ 프레임마다 지정된 관절들의 움직임에 의한 애니메이션 표현 방법이 아닌, 물리 효과를 기반으로 한
애니메이션 표현 방법
➢ 리깅된 3D 오브젝트의 본에 물리 효과로 자연스러운 애니메이션을 만들 때 사용
▪ 바람이 불때 머리카락이나 망토가 흩날리는 효과
▪ 공격에 맞았을 때 맞은 방향을 나타낼 수 있는 피격 애니메이션 효과
➢ 래그돌 애니메이션 (서든어택2)
▪ 사망 표현에 주로 사용되는 물리 애니메이션 기법
3D 애니메이션의 표현
렌더링 파이프라인
• 렌더링 파이프라인(그래픽스 파이프라인)이란 무엇인가?
➢ 정의
▪ 3D 정점 데이터들을 2D 래스터 이미지로 변환시키는 일련의 과정 (파이프라인)
➢ 파이프라인
▪ 이전의 과정의 출력 값이 다음 과정의 입력 값으로 쓰이는 형태
▪ 렌더링 파이프라인의 최초 입력 값은 3D 정점 데이터들이고, 최종 출력 값은 2D 레스터 이미지
➢ 3D 정점 데이터
▪ 3D 오브젝트를 구성하고 있는 정점의 데이터. Vertex의 정보(위치, 각도, 색상 등)
▪ 렌더링 파이프라인 과정을 거쳐 정점 간의 선형 보간에 의해 픽셀들이 채워 짐
➢ 레스터 이미지
▪ 모니터를 구성하는 최소 단위인 픽셀(Pixel) 형태로 이루어진 2D 이미지
▪ 3차원 데이터를 모니터의 픽셀로 구성해 출력하기 위함
렌더링 파이프라인
처리1정점 데이터 처리2 처리3 처리4 레스터 이미지
• 렌더링 파이프라인은?
➢ 3차원 공간의 물체를 2D 모니터 상에 출력시키기 위한 일련의 과정
렌더링 파이프라인
• 3D 모델 구축
➢ 만들어진 3D 오브젝트의 정점 데이터를 받아와 로컬 좌표계에 띄우는 단계
※ 로컬 좌표계 : 3D 오브젝트 자신을 중심으로 하는 좌표계
➢ 각 정점들이 자신의 좌표계를 기준으로 어디에 위치하는 지를 판단해 모델을 그림
➢ 월드 좌표계에서 자신이 어떻게 존재하는지 알 수 없는 상태
렌더링 파이프라인
• 가상 공간의 배치
➢ 만들어진 3D 오브젝트를 3차원 가상 공간에 배치하기 위해 로컬 좌표계에서 월드 좌표계로 변환하는 단계
※ 월드 좌표계 : 가상의 3D 공간을 기준으로 3D 오브젝트가 어디에 위치하는지를 판단하기 위한 척도
➢ 월드 좌표계를 기준으로 가상 공간에 3D 오브젝트들을 그림
렌더링 파이프라인
• 정점 단위의 음영 계산
➢ 정점들의 데이터 (좌표, 색상, 텍스쳐 좌표, 조명 정보) 등을 변화 시켜 월드 좌표계 내에서 오브젝트를 옮기
거나 색상을 바꾸는 단계
※ 정점 셰이더 단계
렌더링 파이프라인
• 정점의 증감
➢ 월드 상에 그려야 할 3D 오브젝트의 정점을 증가시키거나 감소시켜 새로운 도형 정보를 만드는 과정
※ 지오매트리 셰이더 단계
➢ LOD 처리를 하거나, 흐르는 물의 표현, 파티클 등과 같이 정점이 증감하는 처리를 이 단계에서 담당
렌더링 파이프라인
• 카메라 공간으로의 전개
➢ 월드 좌표계로 변환된 오브젝트를 카메라를 기준으로 한 카메라 좌표계로 변환하는 단계
※ 카메라 좌표계 : 오브젝트가 카메라를 기준으로 한 로컬 좌표계에서 어디에 어떻게 위치하는지를 판
단하기 위한 척도
➢ 카메라를 기준으로 보는 시야에 오브젝트들을 담는 투영이라는 과정을 거쳐야 하기 때문에
렌더링 파이프라인
• 컬링
➢ 카메라로 보는 기준에서 보이지 않는 후면의 Polygon들을 잘라내 렌더링 연산에서 제외하는 단계
➢ 굳이 보이지도 않는 부분까지 연산해서 그려내고 있는 것은 쓸데없는 비용 부담
렌더링 파이프라인
• 조명
➢ 가상의 빛을 만들어 빛에 의한 계산을 하는 단계
➢ 빛은 크게 아래 3가지를 사용
▪ Directional Light : 방향성 광원, 태양과 같은 역할
▪ Point Light : 점 광원, 램프와 같이 전 방향으로 뻗어져 나가는 빛
▪ Spot Light : 스포트 광원, 손전등과 같이 직선적인 빛
렌더링 파이프라인
• 클리핑
➢ 카메라 좌표계로 변환 후 카메라의 시야 내에 들어오지 않는 정점 데이터를 렌더링 연산 과정에 추가하지
않는 단계
렌더링 파이프라인
• 투영
➢ 카메라 좌표계로 변환 된 오브젝트들을 모니터에 표시하기 위해 2D 평면 좌표로 변환하는 단계
➢ 현실 세계에서 3차원적인 오브젝트를 캔버스인 2차원 좌표에 그려 내기 위한 데이터 변환 과정
렌더링 파이프라인
• 뷰포트 전개
➢ 2차원 좌표로 변형된 오브젝트를 화면 내에 그리기 위해 화면 상에서의 위치로 변환하는 단계
➢ 모니터 해상도에 대응해 어떻게 그려낼 지를 결정
렌더링 파이프라인
• 폴리곤 셋업과 레스터라이즈
➢ 화면 상의 2차원 좌표로 변형된 오브젝트의 정점 데이터들이 모니터에 표시하기 위해 픽셀 단위로 변형되
는 단계
➢ 정점들이 가지고 있던 색 정보가 화소 단위로 변경되며 픽셀 컬러로 색 정보가 변형
렌더링 파이프라인
• 텍스쳐 적용
➢ 정점들의 색상이나 조명의 조합으로는 실감나는 3D 오브젝트 표현에 한계가 있고, 폴리곤 단위의 조명 계
산은 많은 부하를 동반하기 때문에 텍스쳐를 적용
➢ 픽셀들의 음영 처리를 하기 위한 과정
※ 픽셀 셰이더 단계
렌더링 파이프라인
• 렌더 백엔드
➢ 픽셀 셰이더에 의해서 넘어온 값을 실제 모니터에 출력해도 괜찮은지에 대한 검증 단계
➢ 각종 렌더 우선순위나 알파 적용, 안티앨리어싱, Z-Buffer 등을 담당
렌더링 파이프라인
• 출력
➢ 최종적으로 모니터에 출력
➢ 이 과정을 매 프레임마다 반복
➢ 60fps면 1초에 60번 그려 내야 함 픽셀 수만큼 그려내야 함
※ 1920*1080 = 2,073,600
렌더링 파이프라인

More Related Content

What's hot

김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019devCAT Studio, NEXON
 
Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .YEONG-CHEON YOU
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012devCAT Studio, NEXON
 
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리강 민우
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019devCAT Studio, NEXON
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법Chris Ohk
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기YEONG-CHEON YOU
 
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)valhashi
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화 tartist
 
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계Imseong Kang
 
NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들Jubok Kim
 
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템Chaeone Son
 
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용JP Jung
 
그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기Yongha Kim
 
감마가 어디감마
감마가 어디감마감마가 어디감마
감마가 어디감마JP Jung
 
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019devCAT Studio, NEXON
 
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기강 민우
 
Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리changehee lee
 

What's hot (20)

김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
 
Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
 
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
 
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)
 
High dynamic range
High dynamic rangeHigh dynamic range
High dynamic range
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화
 
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
 
NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들
 
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
 
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
 
그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기
 
감마가 어디감마
감마가 어디감마감마가 어디감마
감마가 어디감마
 
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
 
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
 
Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리
 

Similar to 3D 게임 그래픽스의 이해

2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)Sukwoo Lee
 
파이어몽키 3D 애플리케이션 만들기
파이어몽키 3D 애플리케이션 만들기파이어몽키 3D 애플리케이션 만들기
파이어몽키 3D 애플리케이션 만들기Devgear
 
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011devCAT Studio, NEXON
 
실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬현찬 양
 
[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2MinGeun Park
 
유니티 고급 과정 -3-
유니티 고급 과정 -3-유니티 고급 과정 -3-
유니티 고급 과정 -3-Kiyoung Moon
 
셰이더 만들기 실습
셰이더 만들기 실습셰이더 만들기 실습
셰이더 만들기 실습Jungsoo Park
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술YEONG-CHEON YOU
 
09_Voxel rendering
09_Voxel rendering09_Voxel rendering
09_Voxel renderingnoerror
 
Voxel based game_optimazation_relelase
Voxel based game_optimazation_relelaseVoxel based game_optimazation_relelase
Voxel based game_optimazation_relelaseYEONG-CHEON YOU
 
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법강 민우
 
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2진상 문
 
Stabilization Method of Trajectory Data with Planar Characteristic using Plan...
Stabilization Method of Trajectory Data with Planar Characteristic using Plan...Stabilization Method of Trajectory Data with Planar Characteristic using Plan...
Stabilization Method of Trajectory Data with Planar Characteristic using Plan...Stryx
 
진선웅 유저수만큼다양한섬을만들자 공개용
진선웅 유저수만큼다양한섬을만들자 공개용진선웅 유저수만큼다양한섬을만들자 공개용
진선웅 유저수만큼다양한섬을만들자 공개용Sunwung Jin
 
Rainbow의 혈관 속 탐험 (The Rainbow's adventure in the vessel) (RL Korea)
Rainbow의 혈관 속 탐험 (The Rainbow's adventure in the vessel) (RL Korea)Rainbow의 혈관 속 탐험 (The Rainbow's adventure in the vessel) (RL Korea)
Rainbow의 혈관 속 탐험 (The Rainbow's adventure in the vessel) (RL Korea)Kyunghwan Kim
 

Similar to 3D 게임 그래픽스의 이해 (17)

2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
 
파이어몽키 3D 애플리케이션 만들기
파이어몽키 3D 애플리케이션 만들기파이어몽키 3D 애플리케이션 만들기
파이어몽키 3D 애플리케이션 만들기
 
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
 
실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬
 
[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2
 
유니티 고급 과정 -3-
유니티 고급 과정 -3-유니티 고급 과정 -3-
유니티 고급 과정 -3-
 
셰이더 만들기 실습
셰이더 만들기 실습셰이더 만들기 실습
셰이더 만들기 실습
 
3ds max Standard model
3ds max Standard model3ds max Standard model
3ds max Standard model
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술
 
Motion blur
Motion blurMotion blur
Motion blur
 
09_Voxel rendering
09_Voxel rendering09_Voxel rendering
09_Voxel rendering
 
Voxel based game_optimazation_relelase
Voxel based game_optimazation_relelaseVoxel based game_optimazation_relelase
Voxel based game_optimazation_relelase
 
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
 
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
 
Stabilization Method of Trajectory Data with Planar Characteristic using Plan...
Stabilization Method of Trajectory Data with Planar Characteristic using Plan...Stabilization Method of Trajectory Data with Planar Characteristic using Plan...
Stabilization Method of Trajectory Data with Planar Characteristic using Plan...
 
진선웅 유저수만큼다양한섬을만들자 공개용
진선웅 유저수만큼다양한섬을만들자 공개용진선웅 유저수만큼다양한섬을만들자 공개용
진선웅 유저수만큼다양한섬을만들자 공개용
 
Rainbow의 혈관 속 탐험 (The Rainbow's adventure in the vessel) (RL Korea)
Rainbow의 혈관 속 탐험 (The Rainbow's adventure in the vessel) (RL Korea)Rainbow의 혈관 속 탐험 (The Rainbow's adventure in the vessel) (RL Korea)
Rainbow의 혈관 속 탐험 (The Rainbow's adventure in the vessel) (RL Korea)
 

3D 게임 그래픽스의 이해

  • 2. 이야기하려는 내용 • 게임에 필요한 3D 모델을 만드는 과정 • 셰이더란 무엇인가? • 그래픽 퀄리티를 높이는 각종 표현 • 3차원의 가상 월드를 모니터로 표현하는 방법(렌더링 파이프라인)
  • 4. 3D 모델 제작 과정 • 3차원 오브젝트의 표현 ➢ Vertex(점) : 정점, 꼭지점, 모델을 구성하는 가장 작은 단위 ➢ Edge(선) : 점과 점이 만나 이루어진 선 ➢ Polygon(다각형) : 선과 선이 만나 이루어진 삼각형, 모든 오브젝트는 삼각형을 무수히 이어 붙여 만들어짐 ➢ 컴퓨터로 표현되는 모든 3차원 오브젝트는 위의 3요소로 표현 됨
  • 5. 3D 모델 제작 과정 • LOD (Level of Detail) ➢ 게임 내에서 현재 카메라에 보이는 오브젝트를 화면에 표현하기 위해서는 CPU가 GPU에게 Vertex에 기반한 Polygon을 그려 달라는 호출을 하게 되는데, 이것을 「드로우콜(Draw Call) 」이라고 함 ➢ 화면 내에 그려야 하는 Vertex 개수가 많을 수록 드로우콜은 증가하게 되며 GPU의 부담으로 다가옴 ➢ 결과적으로 GPU가 처리 속도를 따라가지 못해 프레임마다 화면을 정상적으로 그려내지 못하게 됨 ➢ 이를 해결하기 위해 카메라와 물체와의 거리에 따라 폴리곤 수를 늘리거나 줄이는 최적화 기법이 바로 LOD ➢ 카메라에서 멀리 떨어진 오브젝트는 디테일이 잘 보이지 않아도 괜찮다 라는 생각에서 출발
  • 6. 3D 모델 제작 과정 • 프로파일러 (Profiler) ➢ 런타임 중에 각종 병목현상을 찾아내기 위한 기능 ➢ CPU, 메모리, 오디오, 물리, GPU, 렌더링 관련한 항목들이 실시간으로 얼마나 연산을 하고 있는지를 나타냄
  • 7. 3D 모델 제작 과정 • 언랩과 UV 맵핑 ➢ 3차원 오브젝트에 2차원 이미지를 입혀 적은 Polygon으로도 높은 디테일의 표현을 하기 위해 「텍스쳐 (Texture)」라는 2차원 이미지를 사용 ➢ 2차원으로 펴서 각각의 Polygon에 위치한 기반의 텍스쳐링으로 손쉬운 디테일 표현 가능 ➢ 이렇게 3차원 오브젝트를 2차원 형태로 펴는 과정을 「언랩(Unwarp)」이라고 함 ➢ 2차원으로 만들어진 오브젝트는 3차원을 표현하는 3차원 좌표계(XYZ)가 아닌, 「UVW 좌표계」를 사용 ➢ 텍스쳐링 된 2차원 오브젝트를 3차원 이미지에 입히는 것을 「UV 맵핑」, 또는 「텍스쳐 맵핑」 이라고 함
  • 9. 셰이더 • 셰이더란 무엇인가? ➢ 3차원 공간에 있는 오브젝트를 2D 화면인 모니터의 최소 단위인 픽셀로 표현하는 함수(기법) ➢ GPU의 연산 과정을 건드릴 수 있는 렌더링 파이프라인을 프로그래밍 하는데 사용 ➢ 셰이더를 통해 오브젝트의 명암, 재질, 색조 등을 표현 ➢ 셰이더를 구현해 이를 머티리얼에 입히고, 머티리얼을 매쉬에 적용시키는 방법으로 사용 ※ 머티리얼(Material) : 셰이더를 담을 수 있는 팔레트 같은 역할을 하는 에셋
  • 10. • 스페큘러 (Specular) ➢ 오브젝트의 재질 정보를 빛의 계산에 의해서 표현하는 기술 ➢ 일반적으로 금속 계열의 재질의 하이라이트 표현을 위해 사용 ➢ 금속의 경우 광석 고유의 입자 구성에 의해 고유한 반사율을 가지는 특성을 이용 ➢ 빛을 가장 가까이서 받는 부분이 빛의 정반사에 의해서 빛나는 효과 ※ 빛이 있는 곳에서 거울을 봤을 때 이마나 코가 반짝거리는 것과 같은 효과 셰이더 빛의 정반사 원리 입사각과 반사각이 동일한 원리를 이용
  • 11. • 노말 맵핑 (Normal Mapping) ➢ 오브젝트의 입체감을 텍스쳐로 표현하기 위한 기술 ➢ Polygon으로 실질적인 높낮이를 줘 입체감을 구현하는 것이 아닌, 각 Polygon의 법선 벡터(Normal Vector)를 이용해 빛에 의한 음영을 계산한 맵을 「노말 맵(Normal Map)」이라고 함 ➢ 이 노말 맵을 모델에 덧씌움으로 인해 처리하는 텍스쳐로 눈속임을 하는 기술 ➢ High Polygon 모델에서 노말 맵을 뽑아 Low Polygon 모델에 적용 법선 벡터에 의한 노말 맵 추출 원리 셰이더 High Polygon에서 추출, Low Polygon에 적용 샘플 노말 맵 데이터
  • 12. • 림 라이트 (Rim Light) ➢ 오브젝트에게 후광과 같은 테(Rim)를 보여주기 위한 셰이더 기술 ➢ View Vector를 기준으로 각 Polygon의 Normal Vector의 각도에 따라 Polygon에 빛의 강도나 색상을 조절 ➢ 캐릭터의 후광처리나 툰 쉐이딩 게임에서의 외곽선 처리, 타격감 효과 등에 많이 사용 셰이더 림 라이트 계산 원리
  • 13. • 앰비언트 오클루전 (Ambient Occlusion, AO) ➢ 주변 환경 오브젝트들이 차폐(Occlusion)되어 서로 가로막고 있을 때, 빛의 반사에 의해서 만들어 진 환경광의 일종 ➢ 주변 오브젝트에게서 반사된 반사광들이 다른 오브젝트들에게 영향을 끼쳐 색의 변화를 일으켜 더 욱 사실감을 나타낼 수 있음 셰이더
  • 15. 3D 애니메이션의 표현 • 리깅(Rigging) ➢ 오브젝트를 손쉽게 움직이게 만들기 위해 바이패드나 본(Bone)에 3D 오브젝트의 Polygon들을 연결시키는 작업 ➢ 애니메이션을 제작할 때 Vertex나 Polygon들을 일일이 조작하기엔 매우 공수가 크기 때문에 리깅 과정을 거침 ➢ 관절들의 움직임을 만들기 위한 작업이므로 해부학 지식 필수 ➢ 바이패드(Biped) ▪ 기본적으로 인간형 체형을 갖춘 뼈대 ▪ 새롭게 관절을 추가하거나 확대 축소에 유용 ▪ 인간형 모델에 일반적으로 사용하며, 최상위 부모는 골반
  • 16. • FK, IK ➢ 관절은 기본적으로 부모, 자식 형태의 계층형 구조를 가짐 ➢ 리깅 과정에서 관절의 움직임에 따라 어떻게 부모와 자식들이 움직이는 지를 결정 가능 ➢ FK (Forward Kinematics, 전진 동작) ▪ 부모가 움직이면 자식도 따라서 움직이는 방식 ▪ 관절형 피규어의 움직임과 동일한 방식 ➢ IK (Inverse Kinematiscs) ▪ 자식이 먼저 움직이면 그에 맞춰 부모가 자연스럽게 움직여주는 방식 ▪ 마리오네트 인형의 움직임과 동일한 방식 3D 애니메이션의 표현
  • 17. • 키 프레임 애니메이션 (Key Frame Animation) ➢ 특정 프레임 마다 3D 오브젝트를 이루고 있는 본의 Position, Rotation, Scale에 변화를 줘 오브젝 트를 움직이는 것 ➢ 매 프레임 마다 조절해야 하는 것은 아니며, 사이 부분은 보간 처리를 수행 ➢ 우리가 흔히 알고 있는 애니메이션 제작 기법 3D 애니메이션의 표현
  • 18. • 물리 기반 애니메이션 (Physics Animation) ➢ 프레임마다 지정된 관절들의 움직임에 의한 애니메이션 표현 방법이 아닌, 물리 효과를 기반으로 한 애니메이션 표현 방법 ➢ 리깅된 3D 오브젝트의 본에 물리 효과로 자연스러운 애니메이션을 만들 때 사용 ▪ 바람이 불때 머리카락이나 망토가 흩날리는 효과 ▪ 공격에 맞았을 때 맞은 방향을 나타낼 수 있는 피격 애니메이션 효과 ➢ 래그돌 애니메이션 (서든어택2) ▪ 사망 표현에 주로 사용되는 물리 애니메이션 기법 3D 애니메이션의 표현
  • 20. • 렌더링 파이프라인(그래픽스 파이프라인)이란 무엇인가? ➢ 정의 ▪ 3D 정점 데이터들을 2D 래스터 이미지로 변환시키는 일련의 과정 (파이프라인) ➢ 파이프라인 ▪ 이전의 과정의 출력 값이 다음 과정의 입력 값으로 쓰이는 형태 ▪ 렌더링 파이프라인의 최초 입력 값은 3D 정점 데이터들이고, 최종 출력 값은 2D 레스터 이미지 ➢ 3D 정점 데이터 ▪ 3D 오브젝트를 구성하고 있는 정점의 데이터. Vertex의 정보(위치, 각도, 색상 등) ▪ 렌더링 파이프라인 과정을 거쳐 정점 간의 선형 보간에 의해 픽셀들이 채워 짐 ➢ 레스터 이미지 ▪ 모니터를 구성하는 최소 단위인 픽셀(Pixel) 형태로 이루어진 2D 이미지 ▪ 3차원 데이터를 모니터의 픽셀로 구성해 출력하기 위함 렌더링 파이프라인 처리1정점 데이터 처리2 처리3 처리4 레스터 이미지
  • 21. • 렌더링 파이프라인은? ➢ 3차원 공간의 물체를 2D 모니터 상에 출력시키기 위한 일련의 과정 렌더링 파이프라인
  • 22. • 3D 모델 구축 ➢ 만들어진 3D 오브젝트의 정점 데이터를 받아와 로컬 좌표계에 띄우는 단계 ※ 로컬 좌표계 : 3D 오브젝트 자신을 중심으로 하는 좌표계 ➢ 각 정점들이 자신의 좌표계를 기준으로 어디에 위치하는 지를 판단해 모델을 그림 ➢ 월드 좌표계에서 자신이 어떻게 존재하는지 알 수 없는 상태 렌더링 파이프라인
  • 23. • 가상 공간의 배치 ➢ 만들어진 3D 오브젝트를 3차원 가상 공간에 배치하기 위해 로컬 좌표계에서 월드 좌표계로 변환하는 단계 ※ 월드 좌표계 : 가상의 3D 공간을 기준으로 3D 오브젝트가 어디에 위치하는지를 판단하기 위한 척도 ➢ 월드 좌표계를 기준으로 가상 공간에 3D 오브젝트들을 그림 렌더링 파이프라인
  • 24. • 정점 단위의 음영 계산 ➢ 정점들의 데이터 (좌표, 색상, 텍스쳐 좌표, 조명 정보) 등을 변화 시켜 월드 좌표계 내에서 오브젝트를 옮기 거나 색상을 바꾸는 단계 ※ 정점 셰이더 단계 렌더링 파이프라인
  • 25. • 정점의 증감 ➢ 월드 상에 그려야 할 3D 오브젝트의 정점을 증가시키거나 감소시켜 새로운 도형 정보를 만드는 과정 ※ 지오매트리 셰이더 단계 ➢ LOD 처리를 하거나, 흐르는 물의 표현, 파티클 등과 같이 정점이 증감하는 처리를 이 단계에서 담당 렌더링 파이프라인
  • 26. • 카메라 공간으로의 전개 ➢ 월드 좌표계로 변환된 오브젝트를 카메라를 기준으로 한 카메라 좌표계로 변환하는 단계 ※ 카메라 좌표계 : 오브젝트가 카메라를 기준으로 한 로컬 좌표계에서 어디에 어떻게 위치하는지를 판 단하기 위한 척도 ➢ 카메라를 기준으로 보는 시야에 오브젝트들을 담는 투영이라는 과정을 거쳐야 하기 때문에 렌더링 파이프라인
  • 27. • 컬링 ➢ 카메라로 보는 기준에서 보이지 않는 후면의 Polygon들을 잘라내 렌더링 연산에서 제외하는 단계 ➢ 굳이 보이지도 않는 부분까지 연산해서 그려내고 있는 것은 쓸데없는 비용 부담 렌더링 파이프라인
  • 28. • 조명 ➢ 가상의 빛을 만들어 빛에 의한 계산을 하는 단계 ➢ 빛은 크게 아래 3가지를 사용 ▪ Directional Light : 방향성 광원, 태양과 같은 역할 ▪ Point Light : 점 광원, 램프와 같이 전 방향으로 뻗어져 나가는 빛 ▪ Spot Light : 스포트 광원, 손전등과 같이 직선적인 빛 렌더링 파이프라인
  • 29. • 클리핑 ➢ 카메라 좌표계로 변환 후 카메라의 시야 내에 들어오지 않는 정점 데이터를 렌더링 연산 과정에 추가하지 않는 단계 렌더링 파이프라인
  • 30. • 투영 ➢ 카메라 좌표계로 변환 된 오브젝트들을 모니터에 표시하기 위해 2D 평면 좌표로 변환하는 단계 ➢ 현실 세계에서 3차원적인 오브젝트를 캔버스인 2차원 좌표에 그려 내기 위한 데이터 변환 과정 렌더링 파이프라인
  • 31. • 뷰포트 전개 ➢ 2차원 좌표로 변형된 오브젝트를 화면 내에 그리기 위해 화면 상에서의 위치로 변환하는 단계 ➢ 모니터 해상도에 대응해 어떻게 그려낼 지를 결정 렌더링 파이프라인
  • 32. • 폴리곤 셋업과 레스터라이즈 ➢ 화면 상의 2차원 좌표로 변형된 오브젝트의 정점 데이터들이 모니터에 표시하기 위해 픽셀 단위로 변형되 는 단계 ➢ 정점들이 가지고 있던 색 정보가 화소 단위로 변경되며 픽셀 컬러로 색 정보가 변형 렌더링 파이프라인
  • 33. • 텍스쳐 적용 ➢ 정점들의 색상이나 조명의 조합으로는 실감나는 3D 오브젝트 표현에 한계가 있고, 폴리곤 단위의 조명 계 산은 많은 부하를 동반하기 때문에 텍스쳐를 적용 ➢ 픽셀들의 음영 처리를 하기 위한 과정 ※ 픽셀 셰이더 단계 렌더링 파이프라인
  • 34. • 렌더 백엔드 ➢ 픽셀 셰이더에 의해서 넘어온 값을 실제 모니터에 출력해도 괜찮은지에 대한 검증 단계 ➢ 각종 렌더 우선순위나 알파 적용, 안티앨리어싱, Z-Buffer 등을 담당 렌더링 파이프라인
  • 35. • 출력 ➢ 최종적으로 모니터에 출력 ➢ 이 과정을 매 프레임마다 반복 ➢ 60fps면 1초에 60번 그려 내야 함 픽셀 수만큼 그려내야 함 ※ 1920*1080 = 2,073,600 렌더링 파이프라인