행렬(Matrix)
 - 2차원 배열 느낌(행과 열로 이루어져 있음)

행렬 스칼라 곱셈
 - 각 요소에 스칼라값을 곱해주면 됨.

행렬 덧샘, 뺄샘
 - 행렬의 모양이 같아야 됨.

행렬 곱셈
 - 앞의 행렬의 열과 뒤의 행렬의 행의 개수가 같아야됨.
 - 곱셈의 결과로 나온 행의 크기는 [앞행렬의 행, 뒤행렬의 열]이다.
 - ex) [2, 1] * [1, 2] = 곱셈이 성립하고, 결과는 [2, 2] 이다.

행렬의 곱을 벡터의 내적으로 표현
 - 벡터의 내적 공식 : AxBx + AyBy + AzBz
 - 행렬의 곱셈 공식 : Row1Col1 + Row2Col2 + Row3Col3
 - 두 공식의 방식이 같으므로 행과 열을 벡터로 변환한뒤 내적하면 행렬의 곱이 성립된다.

교환법칙과 결합법칙
 - 교환법칙은 성립되지 않음 ex) AB != BA
 - 결합법칙은 성립됨 ex) (AB)C = A(BC)

대각행렬
 - 대각요소를 제외한 숫자가 0인 행렬

단위행렬 (Identity)
 - 대각행렬의 숫자가 모두 1인 행렬
 - 단위행렬은 어떠한 행렬과 곱셈해도 그 행렬의 값이 그대로 나온다.
 - 단위행렬은 교환법칙도 성립한다. AI == IA

역행렬
 - 변환된 행렬을 원래 상태로 돼돌리는 행렬
 - 행렬에 역행렬을 곱하면 단위행렬이 나온다. ex) M * M-¹ = I(단위행렬)
 - determinant = ad - bc
 - determinat가 0이 아니면 역행렬이 존재한다.

전치행렬(Transpose)
 - 대각요소를 기준으로 행과 열이 뒤집힘

직교행렬
 - 1개의 행을 1개의 Vector봤을때 각 행을 내적하여 값이 0이 나오면 직각을 이루고 있으므로, 해당행렬을 직교행렬이라 부른다.
 - 직교행렬과 직교행렬의 전치행렬을 곱하면 단위 행렬이 나온다.
 - 그러므로 직교행렬의 전치행렬은 직교행렬의 역행렬이다.
  ex) M * ? = I
       => ? = M-¹(역행렬) or Mt(전치행렬)
       => M-¹(역행렬) == Mt(전치행렬)

'게임개발 > 게임수학' 카테고리의 다른 글

벡터  (0) 2021.07.27
삼각함수 그래프  (0) 2020.02.17
sin과 cos법칙  (0) 2020.02.17
부채꼴의 호의 길이와 넓이  (0) 2020.02.14
radian(호도법)과 degree(일반각)  (0) 2020.02.14

스칼라(고정된 크기) : 1, 2, 3, 3.14 등등

스칼라(Scalar)의 한계
 - 점A에서 5만큼 떨어진 점B를 정의할때 '5'라는 스칼라 값 만으로는 B의 위치를 알 수 없다.(A로부터 5만큼 떨어진 모든 지점이 B가될 수 있음)

벡터(Vector) : 크기와 방향을 갖는다.

A에서 B에대한 방향으로 5만큼

벡터의 성분 구하기
 - 목적지 좌표(B) - 시작점 좌표(A) = 벡터AB의 성분

벡터의 덧샘, 뺄샘 : 각 벡터의 성분을 계산
 - V1 + V2 = (V1. x + V2.x, V1.y + V2.y)

벡터의 크기
 - 피타고라스정리 이용
 - 3차원공간의 좌표에 대한 크기를 구하는 경우 두번의 피타고라스 정리를 이용하면됨.

단위 벡터
 - 크기가 1인 벡터
 - 벡터의 각 성분에 벡터의 크기를 나눠 주면됨

벡터의 내적
 - 스칼라 값을 반환
 -  |a| · |b| · cosθ  = ax*bx + ay*by -> 내적을 이용하면 쉽게 각도를 구할수 있다
 - cosθ 연산은 느리기때문에 내적을 이용하면 쉽게 각도나 삼각형의 변의 길이를 구할 수 있다.
 - 교환법칙이 성립한다. -> |a| x |b| == |b| x |a|

