Raysail은 Rust를 사용한 주말 시리즈에서 Learn Ray Tracing을 기반으로 한 Monte Carlo 유형의 Raytracer입니다. 이 시리즈의 첫 두 권의 책의 기능을 구현하는 Remda Project에서 포크되었습니다. 세 번째의 기능을 추가하려고 노력했지만 코드가 실제로 정확하다는 의문이 있습니다.
또한 Raysnail은 QBVH-Rust-Ray-Tracer의 코드, 즉 Triangle Mesh 모듈, OBJ 파일로드 및 Blinn-Phong 재료 코드의 코드를 통합합니다.
"나머지 인생의 나머지 인생"이라는 시리즈의 세 번째 책에 배치 된 모든 개선 사항을 통합하기위한 지속적인 작업 외에도 다음 레이일에 추가하고 싶은 몇 가지 기능이 있습니다.
"preview_sdl2"예제에는 현재 미리보기 창의 매우 조잡한 구현이 있지만, 미리보기를 사용하여 주어진 높이와 너비로 일부 장면을 추적하기 위해 장면 예제와 명령 줄 매개 변수와 더 분리되어야합니다.
SDL (Povray Scene Definition Language)에 대한 적어도 부분 지원을 구현하고 싶습니다. 안타깝게도 Povray의 재료 정의는 광선의 재료와는 매우 다르며 Povray 재료를 과거의 사소한 예를 제대로 모방하는 것은 어렵거나 불가능할 수 있습니다. 이 글을 쓸 당시, 나는 Povray 카메라 및 구 정의를 읽을 수있는 매우 기초적인 SDL 파서를 구현했습니다 (sdl/example.sdl 참조). 더 많은 지오메트리와 재료 정의를 위해 이것을 확장하고 싶지만 Povray SDL 기능의 하위 집합 만 지원할 것입니다.
3D 프랙탈의 팬으로서 나는 프랙탈 렌더링 코드를 구현하고 싶습니다. 현재 만델불 비의 조잡한 이판이 있는데, 이는 품질이 매우 낮은 단지 품질 만 렌더링하지만, IUT가 3D 프랙탈을 렌더링하기 위해 raysnail 코드를 사용할 수 있다는 개념 증명으로 사용될 수 있습니다. 그래도 다른 프론트 엔드가 필요할 수도 있습니다.
Wiki에게 전체 기능 및 계획 목록을 확인하십시오 : https://github.com/varkalandar/raysnail/wiki
녹과화물을 설치 한 경우 레이일을 실행하는 쉬운 방법은이 명령입니다.
cargo run -r --bin raysnail -- -w 800 -h 500 --samples 65 --scene sdl/example.sdlGPLV3
제외하고:
example/earth-map.png , NASA에서 다운로드하면 공개 도메인에 속합니다.