개요이번 포스팅에서는 중복 조합에 대해서 알아보겠습니다.첫 포스팅에서 알아봤듯이 중복 조합은 "n개에서 r개를 뽑되, 순서를 신경쓰지 않고, 복원 추출하는 경우의 수"입니다. 중복 조합의 경우의 수를 계산할 때는 보통 "막대기를 배치하는 경우의 수"로 치환해서 생각합니다."막대기를 배치"한다는게 어떤 의미인지 알아보기 위해 예제를 한 번 들어보겠습니다.막대기 배치 예시a, b, c라고 써있는 영어 카드가 있다고 생각해봅시다.이때 순서를 신경쓰지 않고 4번 복원 추출로 뽑았을 때 나올 수 있는 경우의 수는 몇 개일까요? 먼저 생각할 수 있는 것은a가 네 번 나오는 경우 -> aaaab가 네 번 나오는 경우 -> bbbbc가 네 번 나오는 경우 -> cccc입니다.그 외에 baaa, abaa, aaba, a..
이번 포스팅에서는 조합에 대해 알아보겠습니다.조합은 순열을 통해서 유도할 수 있습니다. 먼저 첫 포스팅에서 알아 보았던 조합의 정의에 대해서 다시 한 번 생각해봅시다.조합은 "n개 중에서 r개를 뽑을 때, 순서를 고려하지 않고, 비복원 추출하는 경우의 수"입니다.순열과 조합의 다른 점은 순서를 고려하냐 마냐입니다. 저번 포스팅의 예제인, 3개의 카드에서 2개를 뽑는 경우의 수를 다시 한 번 생각해봅시다.위 이미지에서 결과중 하나인 (1,2)와 다른 결과인 (2,1)은 조합 입장에서는 순서를 신경쓰지 않기 때문에 같은 "경우"입니다.즉, 경우의 수를 계산할 때 2개가 아닌 1개로 친다는 의미이죠똑같이, (1,3)과 (3,1)도 같은 것으로 치고, (2,3)과 (3,2)도 같은 것으로 칩니다.결론적으로 위 ..
이번 포스팅에서는 중복 순열 다음으로 이해하기 쉬운 순열에 대해서 이야기하겠습니다.중복 순열이 아니라 그냥 순열이므로 n개에서 r개를 뽑을 때 n이 r보다 크거나 같아야 합니다. 저번 포스팅의 예제를 그대로 가져와서 3개의 숫자 카드 중 2개를 뽑는 경우의 수를 생각해보겠습니다.일단 첫 번째 시도에서 뽑을 수 있는 숫자는 1, 2, 3해서 총 3가지입니다.두 번째 시도에서 뽑을 수 있는 숫자는 첫 번째 시도에서 뽑은 숫자를 제외했기 때문에 총 2가지입니다.역시나 그림으로 보겠습니다.n과 r이 작아서 잘 안 느껴질 수 있지만 생각해보면 처음에 뽑을 때 가능한 수는 n개, 그 다음은 n-1개, 그 다음은 n-2개 입니다.이렇게 총 r번 뽑게 됩니다.결론적으로 수식으로 표현하면$$n*(n-1)*(n-2)*....
이번 포스팅에서는 "중복 순열"에 대해서 알아보겠습니다."중복 순열"을 가장 먼저 설명하는 이유는 중복 순열이 이해하기 가장 쉽기 때문입니다. 앞선 포스팅에서 조합, 순열, 중복 조합, 중복 순열은 "n개 중에 r개를 뽑는 경우의 수"라고 설명을 드렸었습니다.근데 그렇게 생각하면 n개가 r개 보다 크거나 같아야 할 것처럼 보입니다. 실제로 순열과 조합에서는 n이 r보다 크거나 같아야 합니다. 그래야 n개 중에서 r개를 뽑을 수 있기 때문입니다. 하지만 중복 순열과 중복 조합은 다릅니다.n개 중에서 r개를 뽑되, 뽑은 뒤에 다시 되돌리는 "복원 추출" 방식이기 때문에 n이 꼭 r보다 크거나 같을 필요는 없습니다.이런 복원 추출은 사실 "n개의 원소 각각이 무한히 있는 상황에서 r개를 뽑는 것"이라고 볼 수..
이번 시간에는 "순열, 조합, 중복 순열, 중복 조합"에 대해서 알아보겠습니다.순열과 조합에 대해서 생각하면 가장 먼저 생각 나는 것이 아마 C(Combination)과 P(Permutation)일 겁니다.$$_{n}\!C_{r} , _{n}\!P_{r}$$다만, 이걸 단순히 외웠다면 각 항이 어떤 의미였는지, 또 실생활에 어떻게 적용할지 생각하려면 조금 시간이 걸릴 수 있는데요이번 포스팅에서 관련 내용들을 정리해보겠습니다. 먼저 이 4가지 요소의 공통점은n개에서 r개를 뽑을 때의 경우의 수라는 것입니다. 여기서 먼저 "경우의 수"를 생각해 봅시다."경우의 수"라 함은 말 그대로 "특정 행위를 했을 때 나올 수 있는 경우(Case)의 가지수"입니다여기서 각각의 경우가 나올 확률은 고려하지 않습니다.예를 ..
개요이번 시간에는 DirectX12로 Compute Shader를 사용하는 예제를 만들어 보도록 하겠습니다. 먼저 단어 분석부터 해보겠습니다.Compute Shader에서 Compute는 계산이라는 뜻이고, Shader는 컴퓨터 그래픽스의 Vertex Shader/Pixel Shader에서의 Shader입니다.기존에 Shader들은 Vertex별로 실행되거나, Pixel별로 실행되는 등 특정한 역할이 있었습니다.다만 컴퓨터 그래픽스 기술이 발전하고, GPU가 발전하면서 General한 연산을 GPU의 도움을 받아 진행하고 싶은 니즈가 생겼고, 이를 해결하기 위해 나온 것인 Compute Shader입니다.Compute Shader는 일단 간단하게 "General한 연산을 GPU로 실행하는 프로그램" 정도..
개요이번 시간에는 DirectX12를 활용해서 Deferred Shading을 하는 방법에 대해서 알아보겠습니다.먼저 단어를 분석해보겠습니다."Deferred"는 "지연된"이라는 의미입니다."Shading"은 "음영 처리"라는 의미입니다. 컴퓨터 그래픽스 분야에서는 조명에 따라 픽셀을 어떤 색으로 칠할지 정하는 것을 의미합니다.따라서 "Deferred Shading"은 말 그대로 "조명 계산을 지연시켜 나중에 처리하는 렌더링 방식"을 의미합니다. Deferred Shading을 사용하는 이유는 기존 방식인 Forward Shading과 비교해서 장점이 있기 때문입니다.어떤 장점이 있는지 알아보기 위해 Deferred Shading의 반대되는 개념인 Forward Shading을 먼저 알아봅시다.Defer..
Dicey Tales라는 게임을 플레이 해보았습니다.https://store.steampowered.com/app/3279980/Dicey_Tales/로그라이크 요소와 SRPG를 합치면 어떤 모습일까 궁금했었는데 딱 궁금증을 해결해줄만한 게임이었습니다.게임을 간단히 설명하고 게임을 플레이하면서 느꼈던 장점과 단점을 적어보고자 합니다.게임 규칙게임 규칙은 전투 파트와 비전투 파트를 나눠서 설명하도록 하겠습니다.게임 규칙 - 전투 파트전투에 돌입하면 7x7 정도 되는 그리드에 적들이 배치되어 있습니다.맵의 크기는 전투마다 다르며 중간 중간 장애물이나 오브젝트가 배치되어 있는 경우도 있으나 흔치 않습니다. 플레이어는 적들의 배치 상태를 보고 아군 유닛들을 배치합니다.맵이 허허벌판인 경우가 많고 아군 유닛들을 ..
이번 시간에는 DirectX12를 활용한 Bloom 효과에 대해 알아보겠습니다. Bloom은 굉장히 밝은 물체를 봤을 때 생기는 현상을 모니터로 표현하는 것입니다.PostProcess를 통해 구현할 수 있으며 간단한 연산으로 구현할 수 있기에 적은 비용으로 이미지에 사실감을 더해줄 수 있습니다. 가장 먼저 Bloom 효과를 실제로 구현한 모습부터 보겠습니다.밝게 빛나는 부분들 근처가 뽀얗게 보이는 효과가 바로 Bloom 입니다.Bloom 효과를 구현하는 과정을 이미지로 요약하면 아래와 같습니다.요약Rendering Pass는 크게 3 단계로 나뉩니다.첫 번째 Pass는 Render Original Scene Pass로 구체들을 기본적인 Phong Shading으로 렌더링하는 것입니다.다만 단순히 씬을 그..
개요이번 시간에는 Instanced Drawing이라는 개념에 대해서 알아보겠습니다.Instanced Drawing이란 같은 Geometry 여러 개를 하나의 DrawCall로 그리는 것을 뜻합니다.여기서 말하는 Instance란 한 번에 그려지는 개체들을 뜻합니다.DirectX12에는 DrawIndexedInstanced라는 함수가 있는데 여기 InstanceNum 인자로 5를 보내게 되면 5개의 Instance가 한 번의 DrawCall로 그려지게 됩니다.각 Instance 별로 별도의 Scale, Rotation, Translation, Color 정보를 주는 것도 가능합니다.물론 Instanced Drawing 대신 5번의 일반적인 Draw를 통해서도 같은 효과를 낼 수 있습니다.다만, 이렇게 할..
- Total
- Today
- Yesterday
- MeshProcessing
- Unity
- normalized device coordinate
- 값 형식
- Scriptable Render Pipeline
- 유니티
- 순열
- 최적화
- AABB
- Mesh
- Unreal
- 참조 형식
- 루빅스큐브
- 조합
- 중복 순열
- perspective projection
- 경우의 수
- opengl
- DirectX12
- 중복 조합
- CollisionDetection
- Mesh Processing
- 통계학
- collision detection
- C#
- VTK
- 수학
- RubiksCube
- RL
- value type
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |