전체 글257 [컴퓨터그래픽스] Parametric Surface, Homogeneous Coordinate, Raytracing Parametric Surface Surface를 구현하는 3번째 방법 (Mesh, Subdivision, Parametric Surface) Parametric Curve - Surface를 하기 전에 2차원 Curve에 대한 적용법 이해 Blending Functions Piecewise Parametric Polynomial Curves 모두 동일한 Blending functions Local Control Cubic Spline Continuity Local Control 제공 Interpolating (점들을 지남) Convex Hull Cubic B-Spline ex) 4개의 점을 기반으로 한 3차 다항식 blending functions이 4개 필요함 (4*4 = 16가지 변수) Local .. 2023. 6. 12. [컴퓨터그래픽스] polygonal mesh, subdivision, Mesh Data Structure Polygonal mesh 3D 오브젝트의 surface를 표현하는 방식 1 filter) smoothing : 주변의 V 평균으로 매끄럽게 만드는 기법 (Weighted Average of 인접V) sharpen : smoothing과 반대 Subdivision Surface 3D 오브젝트의 surface를 표현하는 방식 2 고려 Input 이 무엇이냐에 따라 다른 방법 Topology Refinement : Face 분할 Geometry Refinement : 점 위치 재배 Continuity - 매끈한 surface를 구현하기 위해서는 보장되어야 하는 성질 G-1 : 연결 x G0 : 연결만 = position G1 : 1차 미분가능 = tangent G2 : 2차 미분가능 = curvature S.. 2023. 6. 12. [강화학습] Numpy를 활용한 Q-Learning 이해하기 강화학습 쉽지 않습니다. 그런데 정말 재미있는 분야인 것 같습니다. 이번 글을 통해 강화학습의 기본 Q-Learning을 설명드리겠습니다. 강화학습 (Reinforcement Learning) 강화학습은 기계 학습의 한 종류로 어떤 환경(env) 안에서 정의된 에이전트(agent)가 현재의 상태(state)를 인식하여, 선택 가능한 행동(action)들 중 보상(reward)을 최대화하는 행동 혹은 행동 순서를 선택하도록 학습시키는 방법입니다. 그렇다면 강화학습을 구현하기 위한 방법에는 무엇이 있을까요? 대표적으로 Q-Learning과 DQN(Deep Q Network)가 있습니다. 우리는 여기서 Q-Learning이 구체적으로 무엇인지 배우고 러프하게 코드를 구현해보겠습니다. Q-Learning 이론 .. 2023. 6. 1. [자료구조] Planar graph 와 plane graph 그래프는 다양합니다. planar graph 와 plane graph에 대해서 알아보겠습니다. Planar graph 정의는 다음과 같습니다. a planar graph is a graph that can be embedded in the plane, i.e., it can be drawn on the plane in such a way that its edges intersect only at their endpoints. (위키피디아) 그래프를 구성하는 모든 edge가 서로 크로스 하지 않는 그래프군요. 그러나 이 점만 생각하면 안됩니다. 만약 해당 그래프를 다시 그릴 때 edge 끼리 크로스하지 않을 수 있을 때, 해당 그래프 또한 planar graph 입니다. 따라서 아래 그래프는 planar .. 2023. 5. 31. [컴퓨터그래픽스] Winged edge table Polygonal mesh를 생성하는 다양한 방법이 있습니다. 그 중 winged edge 는 여러 가지 이유로 자주 사용되는 방법입니다. 장점 winged edge 는 아래와 같은 장점을 같습니다. 모든 인접 영역에 대한 탐색 시간 복잡도가 O(1) 많은 추가 용량을 차지하지 않음 임의의 다양한 polygons 에도 적용이 가능 Winged edge table 이런 winged edge 방법을 구현하기 위해 winged edge table을 구현하게 되는데요, 예제를 통해 이해해 보겠습니다. edge table을 보면 해당 edge(e3), 시작 Vertex(V2), 도착 Vertex(V3), 왼쪽 Face(F1), 오른쪽 Face(F2), e11, e12, e21, e22 항목이 있음을 확인할 수 있.. 2023. 5. 29. [Kotlin] 코틀린 Array 자료형 코틀린의 Array 자료형을 간단하게 알아보겠습니다. Array 생성 여러 가지 방법으로 Array를 생성할 수 있습니다. arrayOf() 자료형을 명시하지 않는 경우(Any), 자료형 구분없이 다양한 타입을 갖는 배열을 생성할 수 있습니다. 물론 좋은 방법은 아닌 것 같습니다. val arrTmp = arrayOf(1, 2.200304, 3, "WTF", 5) // 1 2.200304 3 WTF 5 arrayOfNulls() 원하는 원소의 갯수를 가지는, null로 모두 이루어진 배열을 생성합니다. val arrTmp = arrayOfNulls(5); // null null null null null Array() 배열을 생성할 때 가장 자주 사용하는 방법입니다. 파이썬처럼 내부 조건문을 활용해서 다.. 2023. 5. 28. 이전 1 ··· 26 27 28 29 30 31 32 ··· 43 다음