728x90

Unity 149

유니티..바이블 - 19장 마스터 데이터 퀘스트 (1화)

. . 19장: 마스터 데이터 퀘스트 Excel Importer, 마스터 데이터의 구축과 활용, 레벨 디자인, ScriptableObject ​ - Excel Importer 플러그인을 이용한 엑셀 파일의 이용 방법 - 엑셀 파일을 이용하는 마스터 데이터 구축의 예 - 유니티에서 마스터 데이터를 이용하는 구체적인 구현 방법 ​ 플러그인 주소 https://github.com/mikito/unity-excel-importer/releases ​ Unity 2019.1.4f1 버전으로 진행. 프로젝트를 열면 마이그레이션이 완료되고 아래와 같은 에러가 뜸. Feature `out variable declaration' cannot be used because it is not part of the C# 4.0..

책떼기 완 "유니티 그래픽스 최적화 스타트업"

. . 그래픽스 프로그래밍 개념 공부 및 재활훈련겸 보기 시작했던 책 "유니티 그래픽스 최적화 스타트업" 오지현 저 ​ 전부 읽고 내용정리까지 마무리 했습니다. 기본적인 렌더링 개념부터 최적화에 필요한 필수 내용들도 하나씩 다루고 있어 내용이 알찹니다. ​ 유니티로 그래픽스 관련 작업을 한다면 한 번은 읽어볼만한 내용들도 많고요, 유니티의 렌더링 특징에 대해서도 깨알같이 다루는 내용들이 많습니다. ​ 아래는 내용정리 포스트 링크 모음. 챕터 제목을 클릭하면 열립니다. ​ 1.최적화 개요 2.렌더링 파이프라인 3.병목 4.드로우콜과 배칭 (Draw Call & Batching) 5.라이팅 (Lighting) 6.그림자 (Shadow) 7.GI (Global Illumination) 8.텍스처 (Textur..

유니티 그래픽스 최적화 - 9.SRP;LWRP

9. SRP;LWRP 최적화의 가장 중요, 병목 제거 ​ 9-1 SRP (Scriptable Render Pipeline) 유니티 2018부터 Scriptable Render Pipeline 제공. 렌더링 처리 방식을 C#으로 제어 가능. 라이팅 처리 방식, 전반적 렌더링 루프 직접 구성 가능. 새로운 렌더링 기술 직접 적용하거나, 특정 하드웨어에 맞게 최적화도. ​ GPU 렌더 파이프라인뿐 아니라, 어플리케이션 스테이지 렌더 루프 모두 포함. 한 프레임 렌더링에 들어가는 컬링, 펜더 패스, 멀티 패스 모든 절차 아우름. ​ 기존 유니티 렌더 파이프라인은 블랙박스. 공개되지 않았다. SRP 를 통해 제어하고 커스터마이징 가능. 기본 렌더 파이프라인은 Built-in 파이프라인이라고 부름. 앞서 설명한 포..

유니티 그래픽스 최적화 - 8.텍스처 (Texture)

. . 8. 텍스처 (Texture) ​ 8-1 인트로 텍스처는 주로 픽셀쉐이더 단계에서 사용. 텍스처 값 샘플링 > 최종컬러 반영. (Vertex Texture Fetch 기법은 논외) 참고 : 텍스처 사용은 아래 참고 https://youtu.be/-6iquaC0Hf4 ​ 8-2 대역폭 (Bandwidth) 텍스처 병목 = 메모리 대역폭에 종속( Memory Bandwidth ) 이미지 데이터 사이즈가 커지면 대역폭 문제 발생. 프로세서가 한 번에 가져올 수 있는 데이터 크기 한정. ​ 모바일 기기 더욱 이슈. 전력소모, 물리적으로 작아서 쿨링 미미, 발열 문제. 그래서 대역폭이 작게 설계. CPU, GPU 뿐 아니라 메모리도 발열과 전력 소모에 큰 영향. 쓰로틀링(Throttling, Thermal..

유니티 그래픽스 최적화 - 7.GI (Global Illumination)

. . 7. GI (Global Illumination) ​ 라이트와 그림자는 연산이 비싸기 때문에 라이트맵과 라이트 프로브 등 미리 연산하는 솔루션들을 적극 활용, 절약하면 좋다. GI 적용 가능. 광원이 태양광 하나로 출발해도 Direction 라이트 영향, 튕겨서 들어오는 Indirection 라이트 영향도 받음. 어떤 지점은 Direction 영향은 막히고, Indirection 영향만 받기도. https://docs.unity3d.com/kr/current/Manual/LightMode-Baked.html ​ 이 현상을 글로벌 일루미네이션(Global Illumination) 라이트맵과 라이트프로브를 이용해서 GI현상까지 미리 연상하여 기록해놓을수 있다. 실시간으로 GI를 처리하려면 많은 연산 ..

유니티 그래픽스 최적화 - 6.그림자 (Shadow)

. . 6-1 쉐도우맵 ​ Mesh Renderer 컴포넌트의 Cast Shadows 항목은 오브젝트의 그림자가 다른 오브젝트에 드리우는지, Receive Shadows 항목은 오브젝트에 다른 오브젝트의 그림자를 받는지. ​ 정적인 오브젝트는 라이트맵을 활용. 라이트맵은 GI(7장)에서 다룸. ​ 유니티는 쉐도우맵 기법을 사용. 그림자의 깊이를 저장하는 버퍼 생성, 픽셀쉐이더(Pixel Shader)에서 깊이를 비교하는 과정 거침. 넓은 영역은 여러 구역으로 나누기도 함(Cascade) 계단 현상을 없애기 위해 여러 번 샘플링, 필터링 처리 등. 렌더링 비용 중 많은 부분을 차지. ----- 셀프 쉐도우 (Self Shadow) 오브젝트 자기 자신의 그림자를 드리우는 기능. ----- ​ 쉐도우맵의 원리..

유니티 그래픽스 최적화 - 5.라이팅 (Lighting)

. . 라이트의 모든 걸 다루진 않고, 성능에 포커싱해서 유의점들을 다룬다. 라이팅 전반은 유니티 매뉴얼 https://docs.unity3d.com/kr/current/Manual/LightingOverview.html ​ 5-1 포워드 렌더링 vs 디퍼드 렌더링 ​ 카메라 컴포넌트에서 포워드 렌더링과 디퍼드 렌더링 두 가지 방식 중 선택 가능. Rendering Path 에서 Forward, Deferred 선택. Use Graphics Settings 로 두면 포워드 혹은 디퍼드를 강제하지 않고 디바이스마다 다른 렌더링 파이프라인 설정 가능. Edit > Project Settings > Graphics 선택, GraphicsSettings 인스펙터 오픈. Tier Setting 에서 플랫폼 티어별..

유니티 그래픽스 최적화 - 4. 드로우콜과 배칭 (Draw Call & Batching)

. . 4. 드로우콜과 배칭 (Draw Call & Batching) 4-1 드로우콜 (Draw Call) 수많은 병목지점이 있지만, 드로우콜이 병목인 경우가 많다. 최적화를 많이 간과하기 때문. 01) 드로우콜의 이해 CPU가 GPU에 오브젝트를 그리라는 명령을 호출하는 것. 한 프레임에서, 오브젝트 하나를 그릴 때 여러가지 정보들이 CPU에서 GPU로 전달됨. (매시 데이터 ,텍스쳐, 쉐이더, 트랜스폼, 블렌딩 셋팅 등등) DATA > Storage(HDD,SDD,SD) > CPU Memory > GPU Memory 플랫폼에 따라 VRAM(GPU Memory)은 자동으로 관리됨. 가비지는 VRAM 에서 제거하고 올리는 등 관리가 됨. GPU는 그려야 하는 상태 정보를 담는 테이블을 가지고 있고 텍스처..

