무한히 이어지는 터널을 만들 때 실제로 무한히 많은 지오메트리를 만들 필요는 없습니다. 이 데모는 네온 색 고리(TorusGeometry) 26개를 일정한 간격(SPACING)으로 한 줄에 세워두고, 카메라의 z 위치만 계속 전진시키다가 전체 길이(totalLen = RINGS × SPACING)를 넘어서면 나머지 연산(%)으로 처음 자리로 되돌립니다: z = (time * speed) % totalLen.
되감기는 순간 카메라가 순간이동하지만, fog(scene.fog = new THREE.FogExp2(...))가 저 앞의 링들을 배경색 속으로 흐릿하게 지워버리기 때문에 "어디서 잘렸는지" 눈에 띄지 않습니다 — fog 항목에서 다룬 것과 같은 트릭입니다. 링마다 다른 회전 속도와 색상(HSL의 hue를 링 순서에 따라 돌림)을 줘서 통과할 때 리듬감 있게 스쳐 지나가는 느낌을 만듭니다.
이 "위치를 나머지 연산으로 되감기" 패턴은 터널뿐 아니라 무한 스크롤 배경, 엔드리스 러너 게임의 바닥/장애물 재활용에도 그대로 씁니다 — 지오메트리를 새로 만들거나 지우지 않고 좌표만 되돌리는 것이 핵심입니다.
언제 쓰나
인트로 시퀀스, 엔드리스 러너 배경, 데이터/포트폴리오를 훑고 지나가는 "워프" 연출에.