Ray Marching là gì? Sphere Trace có giống như vậy không?


31

Rất nhiều bản demo của ShaderToy chia sẻ thuật toán Ray Marching để hiển thị cảnh, nhưng chúng thường được viết với phong cách rất nhỏ gọn và tôi không thể tìm thấy bất kỳ ví dụ hay giải thích đơn giản nào.

Vậy Ray Marching là gì? Một số ý kiến ​​cho rằng đó là một biến thể của Sphere Trace. Những lợi thế tính toán của một cách tiếp cận như vậy là gì?

Câu trả lời:


34

TL; DR

Họ thuộc cùng một họ người giải quyết, trong đó dấu vết hình cầu là một phương pháp diễu hành tia, đó là tên gia đình.

Raymarbing một định nghĩa

Raymarching là một kỹ thuật hơi giống với phương pháp raytracing truyền thống trong đó chức năng bề mặt không dễ giải quyết (hoặc không thể thực hiện được nếu không có phương pháp lặp số). Trong raytracing, bạn chỉ cần nhìn lên giao điểm của tia, trong khi trong tia diễu hành bạn tiến về phía trước (hoặc qua lại) cho đến khi bạn tìm thấy giao lộ, có đủ mẫu hoặc bất cứ điều gì bạn đang cố gắng giải quyết. Hãy thử nghĩ về nó giống như một phương pháp newton-raphson để tìm bề mặt, hoặc tổng hợp để tích hợp một chức năng khác nhau.

Điều này có thể hữu ích nếu bạn:

  • Cần kết xuất thể tích mà không đồng nhất
  • Kết xuất hàm ẩn, fractals
  • Hiển thị các loại bề mặt tham số khác mà giao lộ không được biết trước, như ánh xạ paralax
  • Vv

Truyền hình raymar

Hình 1 : Diễu hành tia truyền thống để tìm bề mặt

Bài viết liên quan:

Dấu vết hình cầu

Sphere dấu vết là một thuật toán diễu hành Ray có thể. Không phải tất cả các phương pháp raymar sử dụng lợi ích hình thành phương pháp này, vì chúng không thể được chuyển đổi thành loại sơ đồ này.

Truy tìm hình cầu được sử dụng để hiển thị các bề mặt ẩn . Các bề mặt ngầm định được hình thành ở một mức độ nào đó của một chức năng liên tục. Thực chất giải phương trình

F(X,Y,Z) = 0

Bởi vì làm thế nào chức năng này có thể được giải quyết tại mỗi điểm, người ta có thể đi trước và ước tính quả cầu lớn nhất có thể phù hợp với bước diễu hành hiện tại (hoặc nếu không chính xác một cách hợp lý an toàn). Sau đó bạn biết rằng khoảng cách diễu hành tiếp theo ít nhất là lớn này. Bằng cách này, bạn có thể có các bước di chuyển tia thích ứng để tăng tốc quá trình.

Dấu vết hình cầu có kích thước bước thích ứng

Hình 2 : Truy tìm hình cầu * trong hành động lưu ý cách kích thước bước thích ứng

Để biết thêm thông tin xem:

* Có lẽ trong 2d nên được gọi là theo dõi vòng tròn :)


1
Tôi muốn giới thiệu bài viết này từ Scratchapixel để được giải thích sâu hơn: scratchapixel.com/lessons/advified-rendering/
Kẻ

liên kết @ user18490 's để Scratchapixel đã chuyển sang scratchapixel.com/lessons/advanced-rendering/... . Phần còn lại của trang web ( scratchapixel.com/index.php ) cũng có vẻ hữu ích.
WillC

15

Diễu hành tia là một thử nghiệm giao thoa tia lặp trong đó bạn bước dọc theo một tia và kiểm tra các giao điểm, thường được sử dụng để tìm các giao điểm với hình học rắn , trong đó các thử nghiệm bên trong / bên ngoài nhanh.

nhập mô tả hình ảnh ở đây
Hình ảnh từ Kết xuất hình học với kết cấu phù điêu

Kích thước bước cố định là khá phổ biến nếu bạn thực sự không biết nơi giao nhau có thể xảy ra, nhưng đôi khi các phương pháp tìm kiếm gốc như tìm kiếm nhị phân hoặc ẩn được sử dụng thay thế. Thông thường một kích thước bước cố định được sử dụng để tìm giao điểm đầu tiên, tiếp theo là tìm kiếm nhị phân. Lần đầu tiên tôi bắt gặp diễu hành tia trong các kỹ thuật ánh xạ dịch chuyển trên mỗi pixel. Bản đồ cứu trợ của các chi tiết bề mặt không có chiều cao là một cách đọc tốt!

nhập mô tả hình ảnh ở đây

Nó thường được sử dụng với nhảy không gian, một kỹ thuật tăng tốc trong đó một số tiền xử lý cho khoảng cách an toàn mà bạn có thể di chuyển dọc theo tia mà không giao nhau hình học, hoặc tốt hơn, mà không giao nhau và sau đó rời khỏi hình học để bạn bỏ lỡ nó. Ví dụ, ánh xạ bước hình nón và ánh xạ bước hình nón thoải mái.

Truy tìm hình cầu có thể đề cập đến thử nghiệm giao thoa tia cầu ngầm, nhưng đó cũng là tên của kỹ thuật nhảy không gian của John Hart, như @joojaa đề cập và được William Donnelly ( Ánh xạ dịch chuyển Per-Pixel sử dụng với Chức năng khoảng cách ), trong đó Kết cấu 3D mã hóa các bán kính hình cầu trong đó không có hình học tồn tại.


Ha, bạn đi đây, chụp ảnh từ người khác hiệu quả hơn là tự vẽ chúng.
joojaa

@joojaa Vâng, nhanh hơn nếu bạn nhớ họ đã ở đâu, nhưng không có cảm giác hài lòng khi tự làm điều đó: P. Ngoài ra tôi có lỗi kết xuất pixel phụ ngu ngốc này trong chrome để văn bản có nhiều màu sắc.
jozxyqk

1
Vâng, kết xuất pixel con là thứ chưa được hỏi. Chưa.
joojaa

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.