반응형

 

 

 

 

 

 

 

 

파티클 옵션

 

 

 

 

참고 사이트

- UnitychanKAGURA

 

ユニティちゃんKAGURA(URP) - ダウンロード - UNITY-CHAN! OFFICIAL WEBSITE

2018年末のイベントに登場した和装のユニティちゃんです。Unite In The Skyのリミックス曲と振り袖にあわせた新たなダンス、和風のステージデータも同梱されています。 Unity2019.4.16f1, Universal Ren

unity-chan.com

 

 

 

 

 

반응형
반응형

 

 

 

 

그래픽스 파이프라인

- 3차원 컴퓨터 그래픽스에서 그래픽스(또는 렌더링) 파이프라인은 3차원 이미지를 2차원 래스터 이미지로 표현하기 위한 단계적 방법을 말한다.

- 위 다이어그램은 DX3D 11에서의 파이프라인이며 입력에서 출력으로의 데이터 흐름을 보여준다.

- 다이어그램에서 직사각형 단계는 하드웨어 처리이기 때문에 프로그래밍이 불가능하고, 둥근 블록의 단계는 HLSL(High Level Shader Language)을 사용하여 프로그래밍이 가능하다.

- 보통 쉐이더 프로그래밍이라 말할 때는 '버텍스 쉐이더'와 '프래그먼트(픽셀) 쉐이더'를 제어하는 코드를 작성하는 것을 가리킨다.

- Input-Assembler(입력 조립) Stage : GPU가 CPU부터 정점 데이터를 받아 프리미티브들을 만든다.

- Vertex Shader(정점 쉐이더) Stage : 정점들의 공간 변환을 수행한다.

- Rasterizer(래스터라이저) Stage : 정점 데이터들을 기반으로 보간된 프래그먼트(픽셀)를 생성한다.

- Pixel Shader(픽셀 쉐이더) Stage : 프래그먼트를 받아 화면에 그려질 픽셀들의 색과 깊이 값을 출력한다.

- Output-Merger(출력 병합) Stage : Z 테스트, 스텐실 테스트, 알파 블렌딩을 통해 최종적으로 화면에 그려질 색상을 결정한다.

※※※ 프리미티브 : 가장 원시적인 단위를 뜻하는 것으로 여기서는 삼각형을 뜻한다.

 

 

 

- 다이어그램을 조금 더 세부적으로 표현하면 다음과 같다.

 

  • 로컬 스페이스

- 모델링 스페이스라고도 하며, 모델링 과정을 월드에 직접 구성하는 것보다 쉽기 떄문에 로컬 좌표 시스템을 이용하여 모델링을 쉽고 단순하게 만들어준다.

- 로컬 스페이스에서는 위치, 크기와 월드 내에서의 다른 물체와의 관계를 고려하지 않고 구성이 가능하다.

  • 월드 스페이스

- 로컬 좌표 시스템 내에 다수의 모델을 구성한 다음, 이들을 월드 좌표로 옮겨 하나의 장면을 구성한다.

- 행렬을 이용해 로컬 스페이스의 물체들을 위치, 회전, 크기의 변경작업을 수행하게 된다.

  • 뷰 스페이스

- 월드 좌표에서 카메 중심으로 좌표변환을 한다.

- 카메라를 월드 내의 임의의 위치나 방위를 가지면 투영 및 그 밖의 작업이 어렵다.

- 그래서 카메라를 월드의 원점으로 변경하고 양의 Z축을 보도록 한다.

  • 컬링(후면 추려내기)

- 카메라에 대해 뒤집혀있는(뒷면)의 프리미티브 처리를 건너뛰는 작업이다.

- GPU가 고속화 되더라도 모든 면을 연산하기에는 GPU에 부담이 되므로 렌더링 축소는 항상 해야된다.

  • 조명

- 물체에 명암을 주어 사실감을 더해준다.

- 조명은 정반사광(Specular), 난반사광(Diffuse), 환경광(Ambient)등이 있다.

- 광원은 방향성 광권(Directional light), 점 광원(Point light), 점적 광원(Spot light)이 있다.

  • 클리핑

- 시야 볼륨 외부의 기하물체를 추려내는 과정이다. (절두체 컬링)

- 절두체 : 투영행렬을 계산할 때 범위의 모양이 삼각뿔의 머리를 잘라둔 것처럼 생겨서 절두체라고 한다.

- 완전한 내부 : 폴리곤이 완전히 절두체 내부에 위치하면 그대로 보존

- 완전한 외부 : 폴리곤이 완전히 절두체 외부에 위치하면 추려낸다.

- 부분적 내부 : 폴리곤이 부분적으로 절두체 내부에 위치하면 폴리곤은 두 부분으로 나누어 내부에 위치한 부분은 보존하고 나머지는 추려낸다.

  • 투영

