원하는 목적 UI에 들어가는 스프라이트 이미지가 있고, 테두리만 걸러내는 기능이 필요했다. 시도 테스트용 이미지로 옛날에 만들었던 구름? 텍스쳐를 사용했다. 이런 생각을 통해 이렇게 만들게 되었다. -> (원본 텍스쳐 - 조금 줄인 텍스쳐)를 하면 테두리만 남지 않을까? -> 텍스쳐를 어떻게 줄이지? -> UV Tiling으로 오브젝트를 늘려서 조절한 뒤에, Offset을 슥슥 조절하면 되지 않을까? Shader Graph는 Sprite Unlit로 생성했다. 이미지의 Tiling을 늘려보았다. Tiling을 조절해도 단 하나만 보이기 위해, 이미지의 Wrap Mode를 Repeat에서 Clamp로 변경했다. Offset을 조절해서 중앙에 오도록 만들어보자. ( 짤려서 안 보이지만, Offset 값은 (..
https://www.youtube.com/watch?v=1fQzBYepKrY 위 튜토리얼을 보고 따라했습니다. 이거는 딱히 적어서 정리할 만한, 어려운 내용이 없다. Step 노드를 활용하면 이런 효과도 만들 수 있다~ 이런 느낌이다. Texture로 할 때는, 윗 부분 Position으로 하던 거를 Texture로 바꿔주기만 하면 된다. 튜토리얼에서는 Bloom효과를 적용해서 더 이쁘게 나오긴 했는데, 귀찮아서 적용 안 했다.
https://www.youtube.com/watch?v=M7ICBYmZkds 위 튜토리얼을 따라했습니다. Opaque Texture 설정 투명 효과를 내려면, 뒤에 있는 오브젝트가 보여야 한다. 정말로 투명해지는 게 아니라, 투명이 될 모델에 뒤에 있는 오브젝트가 텍스쳐처럼 그려지는 것이다. 뒤의 그림을 가져오기 위해, Opaque Texture를 체크해주어야 한다. Opaque Texture 설정은 불투명 오브젝트를 다 그린 다음, 그 화면을 Texture로 저장해놓겠다는 의미이다. 그래서 반투명 오브젝트를 그릴 때, 저장해놓은 Texture를 이용할 수 있다. 그만큼 성능에 영향이 많이 가서, 모바일에서는 안 쓰는게 좋을 것 같다고 한다. Shader Graph 설정 라이팅 연산 없이, 불투명 오브..
Shader Graph가 재밌어서, 간단하게 만들어보기로 했다. Main Light 설정부터 한다. Shader Graph의 노드에는 Light 노드가 없어서, Custom Function으로 Light를 받아와야 한다. Shader Graph는 Unlit Shader를 사용했다. #if defined(SHADERGRAPH_PREVIEW) lightDir = half3(0.5f, 0.5f, 0.0f); lightColor = 1; #else Light light = GetMainLight(); lightDir = light.direction; lightColor = light.color; #endif 사실 공식이 잘 기억 안나서, 저번에 코드로 정리해놓은 것을 보고 만들었다. 2021.03.03 - [기..
이번 게시글은 우여곡절이 많아서 억울해서 주저리주저리 씀. 상황 에셋스토어에서 다운한 에셋이 부위별로 메쉬가 교체 가능한 캐릭터 모델이었다. 메쉬를 교체하는 방식을 내 입맛대로 구조를 바꾸고, 애니메이션을 적용하는 과정을 적었다. 메쉬 교체하는 방식 바꾸기 캐릭터 모델을 임포트했는데, 모델링 구조가 너무 마음에 안들었다. 대략 부위마다 이런 구조였다. (모자 부위) - 모자 1 (모자 1을 사용하려면 이것만 On, 다른 것은 Off하는 방식.) - 모자 2 - 모자 3 어떻게 개선할까하다가, 모자 1, 모자 2, 모자 3와 같은 데이터 정보는 따로 클래스를 만들어서 보관하고, 각 부위에 데이터만 교체하는 구조로 새로 만들면 되겠다고 생각했다. (모자 부위) - 모자 (데이터만 교체.) 데이터 정보(모자 ..
https://answers.unity.com/questions/1668898/github-desktop-warning-lf-will-be-replaced-by-crlf.html Github Desktop "warning: LF will be replaced by CRLF" - Unity Answers answers.unity.com (에러 메세지가 복사가 안된다... ㅠㅠ) warning: CRLF will be replaced by LF in some/file.file. The file will have its original line endings in your working directory. 새로운 프로젝트를 시작하고, 깃허브에 Commit을 했는데 오류가 발생했다. 위의 게시글에 있는 방법처럼..
정리 1 게시글에서 렌더링 파이프라인이 보이지 않는 공간에 존재하는 오브젝트들이 2D 화면으로 그려지기까지의 과정이다. 라고 설명했는데, 이번 게시글에서는 이 과정을 풀어서 자세히 정리해보려고 한다. 헷갈리는 용어들 (드로우콜, 배칭, 레스터라이저, 컬링 등)에 대해서도 확실히 이해할 수 있을 것이다. 렌더링 파이프 라인 과정 Mesh의 Lifecycle을 기반으로 설명한다. 1. Mesh를 불러오고, 렌더링할 것을 요구한다. 게임(또는 어플)이 실행되면, 게임은 Mesh를 불러오는 것과 불러온 Mesh를 렌더링할 것을 요구한다. 2. Mesh를 Disk에서 RAM으로 불러온다. Disk일 때는 .obj, .fbx 등이지만, RAM으로 Load하는 과정에서 메쉬 정보로 바뀐다. RAM은 버텍스 위치의 정..
렌더링 기법 정리하는 겸해서 렌더링 기법에 대해 더 알아보았는데, 설명이 잘 되어있다. https://www.slideshare.net/agebreak/ndc11-deferred-shading | 포워드 렌더링 Single-pass - 해당 라이트에 영향을 받지 않아도 라이트 연산. - 화면에 렌더링 되지 않는 면(Culling)도 셰이팅 연산을 해야만 한다. - 멀티 라이트 상황에서 관리가 어렵다. - 그림자와의 통합이 어렵다. 예시) 1억 개의 오브젝트, 50개의 라이트 라이팅만을 위한 계산양 : 1억 * 50 Multi-pass - 화면에 렌더링 되지 않는 면(Culling)도 셰이팅 연산을 해야만 한다. - 높은 배치 카운트 ( 1 / object / light ) // 배치를 잘 몰라서 이해가 ..