z-buffer fighting problem

서로 다른 두 개의 면이 너무 가깝게 존재하게 되면 다음과 같은 문제가 발생할 수 있다. 해결 방법 1) 눈에 크게 안 띌 정도로 조금 떨어지게 만든다. 해결 방법 2) zNear와 zFar 값이 차이를 줄인다. 해결 방법 3) 24비트 또는 32비트 정밀도의 depth buffer를 사용한다. (기본값: 16비트) 단, 이 방법은 그래픽 카드가 지원할 때 가능하다.

MFnNurbsCurve Update Problem

Maya nHair simulation의 결과로 나온 NURBS curve들의 control vertex position을 MFnNurbsCurve::getCVs() 함수를 사용하여 querying할 때 Maya가 죽거나 정확한 위치값을 가져오지 못하는 문제가 발생한다. 멀티쓰레딩과 관련된 문제로 보이며 다음과 같이 Evaluation mode 설정에서 Parallel을 DG로 변경하면 임시방편적으로 문제를 해결할 수 있다.

How to install Dlib on Ubuntu

Download “dlib-19.16.tar.bz2” at “http://dlib.net”. tar xvf dlib-19.16.tar.bz2 cd dlib-19.16 python setup.py installpython3 setup.py install —————– Shared Library —————– mkdir shared_buildcd shared_buildcmake -DBUILD_SHARED_LIBS=1 -DUSE_AVX_INSTRUCTIONS=ON ..cmake –build . –config Releasemake install # AVX works on processors released after 2011, which is the fastest one.# SSE2 works for most Intel or AMD chips: -DUSE_SSE2_INSTRUCTIONS=ON# SSE4 works for most

왜 OpenCV는 RGB가 아닌 BGR을 사용하는가?

디자인에는 “최소 놀람의 원칙 (principle of least astonishment 또는 principle of least surprise)”이라는 것이 있다. 사용자가 디자인의 결과물을 마주쳤을 때 예상 가능한 범위를 넘어 당황하거나 놀라지 말아야 한다는 의미이다. 직관적인 디자인은 사용자가 고민을 하지 않도록 한다. 만약 문에 손잡이가 있다면 대부분의 사람들은 이 문을 끌어 당겨서 열려고 한다. 반대로 손잡이 대신 평평한 금속 판으로 되어

겨울 가족 여행

아버지 팔순 기념 온 가족이 1박 2일로 겨울 여행을 다녀왔다. 노천온천이 좋다고 해서 선택한 곳은 청송 대명리조트. 서울에서는 3시간 30분 정도 걸리는 거리에 있다. 온천수가 하루에 30.9도의 온수가 570톤 정도 나온다고 한다. 듣던대로 온천은 꽤 괜찮았다. 리조트 자체가 지어진지 2년이 채 안된 새 건물이라 시설들이 깨끗했다. 노천온천은 물 온도가 41도 조금 넘었는데, 겨울에는 좀 더

MinGW, GVim, Make on Windows

MinGW Download & Install: mingw-w64-install.exe Register Environment Variable to PATH: C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin Check on cmd: gcc -v GVim Download & Install: gvim81.exe Register Environment Variable to PATH: C:\Program Files (x86)\Vim\vim81 Check on cmd: gvim Modify Configuration File: C:\Program Files (x86)\Vim\_vimrc Make Download & Install: make-3.81.exe (Complete Package) Register Environment Variable to PATH: C:\Program Files (x86)\GnuWin32\bin

How to build TensorFlow GPU from Source Code

Environment Date: 2018.11.28 OS: Ubuntu 18.04 Graphic Card: NVIDIA Geforce 2080ti Python: 3.6.7 NVIDIA Drive & Cuda 10.0 rm /etc/apt/sources.list.d/cuda*; apt remove nvidia-cuda-toolkit; apt remove nvidia-*; apt update; apt-key adv –fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub; bash -c ‘echo “deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /” > /etc/apt/sources.list.d/cuda.list’; apt update; apt install nvidia-driver-410; apt install cuda-10-0; [.bashrc] export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH nvcc -V;

My Frequently Used LaTeX Math

