chore(plan): B05 3D 외부 조사 · 제안 두 가지(① 새 방식 개선 · ② 단일 삼각망)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LLCk2y5xE8YGVgjbTntWsY
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# 제안 — B05 3D 완성 지반 두 가지 (10-8 밤 · 브레인)
|
||||
|
||||
사용자 말: 새 방식 · 옛 방식 A 모두 마음에 안 듦 → 정밀 분석 · 외부 조사 → 두 가지(① 새 방식 개선 ② 완전히 다른 방식) → 「둘 다 구현해서 보여 줘 · 보고 판단」.
|
||||
근거: `조사_B05_3D_새방식_정밀분석.md`(실측) · `조사_B05_3D_외부.md`(웹) · `조사_B05_3D_이력.md`(방식 Ⓐ~Ⓔ).
|
||||
|
||||
## 지금 무엇이 문제인가 (실측)
|
||||
- 버그 A 비탈 폭주 — 비탈 끝을 못 찾은 곳을 끝까지 깎아 구덩이(최대 171 m).
|
||||
- 버그 B 코리도 행 자리 — 노선을 따라 최대 7.2 m 밀려 접힘(옛 방식 파편화의 일부 원인 · 모든 방식 공통).
|
||||
- 해상도 — 지형 격자 1.07 m 라 비탈 끝 톱니(중앙 0.55 m) · 색 번짐(중앙 1 m) · 구조물 둘레 틈(둘레의 57 % 가 0.1 m 넘게 뜸) · 노면 이음 틈 2.6 %.
|
||||
- 만족할 그림(사용자 말 모음): 측점에서 3D 를 자르면 B06 횡단 그대로 · 비탈 끝 매끈한 한 줄 · 색 경계 = 그 선 · 비탈이 구조물 벽 상단 · 뒷면에 딱 닿음 · 공사 밖 지형 원본 · 구덩이 · 틈 · 겹침 없음.
|
||||
|
||||
## ① 새 방식 개선 (115-5 · sub4)
|
||||
틀은 그대로(지형 높이만 설계면으로) + 흠 고침:
|
||||
- 폭주 막음(비탈 끝 없으면 단면 끝까지만 · 없는 조각 안 빌림 · 높이 변화 상한).
|
||||
- 행 자리 고침(노선 길이 기준 — 모든 방식 버그).
|
||||
- 브레이크라인: 비탈 끝 · 노면 끝 · 단면 꺾임 선을 지형 메시에 새겨 넣음(그 선이 걸친 삼각형만 다시 나눔) → 톱니 · 색 번짐 · 이음 틈이 선을 따라 정확히.
|
||||
- 구조물 둘레: 구멍은 솔리드 윗면만 · 둘레 띠는 솔리드 윗면까지 내려 붙임.
|
||||
- 밴드 좁힘(속도).
|
||||
기대: 측점 오차가 B06 지반 − 메시 지반(±0.13 m) 수준 · 톱니 · 번짐 · 틈 대부분 사라짐 · 한계: 높이장이라 수직면은 구조물 솔리드 몫.
|
||||
|
||||
## ② 완전히 다른 방식 — 단일 삼각망(TIN) (115-6 · sub7)
|
||||
토목 프로그램(Civil 3D · OpenRoads · Trimble · Softree)이 쓰는 방식:
|
||||
- 설계면을 측점 단면 점(노면 끝 · 측구 · 비탈 꺾임 · 비탈 끝) + 같은 코드 점을 측점끼리 이은 종방향 선(브레이크라인)으로 만듦.
|
||||
- 비탈 끝(daylight) 폐곡선을 원지반과의 공유 경계로 · 그 안의 지형 삼각형은 버리고 경계 밖 지형 점과 함께 제약 들로네 삼각분할 한 번 → 한 장의 망(틈이 구조적으로 없음).
|
||||
- 구조물 풋프린트 = 구멍 + 솔리드 얹음 · 삼각형마다 구역(노면 · 절토 · 성토 · 원지반) → 색 경계 칼같음.
|
||||
- 곡선 안쪽 단면 겹침은 삼각분할 전에 청소 · 측점 사이 1~2 m 보간 단면.
|
||||
- 라이브러리: delaunator + constrainautor(ISC · 유지 중 · 작음).
|
||||
기대: B06 단면과 같은 설계면 · 비탈 끝 · 색 경계가 선 그대로 · 이음 틈 0 · 한계: 교차로 · 구조물 구간 연결 · 제약 교차 처리가 까다로움.
|
||||
|
||||
## 비교하는 법
|
||||
3D 보기 줄 「3D 방식」 고르기 한 줄 — 지금 · 옛 A · 새 ① · 제안 ② — 같은 측점에서 바꿔 가며 봄 · 수치(측점 오차 · 틈 · 톱니 · 구조물 둘레)도 같이 보고.
|
||||
@@ -0,0 +1,43 @@
|
||||
# 조사 — 도로 코리도 · 지형 「완성 지반」 외부 조사 (10-8 밤 · 조사 에이전트 · 웹)
|
||||
|
||||
요지 — 토목 SW 는 모두 같은 방식: 설계면을 TIN(단면 점 + 브레이크라인) · daylight 선을 원지반과의 공유 경계(제약 변)로 원지반을 잘라 내고 경계 둘레만 다시 삼각분할 → 한 망 · 구조물은 지반면에 넣지 않고 별도 솔리드 + 구멍 · 정점 높이 clamp 는 게임 엔진 쪽 방식(해상도 한계를 덮개 메시 · 텍스처로 가림).
|
||||
|
||||
## 1. 토목 SW
|
||||
| SW | 방식 | 출처 |
|
||||
|---|---|---|
|
||||
| Civil 3D 코리도 서피스 | 횡방향 링크 + 같은 코드 점을 측점끼리 이은 종방향 feature line 을 브레이크라인으로 TIN · 바깥 경계 = 좌우 daylight 선 · hide 경계 = 구멍 | https://help.autodesk.com/cloudhelp/2024/ENG/Civil3D-UserGuide/files/GUID-4B0FFB8E-B3BB-4943-AB39-EAA77C431C13.htm · https://help.autodesk.com/cloudhelp/2015/ENU/Civil3D-UserGuide/files/GUID-FF77AEA6-2FB7-4E09-9B27-3A307C8DDD4A.htm |
|
||||
| Civil 3D TIN 규칙 | 기본 들로네 · 브레이크라인은 들로네를 깨고서라도 삼각형 변으로 강제 | https://help.autodesk.com/cloudhelp/2024/ENG/Civil3D-UserGuide/files/GUID-FCCAF28A-506B-4773-9706-DD1F1F8CC933.htm |
|
||||
| Civil 3D 완성 지반 | EG 사본에 코리도 서피스 Paste · 이음 삼각형 처리는 약점 | https://help.autodesk.com/cloudhelp/2024/ENG/Civil3D-UserGuide/files/GUID-38871FA0-E072-4F9B-8EEB-C102670C53D2.htm |
|
||||
| Civil 3D 급곡선 | 곡선 안쪽 단면 겹침(bow-tie) → Clear Corridor Bowties · 측점 촘촘히 | https://help.autodesk.com/cloudhelp/2024/ENG/Civil3D-UserGuide/files/GUID-2CB0644A-9BF1-427B-8132-3B13D57C9F69.htm |
|
||||
| OpenRoads | Clipped Terrain · Complex Terrain Merge = 겹친 자리 1차 모델 자료 버리고 공통 변 둘레 재삼각화 | https://docs.bentley.com/LiveContent/web/OpenRail%20Designer%20Help-v15/en/Createcomplexterrainmodel.html |
|
||||
| Trimble TBC | Merge Surfaces(겹친 자리 대체 · 까다로운 이음 스파이크) | https://help.fieldsystems.trimble.com/tbc/9309.htm |
|
||||
| Softree RoadEng | 비탈선 → 지반 교점 daylight 선 → 「daylight 를 TIN 경계로」 | https://www.softree.com/help/roadeng11/html_ter_grading.htm |
|
||||
| 12d | 재삼각화 때 string 을 브레이크라인으로 보존 | https://12dwiki.com.au/?p=794 |
|
||||
| 논문 | Koch · Heipke 2004 DTM TIN 에 지물 외곽 제약변 CDT · Chen 외 두 모델 교선을 들로네 망에 넣고 안 삼각형 삭제 | https://www.isprs.org/proceedings/XXXV/congress/comm4/papers/404.pdf · https://www.isprs.org/proceedings/XXXVII/congress/1_pdf/139.pdf |
|
||||
공통 원리: ① 설계면 = 단면 점 + 종 · 횡 브레이크라인 TIN ② daylight 선 = 설계면 · 원지반 공유 경계 ③ 원지반은 그 경계로 잘라 경계 둘레만 재삼각화 → 한 망 ④ 구조물 = 솔리드 + 구멍 경계 ⑤ 곡선 안쪽 겹침은 삼각화 전 청소.
|
||||
|
||||
## 2. 게임 · 실시간 3D
|
||||
Unreal Landscape Spline(높이맵 올림 · 내림 + 코사인 감쇠 · 도로 메시가 덮어 가림) · Unity 지형 구멍(높이맵 해상도 마스크 → 가장자리 계단 · 메시로 가림) · MicroVerse · EasyRoads3D(평탄화 · 도로 살짝 띄움) · Cesium ClippingPolygonCollection(GPU 로 지형 숨김 → 설계 모델 끼움) · Bruneton · Neyret 2008(도로 발자국을 높이 · 색 텍스처에) · Three.js 공식 예제 없음 — 게임 = 높이장 변형 + 덮개(정확히 꿰매지 않음) · CAD = 브레이크라인 TIN · 불리언 = 국소에만(추정).
|
||||
|
||||
## 3. 브라우저 라이브러리
|
||||
| 이름 | 용도 | 최신 | 라이선스 | 메모 |
|
||||
|---|---|---|---|---|
|
||||
| delaunator | 들로네 | 5.1.0(2026-03) | ISC | 점 100만 ≈ 1 s |
|
||||
| constrainautor | delaunator 에 제약변 | 4.1.0(2026-03) | ISC | 제약 교차 · 점 관통 · 중복 점 금지 · 구멍은 뒤에서 삼각형 지움 |
|
||||
| cdt2d | CDT + 안/밖 | 1.0.0(2015) | MIT | 10년 정지 |
|
||||
| poly2tri | CDT · 구멍 | 1.5.0(2017) | BSD-3 | 중복 · 공선 점 예외 |
|
||||
| earcut | 구멍 다각형 분할 | 3.2.4 | ISC | 내부 점 불가 · 들로네 아님 → 지형용 부적합 · 이미 3.2.3(maplibre 경유) |
|
||||
| triangle-wasm | Shewchuk Triangle | 1.0.0 | 본체 상용 금지 | ⛔ |
|
||||
| manifold-3d | 메시 불리언 | 3.5.4 | Apache-2.0 | 입력 manifold 필수 · WASM ≈ 2.8 MB |
|
||||
| three-bvh-csg | 불리언 | 0.0.18 | MIT | experimental · 출력 manifold 미보장 |
|
||||
| meshoptimizer | 단순화(경계 정점 고정) | 1.3.0 | MIT | 1.1.1 간접 설치 |
|
||||
| three r185 | computeVertexNormals · mergeVertices · toCreasedNormals | 0.185.1 | MIT | 설치됨 |
|
||||
|
||||
## 4. 제안 후보
|
||||
- (가) ④ 다듬기 — 새 의존성 없음 · daylight 를 삼각형 변 위 부호 바뀌는 점(이분법)으로 정점 삽입 · 분할 → daylight 가 메시 변 · 노면 끝 · 측구 · 소단선도 같은 방법 · 삼각형 단위 구역 색 · 필요하면 밴드 0.5 m 국소 세분 · 곡선 안쪽 겹침은 포락선 · 한계: 수직면은 솔리드 + 구멍 · 「clamp + 덮개」 틀은 그대로(추정).
|
||||
- (나-1, 권장) 단일 제약 들로네 TIN — 측점 단면 점(코드별) + 종 · 횡 브레이크라인 + daylight 폐곡선 + 경계 밖 지형 정점 → CDT 한 번 → 구조물 풋프린트 삼각형 제거 → 솔리드 얹음 · 설계 구역 + 1칸 링만 재삼각화 · 링 바깥은 기존 GLB 절단 경계 정점 그대로(틈 0) · 삼각형마다 구역 ID → 색 경계 칼같음 · 전처리 = bow-tie 청소 · 교차 제약 분할 · 중복 점 병합 · 측점 사이 보간 단면 1~2 m · delaunator + constrainautor(ISC) · 설계 구역 10만 점 0.1~0.3 s(추정) · TS 600~900줄.
|
||||
- (나-2) 메시 불리언(manifold) — (지형 밴드 솔리드 ∪ 성토 몸통) − 절토 몸통 − 관 구멍 ∪ 구조물 · 관통부 · 날개벽 자연스러움 · 입력이 깨지면 통째 실패 · WASM · 구조물 둘레 국소 보조로 권장.
|
||||
- 추천 순서(추정): 단기 (가) → 본안 (나-1) → 구조물 둘레만 국소 불리언(나-2) 혼합.
|
||||
|
||||
## 5. 메모
|
||||
- 외부 조사가 코드 주석(「법선은 새로 만들지 않는다」 `_Deform_Terrain.ts:8`)을 보고 음영 원인으로 짚었으나, 정밀 분석은 실제 GLB 78개에 NORMAL 이 없어 flatShading(자기 기울기 음영)이라 문제없다고 실측함 — 실측을 따름.
|
||||
Reference in New Issue
Block a user