백터의 외적
 - 외적은 내적과 달리 결과가 벡터로 반환된다.
 - |a| x |b| · sinθ = a벡터와 b벡터가 있는 평면의 수직인 벡터(법선 벡터)
 - ★교환법칙이 성립하지 않는다. -> |a| x |b| != |b| x |a| (크기는 같지만 방향이 달라짐)

'게임개발 > 게임수학' 카테고리의 다른 글

행렬  (0) 2021.07.29
삼각함수 그래프  (0) 2020.02.17
sin과 cos법칙  (0) 2020.02.17
부채꼴의 호의 길이와 넓이  (0) 2020.02.14
radian(호도법)과 degree(일반각)  (0) 2020.02.14

사용버전 : unity 2020.1.1

In Unity Profiler

    • Window-Analysis-Profiler(Standalone Process)
      - 별도의 Process를 할당한 Profiler로 Editor가 할당하는 부하를 프로젝트와 별개로 볼 수 있다.
    • Preferences-Analysis-Profiler
      - FrameCount 조절가능(최대 2000)
      - 크게 설정할 경우 메모리 사용량 증가
    • GPU도 Profiling할수 있음
      - 디테일은 떨어지니 참고용으로 사용
      - URP는 안됨, BuiltIn만 가능
      - 모바일에선 안됨
      - CPU 병목과 GPU병목을 확인가능하다.
    • Begin/End Profiling By Script

  • Flow Event
    - Job에 대한 Profiling가능

In Memory Profiler

  • Diff Two SnapShots
    - 메모리 leak 추적가능 (2개의 SnapShot을 찍어 Diff로 비교하여 메모리 변화에 대해 확인가능)
  • Show total Memory Usage
    - 기본적으로 Unity에서 추적하는 메모리는 메모리 할당시 사용하는 Native함수(malloc, new등)호출 시 Tag를 달아서 추적한다. 그렇다 보니 각 플랫폼별 메모리 특성이 달라 구체적인 정보를 제공하지 못한다.
    - 그래서 약간의 커스텀을 통해 전체 메모리 사용량을 구할 수 있다.
    - TreeMapPane.cs -> 

In Frame Debugger

  • Why this draw call cant be catched
    - 랜더링 사이의 batch가 깨졌는지(하나의 묶음으로 그리지 못했는지-드로우콜 증가) 이유 표시
  • Use RenderDoc
    - GPU의 Render 정보를 쉽게 볼수있는 오픈소스 프로그램
    - 유니티와 호환이 잘된다.
    - 셰이더 디버깅도 가능!

 

'게임개발 > 유니티' 카테고리의 다른 글

