Monte-Carlo-Raytracer พร้อม Radeon Rays และ OpenCL 1.2
คุณสมบัติ
- ตัวติดตามเส้นทางปกติ
- เครื่องติดตามเส้นทางแบบสองทิศทาง
- แหล่งกำเนิดแสง
- GUI พร้อมฉากที่แก้ไขได้
- วัสดุอูเบอร์
- เงาสะท้อนและการส่งผ่าน: Torrance-Sparrow Microfacet BRDF และ BTDF พร้อมการกระจาย Trowbridge-Reitz สำหรับไดอิเล็กทริก
- ระบบส่งกำลังแบบพิเศษ
- การสะท้อนแสงแบบพิเศษ
- การสะท้อนของแลมเบอร์เทียน
- การทำแผนที่ปกติ
- ขณะนี้มีการใช้ตัวอย่างแบบสุ่ม แต่สามารถเปลี่ยนเป็น Sobol ได้ผ่าน #define ใน Assets/kernels/samplers.cl
สร้าง
- git clone --recursive https://github.com/compix/Monte-Carlo-Raytracer.git
- CMake - ปัจจุบันรองรับเฉพาะ Windows เท่านั้น จำเป็นต้องมีการแก้ไขเล็กน้อยเพื่อรองรับ Linux
- ทดสอบบน Windows 10 คอมไพล์ด้วย Visual Studio 2017 (ซึ่งมีการรองรับ CMake ในตัว)
แหล่งที่มาที่เกี่ยวข้อง
- Pharr, Matt, Wenzel Jakob และ Greg Humphreys: การเรนเดอร์ตามทางกายภาพ: จากทฤษฎีสู่การปฏิบัติ มอร์แกน คอฟมันน์, 2016.
- วีช, เอริค: วิธีการมอนติคาร์โลที่มีประสิทธิภาพสำหรับการจำลองการขนส่งขนาดเบา หมายเลข 1610 วิทยานิพนธ์ระดับปริญญาเอกของมหาวิทยาลัยสแตนฟอร์ด, 1997
- ทอร์รันซ์, เคนเน็ธ อี และเอฟราอิม เอ็ม สแปร์โรว์: ทฤษฎีสำหรับการสะท้อนนอกสเปกตรัมจากพื้นผิวที่ขรุขระ โฮซา 57(9):1105-1114, 1967.
- Trowbridge, TS และ Karl P Reitz: การแสดงความผิดปกติโดยเฉลี่ยของพื้นผิวขรุขระสำหรับการสะท้อนรังสี
- Munshi, Aaftab: เวอร์ชันข้อกำหนด OpenCL: 1.2 การแก้ไขเอกสาร: 19, 2012 https://www.khronos.org/registry/OpenCL/specs/opencl-1.2.pdf
- Radeon Rays: https://www.amd.com/de/technologies/radeon-rays
- Sobol', Il'ya Meerovich: ว่าด้วยการกระจายตัวของจุดในลูกบาศก์และการประเมินอินทิกรัลโดยประมาณ
- Morgan McGuire, แฟ้มคอมพิวเตอร์กราฟิก, กรกฎาคม 2017 (https://casual-effects.com/data)