주곡률 해칭과 숨은선 처리를 조절하며 위상 곡면을 판화처럼 그리는 인터랙티브 웹 앱
- 토러스·뫼비우스 띠·클라인 병·보이 곡면·모린 곡면 등 매개변수 또는 암시적 정의 곡면을 회전·확대하며 판화풍 선화로 탐색하는 웹 앱임
- 곡면의 실루엣은 메시에서 n·v=0인 영점을 보간 법선으로 찾아 연속 곡선으로 잇고, 경계와 자기 교차선도 별도 체인으로 추가함
- 해칭은 주곡률 선장을 따라 3단계 밀도로 미리 추적하며, 어두운 영역에서 두 주방향을 교차 해칭하고 하이라이트는 종이 바탕으로 남김
- 암시적 곡면의 영점은 marching tetrahedra로 삼각분할하고, 법선은 ∇f에서 계산함
- GPU 숨은선 패스가 가려진 선을 점선으로 그리며, 가까운 윤곽 아래의 한쪽 종이색 halo가 뒤쪽 선을 가림
Hacker News opinions
나도 같은 자료들에서 영감을 받아 STL 같은 임의의 3D 모델을 이런 식으로 렌더링하고 싶었음. 최근에는 LLM 도움까지 받아 만져봤지만, 아직 원하는 수준의 결과는 못 냈다.
손으로 스케치한 선의 간격과 스타일이 정말 잘 맞음. 주곡률장을 써도 이렇게 깔끔하게 그리기 어려웠을 텐데, 구현 과정이 궁금하다.
예전에 조지 프랜시스 수업을 들었는데, 이 렌더링을 보니 반갑다. 그는 칠판이나 노트, 냅킨 어디에든 만년필로 이런 그림을 그렸고 CAVE에서 돌아가는 시각화 프로그램도 여럿 만들었음.
나도 그의 대학원생이었는데 전부 공감함. 거의 40년이 지났는데도 연락하고 있고, 그가 그림 그리는 모습을 보던 건 정말 대단했음.
모바일에서는 메뉴를 숨길 방법이 있나? 화면에 겨우 보이는 부분만으로도 멋져 보이는데.
안드로이드 크롬에서는 캔버스를 돌리려고 드래그하면 곧 스크롤로 끊김. 작은 화면에서 사이드바를 접고 canvas에 touch-action: none을 넣었으면 좋겠음.
내 프로젝트인데 관심 가져줘서 고맙다. 방금 모바일과 작은 기기 사용성을 손봤고, 해칭 방향은 Hertzmann과 Zorin 논문의 주곡률 방향 아이디어를 주로 썼음.
매개변수를 이리저리 조절하는 재미가 꽤 있음.