강의 노트 원본은 여기서 받으실 수 있습니다. 핀홀 카메라 핀홀 카메라는 가장 기본적인 형태의 카메라로, 빛을 차단하는 배리어에 바늘 구멍을 뚫어 어두운 상자 안에 상이 투영되도록 한다. 핀홀 카메라를 z축 방향으로 정렬한 그림으로 나타내면 다음과 같은데, 3차원의 현실 상을 2차원의 image plane으로 투영한다. 이 때 핀홀을 초점...
그다지 전문적이지 않습니다… 서론 3D Reconstruction의 어려움 데이터의 부족 ImageNet부터 시작하여 정말 오랜 기간동안 양질의 데이터셋을 구축해온 2D 이미지와 달리 3D 모델에 대한 데이터셋은 턱없이 부족하다. 비정형화된 데이터 3D 정보를 표현하는 방법은 point cloud, voxel, polygon, vertex, ...
WSL WSL(Windows Subsystem for Linux)은 윈도우 환경에서 리눅스 환경을 실행할 수 있는 프로그램이다. 딥러닝 관련 오픈소스 모델을 사용하다보면 Linux Installer만 존재한다거나 각종 버전 호환성 문제가 발생할 수 있는데, 이 경우 WSL을 이용하여 Linux 환경에서 딥러닝 환경을 구축할 수 있다. 이 글을 쓰...
출처: https://www.fwilliams.info/point-cloud-utils/sections/closest_point_on_mesh/ 서론 3D 객체를 다룰 때 특정 Point에서 가장 가까운 객체를 찾아야하는 식의 Task를 많이 볼 수 있다. 예를 들어 화면상의 마우스가 어떤 객체를 가리키고 있는지 찾을 때 사용하는 Raycast도 ...
setUsage()가 필요한 이유 three.js는 OpenGL에 기반해 3D 물체를 렌더링하므로, OpenGL의 API를 사용한다. OpenGL은 성능 최적화를 위해 해당 Buffer 객체를 어떻게 다룰 것인지(읽기, 쓰기 및 접근 빈도 )에 대한 힌트를 Usage를 통해 명시할 수 있게 하였다. OpenGL이 정한 상수를 Usage로 명시하면...
자바스크립트 최고의 입문서로 꼽히는 모던 자바스크립트 Deep Dive를 보면 책 끄트머리 46장에 제너레이터 함수에 대해 다루고 있다. 책에 의하면 제너레이터는 ES6에 도입된 함수로, 코드 블록의 실행을 중단했다가 필요한 시점에 재개할 수 있는 특수한 함수라고 한다. 그런데 이 책에서 본 설명 이후로 아직까지 제너레이터를 실제로 쓰는 경우를 접...
문제 React로 바텀시트를 구현하게 되었다. 바텀시트의 요구 사항은 다음과 같다. 마운트 및 언마운트시 애니메이션 실행 유저의 드래그 액션에 반응하는 애니메이션이 존재 children props를 받아 자식으로 렌더링하는 공통 컴포넌트 역할 수행 그런데 children의 높이가 동적으로 변하는 경우 높이 변화가 반영되지 않는 문제...
대부분의 3D Assets은 여러개의 Mesh가 계층 구조로 묶여있는 하나의 Group이다. 이러한 Assets를 대량으로 렌더링해야한다면, DrawCall이 급격하게 증가할 것이다. 이럴 때 인스턴싱을 고려해볼 수 있다. 그러나 InstancedMesh는 하나의 Geometry, Material만 지정할 수 있어 이렇게 Mesh가 여러개인 Ass...
Raycasting : 어떤 지점에서 광선을 발사해 그 광선에 닿는 물체가 있는지 없는지 검사하는 기법 3차원 공간을 2차원 화면에 투영하기 위해 각 픽셀마다 물체가 있는지 없는지 검사하는 것에 사용한다. 출처: https://ko.wikipedia.org/wiki/%EA%B4%91%EC%84%A0_%ED%88%AC%EC%82%AC Three....
세션 다시보기 : 강의 링크 (인프런 로그인 필요) 어느 날 고민 많은 주니어 개발자가 찾아왔다: 주니어 시절 성장과 고민들 진행자: 김영한 님 성장을 위해 중요한 것은 기술과 비즈니스 크게 두 가지가 있으며, 이 둘은 똑같이 중요하다. 1. 기술 어떤 기술을 공부해야할까? 팀에서 사용하는 기술 업계에서 최신 유행하는 기술 경...