- 3D를 2D로 표현 (N차원에서 N-1 차원을 얻는 과정)

- 원근 투영(Perspective projection)을 사용하여 2차원의 화면을 얻는다.

  • 뷰포트

- 화면에 표시되는 영역

- 윈도우의 뷰포트라 불리는 화면의 직사각형으로 변환하는 과정

- 투영된 이미지를 모니터에 표시할 수 있는 크기로 다시 변환

  • 래스터라이즈

- 각각의 폴리곤을 그리는데 필요한 픽셀 컬러를 계산 (각 정점 좌표로 부터 선형 보간에 따라 생성된다.)

- 픽셀 하나하나를 계산하는 작업을 하기에 엄청난 양의 연산처리가 필요하므로 전용 그래픽 하드웨어에서 처리되어야한다.

 

 

 

 

 

반응형
반응형

 

 

 

 

Mixamo에서 모델을 다운받아 유니티에 임포트해서 씬에 배치하면 텍스처 없이 모델만 보여진다. 해당 모델의 텍스처를 불러오고 추가로 생기는 문제를 해결해보자.

 

 

 

 

텍스처 불러오기

1. 모델을 클릭한 뒤, 인스펙터 창에서 Materials를 클릭한 뒤, Extract Textures버튼을 클릭한다.

 

2. Select Texture Folder 창이 뜨면 원하는 텍스처가 저장될 폴더를 지정한 뒤 폴더 선택 버튼을 누르면 텍스처가 추출된다.

 

3. 텍스처 추출이 완료되면 NormalMap Settings 창이 뜨는것을 볼 수 있는데, 해당 창에서는 Fix Now를 누르면 된다.

 

 

결과

 

 

 

 

 

텍스처가 비정상 적으로 보이는 현상

- 이 부분은 모델마다 다른데 텍스처가 비정상적으로 보이는 문제의 원인은 Material의 렌더모드가 Transparent로 되어있어서 생기는 현상이다. (Transparent로 괜찮은 모델이 있고 바꿔줘야되는 모델이 있는데 왜이러는지는 모르겠다.)

 

1. 모델을 클릭한 뒤, 인스펙터 창에서 Materials를 클릭한 뒤, Extract Materials를 클릭한다.

 

2. Select Materials Folder 창이 뜨면 Material을 추출 할 폴더를 선택한다.

 

3. 추출한 폴더를 확인해보면 해당 모델의 Material을 확인할 수 있는데, 여기서 (URP 기준)Surface Type

Opaque로 변경해주면 정상적으로 보이게된다. (레거시의 경우 Render mode에서 Opaque로 변경하면 된다.)

 

 

결과

 

 

 

 

 

 

반응형
반응형

 

 

 

 

언리얼 디버깅을 위해 비주얼 스튜디오에서 디버거를 실행하면 '~\UE4.exe' 프로그램을 시작할 수 없습니다. 라는 에러창을 볼 수 있다. 어려운 문제는 아니고 시작 프로젝트만 설정해주면 된다.

 

 

 

 

 

해결방법

1. 비주얼 스튜디오 솔루션 탐색기 창에서 언리얼 프로젝트를 찾는다.

2. 프로젝트를 우클릭 한 뒤 '시작 프로젝트로 설정'을 클릭한다.

3. 다시 디버거 실행하면 정상적으로 언리얼 에디터가 실행되는 것을 확인할 수 있다.

 

 

 

 

 

반응형
반응형

 

 

 

 

로그 출력

- 다음과 같이 작성하면 된다. (예시에서 Value는 지역변수)

//카테고리, 로깅수준, 형식(인자)
UE_LOG(LogTemp, Warning, TEXT("UpDown %f"), Value);

 

결과

 

 

 

 

디버깅 하기

- 기존에 켜둔 언리얼 에디터를 종료한다.

- 비주얼 스튜디오에서 솔루션 구성을 'DebugGame Editor''Development Editor'로 변경한 뒤, 디버거를 실행한다.

- 디버거를 실행하면 언리얼 에디터가 실행되는데, 언리얼 에디터에서 플레이를 하면 브레이크 포인트를 찍은 곳에 걸리는 것을 확인할 수 있다.

 

결과

- 다음과 같이 브레이크 포인트가 걸리는 것을 확인할 수 있다.

 

 

 

 

※※※ 디버깅 시 에러가 나는 경우 다음 포스팅 참고

 

 

[비주얼스튜디오] UE4.exe 프로그램을 시작할 수 없습니다.

언리얼 디버깅을 위해 비주얼 스튜디오에서 디버거를 실행하면 '~\UE4.exe' 프로그램을 시작할 수 없습니다. 라는 에러창을 볼 수 있다. 어려운 문제는 아니고 시작 프로젝트만 설정해주면 된다.

srdeveloper.tistory.com

 

 

 

 

반응형

+ Recent posts