반응형 전체 글 [Blender] 머테리얼 베이크 (3) - 노멀맵 베이크 (Normal Map Bake) 2023. 12. 21. 노멀맵이란? 어떤 물체의 표면을 나타낼 때 색상정보는 Diffuse(혹은 Albedo)로 나타낸다. 그런데 색상 정보만 있는 오브젝트는 무언가 허전하고 입체감이 없다. 왜냐면 Albedo Map은 물체의 질감은 나타내지 않기 때문이다. 그렇다면 이러한 질감표현은 어떻게 할 수 있을까? 물체의 질감을 나타내는 정보중 가장 큰 역할을 하는것이 노멀맵이다. (이 외에도 Roughness, Metallic 등이 필요하다.) 노멀맵이 빛에 따른 재질의 표현을 나타내기 때문이다. 노멀맵이 어떻게 재질을 표현할 수 있을까? 노멀맵은 광원에 따른 그림자 표현 방법을 2D 텍스쳐로 갖고있다. '빛이 어떤 방향에 있을 때 그림자는 어떻게 생긴다'라는 공식을 이미지 형태로 갖고 있는 것이다. (텍스쳐 형태로 갖고 있기 때문.. [Blender] 머테리얼 베이크 (2) - 디퓨즈/알베도맵 베이크 (Diffuse/Albedo Map Bake) 2023. 12. 20. 디퓨즈/알베도 맵이란? Diffuse와 Albedo 모두 3D 모델의 메인 컬러를 나타내는 텍스처이다. 같은 용도로 사용되기 때문에 같은 의미라고 생각하면 된다. 다만 Map이라는 용어가 사용된 이유는 게임 엔진에서 텍스처 정보를 UV에 맞게 펼쳐서 나타내기 때문이다. 블렌더에서 어떤 재질을 제작하였을 때 이 정보를 게임 엔진에서 사용하기 위해서는 해당 재질을 2D 텍스처로 변환하여 3D 모델에 사용할 수 있도록 변환하여야 한다. 이번 포스팅에서는 블렌더에서 제작한 모델의 Diffuse 정보를 png텍스처로 변환한 후 Unity에서 적용하는 일련의 과정을 나타내었다. 블렌더에서 디퓨즈/알베도 맵 베이크 방법 예시를 위해 스웨터 질감의 재질을 절차적 머테리얼(Procedural Materail)로 제작하였.. [Blender] 머테리얼 베이크 (1) - 하이트맵 베이크 (Height Map Bake) 2023. 12. 20. 하이트맵이란? Height Map은 지형 혹은 오브젝트 표면의 UV정보 중에서 높낮이를 그레이 스케일로 나타낸 것이다. 1차원 형태의 텍스쳐이기 때문에 흑백(혹은 빨간색)으로만 나타낸다. 게임엔진에서는 이 정보를 Mask Map에 넣어서 활용할 수 있다. 특히 게임 엔진에서는 터레인(Terrain)에 많이 사용한다. 지형 정보의 높낮이를 나타낼 때 하이트맵을 사용할 수 있기 때문이다. 이번 포스팅에서는 해당 하이트맵을 DCC툴(블렌더)로 제작하고 베이크 하여 게임엔진(Unity)에서 사용하는 방법을 기록하였다. 블렌더에서 하이트맵 제작 방법 하이트맵은 어떠한 용도로 사용되냐에 따라 제작방식이 조금은 다르다. 3D 오브젝트에 해당하는 하이트맵은 일반적인 베이크 방식으로 제작할 수 있으나, 오브젝트의 경우 .. [Unity] VFX Graph에서 양면 모두 나타낼 때 2023. 12. 19. 셰이더에서 양쪽면을 모두 렌더링 할 때 유니티의 렌더파이프라인중 SRP에서는 머테리얼에서 Double-Sided를 눌러서 양쪽면을 모두 나타낼 수 있다. 하지만 VFX Graph에서 VFX Shader를 사용하려고 하면 Double-Sided를 찾을 수 없는데, 이는 Inspector에서 해결할 수 있다. 해결 방법 우선 아래처럼 VFX Graph에서 Output Particle 블록을 선택한다. 그리고 Inspector를 확인하면 다음과 같은 선택영역이 있다. 여기서 Cull Mode를 Off로 변경한다. [Unity] VFX Graph에서 항목이 보이지 않을 때 2023. 12. 19. 증상 및 원인 튜토리얼이나 공식 문서에는 나와있지만 VFX Graph에는 항목이 없는 경우가 있다. 이는 대부분 튜토리얼과 다른 버전의 VFX Graph 버전을 사용하고 있거나, 해당 버전에 있지만 Experimental인 경우이다. 예를 들어, Output Particle Mesh(VFX Mesh Output)에 여러 개의 Mesh를 Output으로 설정을 하려고 해도 2022.3 LTS에서는 하나의 Mesh만 Output으로 지정하도록 되어있다. 따라서 하나의 메쉬 이상은 지정할 수가 없는데, 이는 해당 기능이 실험(Experimental)이기 때문이다. 해결 방법 실험 기능을 사용할 수 있도록 옵션을 켜주어야 한다. Edit - Preferences - Visual Effects 메뉴로 들어가서 E.. [Unity] 런타임 애니메이션 녹화 - GameObjectRecorder 2023. 12. 18. 런타임 도중 애니메이션 녹화 필요성 플레이어를 런타임 도중에 조작하고, 움직인 동작을 애니메이션 클립으로 저장할 수 없을까? GameObjectRecorder를 사용하면 런타임에 실행된 변화를 애니메이션 클립으로 저장할 수 있다. 이렇게 하면 인게임에서 리플레이 시스템으로 활용할 수 있고 버츄얼 프로덕션 등에도 유의미하게 활용할 수 있다. 어떻게 런타임에 녹화할 수 있을까? GameObjectRecorder를 사용하면 가능하다. 아래의 스크립트는 예시중 일부이다. using System.Collections; using System.Collections.Generic; using UnityEditor.Animations; using UnityEngine; public class RuntimeRecorde.. [Unity] 물 표현 - HDRP Water 2023. 12. 18. 유니티에서의 물 표현 에디터 2022 이후의 버전부터는 HDRP에서 기본적으로 물을 렌더링 할 수 있다. (빌트인이나 URP도 유니티에서 배포하는 워터 셰이더가 있긴하지만, 공식적으로 엔진에 포함되어 있진 않고 Git으로 별도로 내려받아야 한다) HDRP에서 구현 방법 SRP에서 Post-Processing을 추가하듯이 Volume에 Override로 추가할 수 있다. 하지만 프로젝트 세팅에서 설정을 모두 해주어야 사용이 가능하다. 처음 Volume에 Override를 시도하면 다음과 같은 메시지가 나타난다. 이후 Open을 눌러 프로젝트 세팅으로 넘어간 후 Water를 Enable 해준다. 다시 Volume으로 넘어가면 활성화된 것을 확인할 수 있다. 이렇게 하면 기본적인 설정은 모두 끝이다. 이제 H.. [Blender] 색깔이 모두 핑크(마젠타)색으로 나타날 경우 2023. 12. 17. 증상 및 원인 블렌더 파일을 외부에서 받아서 열거나 FBX 등의 포맷을 임포트 할 때 텍스쳐가 있음에도 표면이 모두 핑크색(마젠타색)으로 나타나는 경우가 있다. 이는 파일의 구조가 변경되며 Shader가 텍스쳐의 위치를 못 찾기 때문이므로 올바른 위치를 새로 지정해주어야 한다. 해결 방법 아래 처럼 File의 External Data로 이동한다. Find Missing Files를 누르면 브라우저창이 나타나는데, 텍스쳐를 포함하고 있는 폴더를 선택해 주면 된다. 이전 1 2 3 4 5 6 7 ··· 18 다음 4/18 반응형