쉐이더? GPU를 통해 연산하는 행위
gpu 에는 계산가능한 코어가 수백~수천개가 들어있음
cpu의 100배가 넘음
이를 통해서 버텍스와 픽셀값을 한번에 계산 가능
그럼 왜 엔진을 쓰는가?
3D max 등 그래픽 에디터 툴에서 만든 모델을 실제 게임에 적용하기는 어려움.
opengl/ directx 같은 경우 파싱과 로더를 만들어야 함.
그래서 이부분을 Unity/ Unreal 이 쉽게 도와줌
셰이더란? GPU를 통해 연산을 하는 것
언리얼에선 다양한 셰이더를 지원함
셰이더 종류
1. Vertex
2, Fragment(pixel)
CPU에서 전송-> 1로 연산 -> 2로 연산 -> 디스플레이에 표현
1: 속도가 빠름
2: 속도가 느림
GLSl( opengl shading language)
그래픽스의 모든 요소는 행렬로 되어 있음
행렬 연산은 스택 구조로 되어있음
가장 기본적인 셰이더는 Phong Shader
?: 각 버텍스 별로 가지는 법선 벡터를 조작하여 굴곡을 생기게 하는 매핑
노멀 맵핑 ? - 버텍스 갯수는 똑같은데 더 섬세하게 얼굴 표현 가능
원형: 지브러시를 통해서 먼저 만듬
셰이더: 버텍스가 적어도 많은 표현을 할 수 있음
하지만 빛이 있어야됨
"빛을 중심으로 물체들의 깊이 값만 렌더링하여 적용하는것이 shadow. 셰도우만 잘해도 이쁨
선명하기 위해서는 렌더링된 텍스쳐 크기가 커야함
실린더 버퍼(보이는 곳만 하자)를 이용해 더 정확한 렌더링을 진행하기도 함 "
VTF? 행렬, 버텍스 정보를 행렬에 담아, GPU에서 버텍스들을 개별적으로 연산하는 방법을 VTF라고 함. 이러한 방법으로 군중렌더링을 함.
애초에 GPU에서 연산하기위해서, cpu에서 gpu 통신량이 엄청 커지는데, vtf라는 메모리를 통해서 보내는 방법을 통해서 전송
비쥬얼 스튜디오에서 컴파일해도 언리얼 켜짐
Actor 3디 오브젝트 컨트롤 적합함
character 캐릭터 컨트롤 적합
pawn 추상클래스/ 스테이지 등 추상적인 개념 적합
BeginPlay() 초기 캐릭터 생성할 때 호출
Tick() 매 프레임 마다 호출되는 함수
SetupPlayerInputComponent()게임 내 키보드 마우스 입력 받는것 ( pawn에만 있음, actor에 없으니까 캐릭터를 생성 햇을 때 , stage에서 인풋을 받고 actor를 조종하는식으로만듬)
'OLD개발이야기 > C++' 카테고리의 다른 글
피보나치 수열 C++ (0) | 2018.01.31 |
---|---|
C++ 사인 그리기 (0) | 2018.01.22 |
다른 클래스의 함수를 쓸 수 있는지 ? [가능] (0) | 2017.04.18 |
C++ 공부 (0) | 2017.04.04 |