전체 글

게임 개발 관련 게시글을 올립니다. 학습한 내용을 정리하면서 공부하는 게 편해서 블로그에 글을 적고 있습니다.
이 게시글은 움짤이 있습니다. 데이터가 많이 나갈 수도 있습니다. PixelDepth 노드 현재 렌더링되고 있는 픽셀의 깊이 또는 카메라에서의 거리를 출력한다. https://docs.unrealengine.com/ko/RenderingAndGraphics/Materials/ExpressionReference/Depth/index.html Depth 표현식 렌더링되는 픽셀의 깊이를 다루는 표현식입니다. docs.unrealengine.com PixelDepth 노드 알아보기 이 노드에는 따로 프로퍼티가 없다. 아래 예시 노드는 언리얼 문서에 나와있는 PixelDepth 예시 노드이다. 적용해보면 움짤처럼 카메라와의 거리가 가까우면 0값에 가까운(어두운)색이 된다. 2048을 나누는 것이 처음엔 이해 안 ..
이 게시글은 움짤이 있습니다. 데이터가 많이 나갈 수도 있습니다. DepthFade 노드 반투명 오브젝트와 불투명 오브젝트가 겹칠 때, 부드럽게 이어지게 만들어준다. https://docs.unrealengine.com/ko/RenderingAndGraphics/Materials/ExpressionReference/Depth/index.html Depth 표현식 렌더링되는 픽셀의 깊이를 다루는 표현식입니다. docs.unrealengine.com DepthFade 노드 알아보기 (테스트 환경 세팅) 반투명 오브젝트와 불투명 오브젝트가 겹칠 때 사용할 수 있으니까, 반투명 오브젝트로 바꾸어준다. 테스트용으로 간단히 만들고, 테스트해보자. DepthFade 노드 알아보기 FadeDistance Fade가 발..
· 기타/C++
기본 문법 class PARENT { }; class CHILD : public PARENT { }; 기본적으로 private로 상속받기 때문에, public을 써주어야 한다. public 키워드를 쓰면, 부모 클래스의 public 멤버 변수를 public 권한으로 사용할 수 있다. 임의적으로 묶을 때 사용한다고 하는데, 거의 안써서 자세히 알고 있을 필요는 없다. 상속 클래스의 메모리 parent 클래스를 상속한 child 클래스를 만들게 되면 parent 클래스부터 메모리를 잡고, 그 후에 child 클래스 메모리를 잡는다. 그래서 parent 포인터에 child 주소값을 넣을 수 있다. Parent 포인터이기 때문에, Child 객체의 주소값을 받았더라도 Parent 부분만 사용 가능하다. #inc..
이 게시글은 움짤이 있습니다. 데이터가 많이 나갈 수도 있습니다. Fresnel 노드를 어떨 때 사용할까? 나도 아직 잘 모르는데, 구글링을 하면서 생각해보니 이럴 때 쓰일 것 같다. 1. 쉴드 같은 것을 만들 때, 빛이 나는 테두리. 2. 물 웅덩이를 수직으로 내려다볼 때는 투명하지만, 저 멀리 물을 보게 되면 불투명해 보이는 것. Fresnel을 이용해서 테두리를 만들어보자. Fresnel의 원리는 문서에 설명이 잘 되어있다. https://docs.unrealengine.com/ko/RenderingAndGraphics/Materials/HowTo/Fresnel/index.html 머티리얼에 프레넬 사용하기 Fresnel 머티리얼 노드 사용법 안내입니다. docs.unrealengine.com Fr..
Material 쪽에 흥미가 생겨서 유튜브에 있는 머터리얼 예제들을 많이 따라해봤다. 머터리얼에 대해 어느정도 감은 잡았는데, 막상 생각한 것을 혼자서 만드려고 하면 너무 어렵다. 각각의 노드가 하는 역할이 무엇인지 정리하면서, 어느 곳에서도 사용할 수 있게끔 이해해야겠다. 투명하게 하기 구체를 하나 만들고, 새 머터리얼 생성해서 연결시켜준다. 투명하게 만드려면 Material의 디테일 패널에서 설정을 바꾸어주어야 한다. Blend Mode를 Translucent(투명한)으로 바꾼다. (이거를 해야 Opacity 값을 조절할 수 있다. 원래는 비활성화 상태이다.) Two Sided 체크하기. (오브젝트의 앞 뒤가 모두 렌더링 될 수 있도록 함.) Shading Model을 Unlit으로 바꾼다. (라이팅..
양방향 연결 리스트란? 데이터를 가지고 있는 노드가 이전 노드와 다음 노드의 주소를 가지고 있는 리스트이다. 양방향 연결리스트의 특징 단방향 연결리스트는 이전 노드로 돌아가려면 저장을 해둬야했던 반면에, 양방향은 자유롭게 노드 이동이 가능하다. 그 대신에 이전 노드를 저장하는 변수가 하나 더 추가된다. 상황에 따라 사용하면 된다. 탐색이 빠르다고 하는 게시글도 몇몇 있는데, 정렬된 리스트가 아니면 의미 없기에 특징으로 적지 않겠다. 양방향 연결리스트 구현 (그림 설명) 2021/01/15 - [프로그래밍/자료구조 & 알고리즘] - 연결 리스트 (Linked List) 연결 리스트 (Linked List) 연결 리스트(Linked List)란? 데이터를 가지고 있는 노드가 다음 노드의 주소를 가지고 있는 ..
연결 리스트(Linked List)란? 데이터를 가지고 있는 노드가 다음 노드의 주소를 가지고 있는 리스트이다. 연결 리스트의 특징 메모리만 여유있다면, 크기 제한이 없다. 자료의 추가, 삭제가 O(1)에 가능하다. 자료의 탐색이 O(n)으로 느리다. But, 자료를 (추가, 삭제)하기 전에도 탐색을 한번 거쳐야 하기 때문에, (추가, 삭제)가 빠른 것을 장점이라고 말하기 어렵다. 연결 리스트 구현 (그림 설명) 자료를 쉽게 다루기 위해, Node 클래스 하나를 더미로 만들어 리스트의 시작 노드로 설정한다. 1. 데이터 추가 (맨 뒤에 삽입할 때) 받은 데이터로 노드를 하나 생성하고, 노드를 연결해준다. (리스트의 중앙에 삽입할 때) 마찬가지로 노드를 하나 생성하고, 위치를 찾아서 연결해준다. 순서 주의..
퀵 정렬(Quick Sort)란? 한 데이터를 골라 Pivot으로 설정하고, Pivot보다 작은 값은 왼쪽으로 넘기고 큰 값은 오른쪽으로 넘기면서 정렬하는 방식이다. 퀵 정렬의 특징 시간복잡도 최악 O(n^2), 평균 O(n log n) 분할정복 알고리즘이다. 평균적으로 매우 빠른 속도로 수행된다. 퀵 정렬 원리 1. 전체 배열을 대상으로 함수를 호출한다. 2. 가장 오른쪽 값을 Pivot으로 잡는다. (Pivot을 랜덤으로 잡으면 랜덤 퀵소트다.) 3. Pivot보다 작은 값들을 다 왼쪽으로 넘긴다. 3. Pivot이 들어갈 위치에 있는 값과 가장 오른쪽 값을 swap한다. 4. Pivot을 제외하고, 왼쪽과 오른쪽 배열을 계속 재귀함수 부른다. 퀵 소트 구현 (C++) #include #include..
푸쿠이
민규야 개발하자