All work

01 / RENDERING SYSTEMS

Rust / wgpu
Renderer

화면의 변경을, 필요한 GPU 작업으로 연결하는 구조.

ROLE
신규 렌더러 설계·구현
STACK
Rust · wgpu · WGSL · WASM
사례 자세히 읽기

PROTOPIE / STUDIO SEED

공통 렌더러의 경계를
설계하는 일.

플랫폼별 DOM·네이티브 뷰로 화면을 그리던 구조를 공통 GPU 렌더러로 연결하기 위해, Rust·wgpu 기반 2D 벡터 렌더러를 설계·구축했습니다. 구현에 앞서 렌더 커맨드, GPU 파이프라인, 블렌드 모드를 RFC로 정의했습니다.

장면의 상태와 명령 계약, 실행 계획, GPU 자원, 브라우저 실행 경계를 나누고 각 모듈이 같은 그래픽 의미를 공유하도록 구성했습니다.

개발 문서 기반 아키텍처 사례입니다. 원본 실행 소스와 성능 로그는 현재 보존되어 있지 않습니다. 배경의 입자 작품은 이 포트폴리오를 위해 새로 만든 독립 구현입니다.

DECISION 01

한 번 해석하고,
같은 의미로 그립니다.

모듈마다 stroke의 폭·정렬·paint·지원 범위를 다시 판단하면 같은 도형이 서로 다르게 해석될 수 있습니다. 프레임 범위의 StrokePlanSet을 만들고 graph·resource·tess가 함께 소비하는 경계로 정리했습니다.

StrokePlanSet폭 · 정렬 · paint · signature
graphbounds / padding
resourcepaint slot / binding
tessexpansion → fill

기하를 바꾸는 변경과 유니폼만 갱신하는 변경을 분리하는 설계와 함께, 무엇을 공유하고 무엇을 다시 계산할지 경계에 드러내는 데 집중했습니다.

renderer-core 개발 문서

DECISION 02

명령에서 실행까지,
책임을 나눕니다.

장면의 논리적 순서가 곧바로 GPU 실행 순서가 되지는 않습니다. 렌더 그래프가 패스 의존성을 DAG로 만들고, 정렬된 실행 계획과 임시 텍스처 수명을 관리하도록 구성했습니다. 그리기를 수행하는 encoder와 자원을 제공하는 경계도 분리했습니다.

  1. 01
    명령과 변경

    명령 batch, scene dirty, texture update, camera revision

  2. 02
    공유 계획과 자원

    StrokePlanSet, 바인딩, 프레임 자원 준비

  3. 03
    그래프 실행

    패스 의존성, executor, encoder를 통해 제출

  4. 04
    프레임 마무리

    지속 캐시와 dirty 상태, camera revision 갱신

renderer-graph 개발 문서

DECISION 03

실패를 분류하면
복구도 구체적이 됩니다.

실패를 모두 같은 재시도로 처리하지 않도록, surface 상태와 그래프 오류의 대응을 나눴습니다. 결정적인 오류가 발생했을 때는 같은 프레임을 반복 실행하기보다 변경을 기다리는 경로를 문서화했습니다.

상태대응 정책
Lost / Outdatedsurface 재구성
Timeout후속 프레임 재시도
결정적인 graph 오류새 dirty 변경을 기다림
renderer-wasm 개발 문서

IMPLEMENTATION BOUNDARIES

남아 있는 기록과 범위.

Path·Text는 Slug coverage, 기본 도형은 analytic primitive로 나누고, stroke는 expansion 후 fill로 연결하는 경로가 문서에 남아 있습니다. 모든 기능이 완료된 상태로 소개하지 않습니다.

  • MaskRaster / ApplyMask는 문서상 미구현입니다.
  • 일부 고급 블렌드 모드는 Normal fallback을 사용합니다.
  • pathops의 수학 기반 작업은 프레임 실행 경로와 연결되지 않았습니다.
  • 공통 플랫폼 동작은 프로젝트 목표이며 전체 플랫폼 출시 완료를 뜻하지 않습니다.

DEVELOPMENT ARCHIVE

설계의 근거.

공개가 허락된 일곱 모듈의 개발 문서입니다. 문서의 타입·API·테스트 설명은 보존된 설계 기록이며, 현재 실행 검증 결과와 구분합니다.

NEXT PROJECTInteractive 3D
Field / Form Graphics study