원문정보
Ambient occlusion for volume visualization using VTK.js and Web Assembly
초록
영어
VTK.js is widely used as a web-based visualization library for medical image data. However, its functions are limited compared to the existing C-based VTK. Moreover, the image processing function using the CPU is written in JavaScript, so the performance is low. Therefore, users find it difficult to additionally implement various functions. This paper shows that CPU operation can be performed at native speed by extending the function of VTK.js using Web Assembly. As an example, the ambient occlusion, a volume visualization technique that creates high-quality shading effect, was implemented using an incremental algorithm and Web Assembly. Ambient light analysis generated by preprocessing is performed on the CPU using Web Assembly, and visualization using the result is performed on the GPU. This study integrates the technique into a shader program, a function provided by VTK.js, enabling high-speed pre-calculation and visualization of ambient occlusion. This study shows the possibility of expanding new imaging functions using Web Assembly and visualizing them with VTK.js.
한국어
VTK.js는 의료영상 데이터를 웹 기반으로 가시화하는 라이브러리로 널리 사용된다. 그러나 그 기능이 기존 C언어 기반의 VTK에 비해 제한적이며, 영상 처리 기능은 CPU를 사용하는 자바스크립트로 작성되었기 때문에 수행 성능 이 느리다는 한계가 있다. 따라서 사용자는 다양한 기능의 추가 구현에 어려움을 느낀다. 본 논문은 웹 어셈블리 (Web Assembly)를 활용하여 VTK.js의 기능을 확장하며, 네이티브 언어 수준의 속도로 CPU 연산을 수행할 수 있 음을 보인다. 그 사례로서 고품질의 음영을 생성하는 볼륨 가시화 기법인 환경광 폐색을 증분 알고리즘과 Web Assembly를 이용하여 구현하였다. 전처리로 생성되는 환경광 분석은 웹 어셈블리를 이용한 CPU에서 수행되며, 그 결과를 이용한 가시화는 GPU에서 수행된다. 본 연구는 해당 기법을 VTK.js에서 제공하는 기능인 셰이더 프로그램 에 통합하므로 환경광 폐색의 고속 사전 계산과 실시간 가시화가 가능하다. 본 연구를 통해 VTK.js 기반의 응용 프 로그램에서 새로운 영상 기능을 웹 어셈블리를 이용하여 빠른 속도로 확장하고 가시화할 수 있는 가능성을 보인다.
목차
Abstract
1. 서론
2. 관련연구 - 환경광 폐색 기법
2.1 개요
2.2 증분 알고리즘을 통한 마스크 볼륨 생성
3. Web Assembly를 이용한 마스크 볼륨생성 가속화
3.1 Web Assembly 개요
3.2 VTK.js에서의 Web Assembly 적용
3.3 GPU 셰이더 프로그래밍을 이용한 환경광 폐색
4. 구현 및 실험 결과
5. 결론
Acknowledgements
참고문헌
