CPU가 rendring 과정을 초기화하고 기획하는 이유를 자세히 살펴보자. 디자인 철학 (1) CPU (Central Processing Unit, 중앙 처리 장치) : CPU는 범용 프로세서로 설계됐다. task switching, branch prediction, 다양한 연산 처리에 최적화돼 있다. 컴퓨터의 '두뇌'로서 파일 입출력, 시스템 작동, 네트워키, 게임 로직 등 다양한 작업을 관리한다. (2) GPU (Graphics Processing Unit, 그래픽 처리 장치) : 반면 GPU는 병렬 처리를 위해 설계됐다. 대량의 데이터에 대해 동시에 동일한 연산을 수행하는데 탁월하므로, ㅇ례를 들어 수백만 개의 pixel이나 vertex에 대해 동일한 연산을 수행해야 하는 그래픽 작업에 적합하다...
Tensor 라는 용어가 Computer Graphics와 Machine Learning을 공부하면 자주 접하게 되는데 알아보자. Tensor는 스칼라, 벡터, 행렬의 개념을 더 높은 차원으로 일반화한 수학적 객체다. Tensor는 다차원 숫자 배열로 생각할 수 있으며, 차원 수는 종종 Tensor의 순위 (rank) 또는 순서 (order) 로 불린다. 0th-order tensor (0차 텐서) : 스칼라로, 하나의 숫자에 불과하다. 1th-order tensor (1차 텐서) : 숫자의 배열이 벡터다. 예를 들어, [3, 4, 5] 배열은 3D 공간에서 벡터를 나타낸다. 2nd-order tensor (2차 텐서) : 2차원 숫자 배열인 행렬이다. 3rd-order tensor and higher ..
그래픽 렌더링에서 CPU와 GPU의 역할을 알아보자. 그의 앞서 Vertex Information도 함께 짚어보자. Vertex Information (버텍스 정보) : 일반적으로 model 또는 mesh의 각 vertex와 연관된 속성 (attributes) 를 나타낸다. 여기에는 Vertex position, Normal vectors (조명 계산에 사용), Texture coordinates (UV 좌표), Color Tangents, binomals 등이 포함된다. 1. CPU의 역할 Scene setup : CPU는 Scene을 설정을 담당한다. 여기에는 rendering 해야하는 object와 position, transformations 및 기타 높은 수준의 계산을 결정하는 작업이 포함된다...
최적화 알고리즘의 목적은 cost function (비용 함수) 을 최소화 (또는 최대화) 해 모델에 가장 적합한 파라미터를 찾는 것으로, Gradient Descent (경사 하강법), Stochastic Gradient Descent (확률적 경사 하강법), Newton's Method, Adam, RMSProp 등이 있다. 최적화 알고리즘이 모델에서 맞는 역할은 cost function 의 정보를 기반으로 모델 파라미터를 조정하거나 업데이트 하는 방법을 결정하는 것이다. 대표적인 최적화 알고리즘을 알아보자. 1. Batch Gradient Descent (배치 경사 하강법, 일괄 경사 하강법) : * 전체 데이터 세트를 사용해 gradient (기울기) 를 계산한다. * convex loss sur..
행렬과 벡터는 모두 데이터를 표현하고 특정 연산을 수행하는 데 사용되는 수학적 도구지만, 그 정의와 용도는 서로 다르다. 다만, Vector와 Matrix 모두 tensor의 특수한 경우인데, Vector는 1차 tensor, Matrix는 2차 tensor다. Vector (벡터) Matrix (행렬) 정의 Vector는 숫자의 1차원 배열로, 크기와 방향을 모두 나타낸다. 예를 들어, 물리학에서는 속도나 힘과 같은 양을 나타내는 데 사용할 수 있다. 수학과 컴퓨터 과학에서 Vector는 모든 숫자 집합을 나타낼 수 있으며, 물리적 개념에 국한되지 않는다. Matrix는 숫자의 2차원 배열로, 기본적으로 행과 열이 있는 수자로 채워진 직사각형이다. Matrix는 컴퓨터 그래픽에서 rotations (회..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dqDwce/btswbylaJzU/q1L7DmkbWP2ig8VRk12gS1/img.png)
Cross Product (벡터곱) 은 3차원 공간에서 두 벡터에 대한 연산으로, 기존 두 벡터의 모두 수직 즉, 두 벡터가 구성하는 평면에 수직인 벡터를 생성한다. 이 연산은 3차원에서만 정의 되므로 scalar를 결과로 생성하는 dot product 와는 다르다. 고등학교 시절, 각 벡터의 요소를 X 자로 (cross) 로 곱하고 뺀 것을 각 요소의 결과로 갖는 것을 배울 것이다. 참고 - https://teacher.desmos.com/activitybuilder/custom/6087656604ad5e07f6d5d20b?collections=5ff0efd2ec328f0d75573002&lang=ko#preview/676d7940-2499-4d3f-a0c8-d67ba0c0267e
GLM (OpenGL Mathematics) 라이브러리에서 제공하는 함수로 두 3D 벡터의 cross prodcut (벡터곱) 를 계산한 결과를 반환한다. #include glm::vec3 u(1.0f, 0.0f, 0.0f); glm::vec3 v(0.0f, 1.0f, 0.0f); glm::vec3 w = glm::cross(u, v); // w will be (0.0f, 0.0f, 1.0f)
- Total
- Today
- Yesterday
- 오블완
- java
- Computer Graphics
- I2C
- Android
- 이코노미스트
- Hash Map
- machine learning
- Python
- 티스토리챌린지
- join
- C++
- 이코노미스트 에스프레소
- ml
- 소켓 프로그래밍
- defaultdict
- socket programming
- 투 포인터
- leetcode
- 리트코드
- 머신 러닝
- 파이썬
- vertex shader
- The Economist Espresso
- The Economist
- 딕셔너리
- DICTIONARY
- tf-idf
- 안드로이드
- min heap
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |