기울기는 새로운 구간: 복잡한 SDF 모델을 효율적으로 렌더링하는 새로운 방법

2025-05-31

이 블로그 게시물에서는 부호가 있는 거리 필드(SDF) 기반의 복잡한 모델을 효율적으로 렌더링하는 새로운 방법을 탐구합니다. SDF의 Lipschitz 속성을 활용하여 단일 지점 평가를 사용하여 의사 구간 결과를 얻고 기존 구간 산술 기법과 결합합니다. 이를 통해 구간 산술의 보수성을 피하고 복잡한 변환을 더 효율적으로 처리하여 성능이 크게 향상됩니다. Lipschitz 연속이 아닌 거리 필드에는 추가 정규화가 필요하지만 전반적인 효율성은 기존 방법을 능가하여 복잡한 모델의 대화형 시각화를 위한 새로운 길을 엽니다.

더 보기
개발

프로스페로 챌린지: 극한의 성능을 지닌 암시적 표면 렌더링

2025-03-24
프로스페로 챌린지: 극한의 성능을 지닌 암시적 표면 렌더링

프로스페로 챌린지는 개발자들에게 7866개의 수학적 표현식으로 정의된 암시적 표면을 가능한 한 빠르게 렌더링하는 것을 과제로 제시합니다. 참가자들은 Python, NumPy, CUDA, JIT 컴파일러와 같은 도구를 사용하여 표현식 사전 분석, Numba 가속화, GPU 계산, LLVM 컴파일 등 다양한 최적화 기법을 탐구합니다. 해결책은 밀리초 단위의 렌더링 시간과 메모리 소비량의 상당한 감소를 달성했습니다. 이 챌린지는 암시적 표면 렌더링 기술의 발전을 위해 실험과 결과 공유를 장려합니다.

더 보기
개발

테스트 스위트의 아름다움에 이끌려: Rust, Uxn 그리고 엄격한 엔지니어링의 이야기

2025-01-21

작년 여름, 저자는 Uxn CPU와 Varavara 오케스트레이터의 독립적인 구현인 Raven을 출시했습니다. 최근 안정성과 성능을 개선하기 위해 GitHub Actions CI, 스냅샷 테스트, 정적 패닉 방지, 퍼징을 포함한 강력한 테스트 인프라를 구축했습니다. 이 글에서는 이러한 테스트를 구축하는 과정에서 발생한 과제와 해결책, 예를 들어 GitHub Actions의 Windows 및 ARM 러너의 신뢰성 문제, 패닉이 없음을 정적으로 증명하는 것과 퍼징에서의 함정 등에 대해 자세히 설명합니다. 저자는 Raven의 성능과 안정성을 향상시키고 크로스 플랫폼 이식성을 확보하는 데 성공했습니다. 이 과정은 강력하고 정확한 시스템을 만드는 데 Rust, cargo-fuzz, 그리고 (한숨) GitHub Actions의 힘을 보여줍니다.

더 보기
개발

Fidget: 대규모 수학 식을 위한 고성능 Rust 라이브러리

2025-01-08

Fidget은 대규모 수학 식을 표현, 컴파일, 평가하기 위한 Rust 라이브러리입니다. 주로 암시적 표면을 위해 설계되었지만, 유연성 덕분에 다양한 용도로 사용할 수 있습니다. Fidget은 프런트엔드(스크립트에서 바이트코드로), 백엔드(고속, 유연한 평가), 알고리즘(렌더링 및 메싱)의 세 계층으로 구성됩니다. 핵심적인 혁신은 구간 연산과 추적 단순화를 결합하여 대규모 식을 효율적으로 처리하고 JIT 컴파일을 통해 성능을 더욱 향상시키는 것입니다. 웹 기반 GUI를 포함한 다양한 데모를 제공하며, 자동 미분과 구간 연산을 지원합니다.

더 보기