{x}^{2} superscript {x}_{i} subscript \boldsymbol{A} bold \frac{x}{y} fraction \pm ± \times × \text{-} short minus \cdots ⋯ \begin{cases} 0 \\ 1 \end{cases} definition by Cases \; – a thick space \: – a medium space \, – a thin space \! – a negative thin space \alpha alpha \beta beta \gamma gamma \delta delta

All About Volume for Houdini Artists

회사에서 Houdini Pyro 관련 세미나를 진행했었는데, 이 과정에서 등장하는 여러 가지 기술 용어들이 무엇을 의미하는지 궁금해하는 분들이 계셨습니다. 그래서 조금이나마 이해를 돕고자 Pyro와 관련된 이론적인 내용들을 정리하여 자료를 만들고 이 자료로 추가 세미나를 진행하고 있습니다. 아무래도 수식이 나오면 어렵게 느끼는 분들이 많아서 수식을 최소화하고 그 물리적인 의미를 직관적이고 쉽게 이해할 수 있도록 만들었는데, 기본적으로 물리를

Accumulated Angle

보통 회전(rotation)하는 양을 나타낼 때 [0,360) 범위의 숫자를 사용한다. 이러한 경우에 361º는 (360+1)º와 동일한 방향(orientation)을 나타내므로 1º로 표기한다. 그런데, 가끔 이러한 범위 제약 없이 연속적으로 누적하여 회전량을 표기해야 할 필요성이 있을 때가 있다. 예를 들어보자. 1 프레임(frame) 마다 1도씩 시계 방향으로 회전하는 애니메이션(animation)을 만든다고 생각해보자. 이러한 애니메이션(animation)의 데이터 순서는 다음과 같다. 0, 1, 2, …,

플레이모빌 미스터리 피규어

플레이모빌 미스터리 피규어. 하나에 5400원. 두 딸들이 너무 좋아한다. 무엇이 들어 있는지 뜯어보기 전에는 알 수 없다. 그래서 기존에 가지고 있는 것과 중복되지 않을 가능성을 조금이라도 높이기 위해서는 끊임없이 쪼물락 거려야 한다. 공학(engineering)을 하다 보니 모든 것을 deterministic하게 예측하는 것이 인류의 목적인줄 알았는데 랜덤하게 걸리는 것의 매력에서 헤어나오질 못하는 것을 보니 인류의 본성은 그렇지 아니한가보다.

권법소년, 용소야, 쿤타맨

언젠가부터 어릴적에 봤던 만화책이 보고 싶어 졌다. 특히 권법소년, 용소야, 쿤타맨. 모두 가지고 있던 만화책들이었는데 이제는 언제 없어졌는지도 정확히 기억이 나지 않는다. 사실 이 책들은 정판이 아니다. 그렇다고 해적판도 아니다. 콩콩 코믹스라는 회사에서 일본 원판을 저작권 없이 들여와서 베껴 그린 후 판매한 만화들이다. 어쨌든 몇 년 전 부터 다시 보고 싶다는 막연한 생각만 가지고 있다가

RenderMan 22.0 RtUString