유니티 그래픽스 최적화 - 2.렌더링 파이프라인

. . 책 읽으면서 대략적인 내용 정리. 이번엔 렌더링 파이프라인입니다. 기본적인 내용들이고 이미지 설명이 많아서 정리는 심플합니다. 자세한 설명은 책 본문에서 확인해주세요. ​ 2. 렌더링 파이프라인 (Rendering Pipeline) 화면에 그려지는 과정, Graphics API 워크플로우 2-1 GPU의 의미 . 2-2 게임 루프 게임루프를 크게 묶어 보면 다음과 같다. - 리소스 생성 및 초기화 (Initialization) - 갱신 (물리, 입력, 로직, AI, 네트워크, 애니메이션 등) - 렌더 - 종료 전 해제 (Decommissioning) 스크립트 라이프사이클 플로우차트 (Script Lifecycle Flowchart) https://docs.unity3d.com/kr/2019.1/M..

유니티 그래픽스 최적화 - 1.최적화 개요

. . 유니티 리드 에반젤리스트 오지현님의 "유니티 그래픽스 최적화 스타트업" 오랜만에 다시 읽기 시작해서 내용 정리 중입니다. ​ 이전에 3챕터 다뤘고 이번엔 1챕터. 그냥 읽고 넘겨도 될 부분이 많아서 1챕터 정리는 짧네요. 제가 읽으면서 스터디 목적으로 간략하게 정리한 포스트입니다. 자세한 설명은 책 본문에서 확인해주세요. 1. 최적화 개요 최적화의 가장 중요, 병목 제거 1-1 최적화 이해 1-2 렌더링의 이해 슈렉의 법칙 기술 발전과 시간의 지남에 따라 렌더링 시간이 더 늘어남. 2001년 슈렉 1 렌더링 500만시간 데이터 크기 6TB 2004년 슈렉 2 렌더링 1000만시간 2007년 슈렉 3 렌더링 2000만시간 2010년 슈렉포에버 렌더링 4500만시간 슈렉1 데이터 크기 6TB 드래곤 ..

728x90
반응형