목표 수십만 ~ 백만 개의 먼지를 렌더링한다. 먼지들의 움직임을 물리 기반으로 직접 구현하여 시뮬레이션한다. 진공 청소기로 먼지들을 예쁘게 빨아들인다. 주요 개념 Compute Buffer 큰 병렬 데이터를 GPU에 전달하거나 쉐이더끼리 공유하기 위해 사용한다. Vert/Frag, Compute Shader에서 ...
유니티 쉐이더 - 랜덤 함수들
Memo #define RM 39482.17593 #define RD1 7.8671 #define RD2 3.3419 #define RD3 5.8912 #define RP1 2.1759 #define RP2 4.7921 float Random11(float seed) { return frac(sin(dot(float2(RD1...
자료구조 - 힙(Heap), 우선순위 큐(Priority Queue)
트리 자료 구조 트리(Tree) 재귀적 계층 구조 노드로 이루어져 있다. 최초의 루트 노드에서부터 시작하며, 하나의 부모 노드는 여러 개의 자식 노드를 가진다. 이진 트리(Binary Tree) 각 노드가 최대 두 개의 자식만 가질 수 있는 트리 구조 포화 이진 트리(Perfect Binary Tree...
C# - XmlReader
XML eXTensible Markup Language의 약자로, W3C에서 개발된 마크업 언어. XML의 대표적인 파생 언어로 HTML이 있다. 기본적인 XML 파일의 확장자는 .xml이다. XML 문법 … 예시 패킷 데이터 목록 정의 <?xml version...
(Amplify) Spawn Effect Shader
Summary 월드 좌표의 한 점에서부터 스폰되는 효과 월드 공간의 버텍스 이동, 그리드 패턴의 디졸브 효과로 이루어져 있다. Preview Properties 프로퍼티명 설명 기본 값 범위 ...
유니티 - 모델 트랜스폼 구조 최적화하기
문제점 Skinned Mesh가 적용되는 게임 오브젝트의 경우, 하이라키에서 트랜스폼 구조를 확인해보면 이렇게 Bone 별로 각각 존재하여, 굉장히 많은 게임오브젝트들로 이루어져 있다. 그런데 유니티 엔진에서는 부모 게임 오브젝트의 트랜스폼에 변경사항이 생기면 모든 자식 트랜스폼에 변경이 발생한다. 한마디로, 위와 같이 무수히 많은 자...
유니티 - UI 이미지에 구멍뚫기
Mask 이런 이미지에 이런 마스크를 씌우려면 Mask Image (Image, Mask 컴포넌트 존재) Image (Image 컴포넌트 존재) 이렇게 마스크 이미지, 보여질 이미지를 부모-자식 관계로 구성하면 된다. 그러면 이렇게 마스크 이미지와 겹치는 영역만 보인다. Punch ...
유니티 - 한글 주석 인코딩 깨지는 경우 해결하기
Problem 문제 확인 비주얼 스튜디오에서는 위와 같이 잘 보이던 한글 주석이 유니티 에디터에서 보면 이렇게 깨지는 경우가 있다. 당장은 스크립팅에 문제가 없더라도, 스크립트 파일을 전송하거나 협업을 하게 될 때 문제가 생길 수 있다. 인코딩 인코딩을 확인해보면 EUC-KR의 확장인 코드 페이지 949(CP949)임을 ...
.NET CIL 명령어 모음
Instructions Stack 스택 : 계산 스택(Evaluation Stack) “스택의 값”을 언급하는 경우는 스택의 값을 꺼내어(Pop) 사용한다는 의미이다. “스택의 두 값”을 언급하는 경우는 스택에서 두 값을 꺼내어 사용한다는 의미이다. “스택의 두 값 A B”를 언급하는 경우, A는 스택에 먼저 넣었던 값이고...
C# - if-else if vs switch-case vs Dictionary
분기 처리 특정 변수의 값에 따라 분기를 나누어 처리해야 하는 경우, 일반적으로 if-else if 또는 switch-case문을 사용할 수 있다. int value = someValue; if(value == 0) DoSomething0(); else if(value == 1) DoSomething1(); else if(val...