올해는 RenderMan이 태어난지 30주년이 되는 해이다. 그리고, 어느덧 RenderMan version이 22.0이 되었다. 21.x 버전에 비해 22.0 버전은 많은 것이 바뀌었다고 하는데 바뀐 내용 중에는 다음과 같은 것도 있다. RtToken has been replaced, any string that is passed to the renderer must be a RtUString. Any customer code will need to implement this change. (https://rmanwiki.pixar.com/display/REN22/RenderMan+22.0) 위의

미국 DigiPro & SIGGRAPH 2018 Vancouver

캐나다 방문시 필요한 VISA인 eTA를 발급 받는 과정에서 사기를 당했다. 지난 번 캐나다 방문 때에도 비자가 필요 했었던가? 미국 ESTA 처럼 캐나다도 생긴 모양이다. 찾아보니.. “2016년 3월 15일부터 항공편으로 캐나다에 입국하거나 환승 하려면 전자여행 허가를 받아야 한다.”라고 한다. 아무 생각없이 구글에서 “canada eta”로 검색해서 eTA 신청 사이트를 찾았다. 그리고 절차에 따라 각 항목들을 입력했다. 1분

신과함께 2부작 중 두 번째 “인과 연” 개봉을 하루 앞두고

어느덧 신과함께 두 번째 편인 “인과 연” 개봉일이 내일로 다가왔습니다. 처음 시나리오를 읽어 봤을 때부터 2편의 성공에 대한 확신이 있었기 때문에 1편 개봉 직전 때와는 달리 마음이 편안합니다. 가족들과 함께 1편을 보고 나서 극장에서 나왔을 때 정말 착한 좋은 영화를 봤다고 말하던 어느 관람객의 말이 아직도 귀에 선명하게 남아 있습니다. 선정성, 폭력과 잔인함, 욕설 등이

어른

나이만 먹는다고 모두 어른이 되는건 아니다. 나이가 많은 사람이 예우와 대접을 받는 것은 단지 시간상 먼저 태어났고 살아온 날의 수가 많아서가 아니다. 하지만 많은 사람들이 이러한 착각을 하고 살아간다. 누군가에게 예우를 받는다는 것은 그렇게 쉽게 공짜로 얻어지는 것이 아니다. 더 많이 살아온 시간 동안 다양한 시도를 하면서 겪은 여러 가지 성공, 또는 실수와 실패의 뼈저린

2018 여름 휴가?

삼척 쏠비치로 가려던 여름 휴가 계획이 사정이 생겨서 하루 전에 전격 취소되고… 애들은 울고불고… 결국 로스트밸리 스페셜 투어로 간신히 달래서 하루 종일 에버랜드에서 여름 휴가비 다 쏟아붓고 옴. 아직 방학 전 월요일이라서 한적하게 에버랜드를 즐길 수 있었다. 대부분의 놀이기구들을 기다림 없이 탈 수 있기는 했지만 평일이라고 모든게 다 좋은건 아니었다. 많은 놀이기구들이 오후 1시 이후부터

The end point of the rainbow

The end of the rainbow from Wanho Choi on Vimeo. 갑작스럽게 쏟아진 소나기. 눈 앞에 펼쳐진 쌍무지개. 태어나서 처음 본 무지개의 끝 점. “신과 함께-인과 연” 또 천만?

“코딩 기술 교육? 차라리 추리소설을 쓰게 하세요”

출처: 한국일보 “코딩 기술 교육? 차라리 추리소설을 쓰게 하세요”라는 한국일보 기사를 읽고.. 두 분 대화의 요약본이라서 단언하기는 어렵지만.. 읽고 나서 드는 생각은.. 데니스 홍 교수님이 하는 말의 핵심이 무엇인지 교육감님은 전혀 이해하지 못할 것 같다. 우리나라 교육은 뭔가 자꾸 중앙식으로 통제를 하고 획일화 시키려는 무모한 시도를 버리지 않고 있다. 몇몇 교육 정책자들이 자신들만의 생각으로 좁은

우분투(Ununtu)에서 텐서플로우(TensorFlow) GPU 설치(install) 방법

Environment Date: 2018.06.15 OS: Ubuntu 18.04 Graphic Card: NVIDIA Geforce 1070 TensorFlow version: 1.80 Graphics Driver # add-apt-repository ppa:graphics-drivers/ppa # apt update # apt install nvidia-390 # nvidia-smi CUDA 9.0 # dpkg -i cuda-repo-ubuntu1704-9-0-local_9.0.176-1_amd64.deb # apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub # apt-get install cuda CUDA 9.0 Patch 1. Click the “Download” button. 2. Open with “Software Install

우분투(Ubuntu)에서 pip & pip3 설치(install) 방법

pip이란 python으로 작성된 패키지의 설치 및 관리를 해주는 프로그램이다. pip을 이용하면 의존성 문제를 자동적으로 해결해주기 때문에 편리하다. 만약 pip이 설치되어 있다면 pip list 명령을 통해 현재 설치되어 있는 패키지들의 리스트를 확인할 수 있다. pip은 Python 2.x용, pip3는 Python 3.x용 프로그램이다. apt-get install python-pip apt-get install python3-pip 예제) pip numpy matplotlib pillow pip3 numpy matplotlib pillow