AssetBundle 관리  (0) 2020.04.13
(Unity)안드로이드 전화번호 가지고오기  (0) 2019.08.29
단발성 진동 알람 이벤트 처리  (0) 2019.04.24
unity google play games plugin 연동 문제  (0) 2018.08.17
베지어 곡선  (0) 2017.01.17
  • AssetBundleManifest
    - CRC : 해당 번들의 무결성을 체크할 수 있다.(Load 중 파일이 손상 될 경우를 체크하기 위해 사용)

    - Hash :  번들의 버전 고유값으로 파일이 변경됐는지 체크하는 용도
        (AssetBundlemanifest.GetAssetBundleHash()를 사용하면 해당 버전 Manifest의 bundle의 hash를 가져올수있다.)

    - Dependencies : 해당 번들의 종속관계에 있는 번들리스트

  • UnityWebRequestAssetBundle
    - UnityWebRequst를 통해 CND에서 GET방식으로 AssetBundle을 불러올 때 사용한다.
  • DownloadHandlerFile(저장 경로)
    - CDN에서 다운받은 파일을 로컬에 저장할 때 사용하면 좋다.
    (C#의 io를 이용하여 저장할 경우, 해당 파일들이 메모리에 할당되고 복사하기 위해 같은 크기만큼 메모리를 할당하여 파일 size*2의 메모리가 사용된다. 이 문제를 해결해 주는 클래스)
    - UnityWebRequest.downloadhandler에 넣어주면 된다.

  • AssetBundle.LoadFromFileAsync
    - AssetBundle을 받을 때 비동기로 받는다.
    - 주로 CRC를 이용한 Load를 할 때 사용한다.
    (CRC로드는 메모리 사용량도 있고, 속도가 느리기 때문, 대신 파일 무결성이 보장된다)

  • AssetBundle.LoadFromFile
    - AssetBundle을 받을 때 동기로 받는데.
    - 이걸로 CRC Load를 하게되면 받는 동안 Thread가 멈춰 다른일을 할 수 없게된다.
    (그래서 CRC Load는 비동기 처리하자) 

 

주기함수

일반적으로 함수 y = f(x)의 정의역에 속하는 모든 x에 대하여 f(x+p) = f(x)를 문족시키는 0이아닌 상수 p가 존재할 때, 함수 y = f(x)를 주기함수라 하고, 상수 p 중에서 최소인 양수를 그 함수의 주기라 한다.
(걍 함수 모양이 주기적으로 같게 그려지는 함수)

함수 y = sin(x) 그래프

1. 정의역 : 실수 전체의 집합
2. 치역 : {y | -1 <= y <= 1}
3. 그래프는 원점에 대하여 대칭이다.
4. 주기가 2PI인 주기함수이다.

함수 y = cos(x) 그래프

1. 정의역 : 실수 전체의 집합
2. 치역 : {y | -1 <= y <= 1}
3. 그래프는 y축에 대하여 대칭이다.
4. 주기가 2PI인 주기함수이다.

함수 y = tan(x) 그래프

1. 정의역 : nPI+PI/2 (n은 정수)를 제외한 실수 전체의 집합
2. 치역 : 실수 전체의 집합
3. 그래프는 원점에 대하여 대칭이다.
4. 주기가 PI인 주기함수이다.
5. 그래프의 점근선 : 직선 x = nPI+PI/2(n은 정수)

절댓값 기호를 포함한 삼각함수 그래프

1. 최댓값 : |a|
2. 최솟값 : 0
3. 주기 : PI/|b|

y = |a*sin(b*x)|
y = |a*cos(b*x)|
y = |a*tan(b*x)|

'게임개발 > 게임수학' 카테고리의 다른 글

행렬  (0) 2021.07.29
벡터  (0) 2021.07.27
sin과 cos법칙  (0) 2020.02.17
부채꼴의 호의 길이와 넓이  (0) 2020.02.14
radian(호도법)과 degree(일반각)  (0) 2020.02.14

sin법칙

cos법칙

'게임개발 > 게임수학' 카테고리의 다른 글

벡터  (0) 2021.07.27
삼각함수 그래프  (0) 2020.02.17
부채꼴의 호의 길이와 넓이  (0) 2020.02.14
radian(호도법)과 degree(일반각)  (0) 2020.02.14
삼각함수  (0) 2020.02.12

l(호의 길이) = rθ

S(호의 넓이) = 1/2rl = 1/2r²θ
(이때 θ는 radian)

'게임개발 > 게임수학' 카테고리의 다른 글

벡터  (0) 2021.07.27
삼각함수 그래프  (0) 2020.02.17
sin과 cos법칙  (0) 2020.02.17
radian(호도법)과 degree(일반각)  (0) 2020.02.14
삼각함수  (0) 2020.02.12

degree(일반각) : 우리가 평소에 쓰던 [한바퀴를 360도]로 표현 하는 방식

degree(일반각)

radian(호도법) : 호의 길이와 반지름의 길이가 같아지는 각

radian(호도법)

degree를 radian으로 바꾸는 법 :  각도 * PI / 180
 ex) degree 60도를 radian으로 바꾸면 60 * PI / 180 = PI/3

radian특수각

'게임개발 > 게임수학' 카테고리의 다른 글

벡터  (0) 2021.07.27
삼각함수 그래프  (0) 2020.02.17
sin과 cos법칙  (0) 2020.02.17
부채꼴의 호의 길이와 넓이  (0) 2020.02.14
삼각함수  (0) 2020.02.12

+ Recent posts