3 คะแนน โดย GN⁺ 2024-04-16 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Spectral ray tracing เป็นวิธีที่สร้าง การกระจายกำลังสเปกตรัม (SPD) ของแต่ละพิกเซล โดยแทนที่จะใช้รังสีที่บรรทุกค่า RGB อย่างเดียว จะพิจารณาทั้งความยาวคลื่นและเฟสด้วย
  • ray tracing ทั่วไปเพื่อประสิทธิภาพจะติดตามย้อนจากกล้องไปยังทิศทางแหล่งกำเนิดแสง และลดทอนรังสีให้เป็นอนุภาคอย่างง่ายที่มี เวกเตอร์ RGB
  • ดวงตามนุษย์สร้างสีจากการตอบสนองของเซลล์รูปกรวยสามชนิดที่ไวต่อความยาวคลื่นสั้น กลาง และยาว และแม้เป็นสีเดียวกันก็อาจเกิดจาก SPD ที่ต่างกันได้
  • ในฉากที่ความยาวคลื่นส่งผลต่อเส้นทางและสีของแสง เช่น การกระจายแสง หรือการแทรกสอดของฟิล์มบาง การประมาณแบบ RGB อย่างเดียวอาจไม่เพียงพอ
  • spectral ray tracer แบบไม่มี dependency ที่สร้างด้วย JavaScript และ GLSL ถูกใช้เป็นเครื่องมือสำหรับสร้างสีสันและการเคลื่อนไหวเหนือจริงในงานคอมพิวเตอร์อาร์ตที่จงใจเปลี่ยนกฎของแสง

กล้องที่สร้างด้วยโค้ดและ ray tracing

  • ในคอมพิวเตอร์อาร์ต ทั้งฉากและกล้องสามารถสร้างขึ้นด้วยโค้ดทั้งหมด แล้วแปลงผลการเรนเดอร์เป็น อาร์เรย์ของค่า RGB
  • ray tracing ทำงานโดยสะท้อนรังสีไปมาระหว่างวัตถุเสมือน และจำลองเส้นทางของแสงที่เดินทางระหว่างกล้องจำลองกับแหล่งกำเนิดแสง
  • เพราะข้อจำกัดด้านประสิทธิภาพ จึงไม่ได้ติดตามการเคลื่อนที่ของแสงจริงทั้งหมดตรง ๆ แต่ใช้การลดรูปหลายแบบ
    • เนื่องจากรังสีส่วนใหญ่จากแหล่งกำเนิดแสงจะไปไม่ถึงกล้อง จึงไม่เริ่มจากแหล่งกำเนิดแสง แต่ ติดตามย้อนกลับจากมุมมองของกล้อง
    • การติดตามย้อนกลับนี้สมเหตุสมผลทางฟิสิกส์ภายใต้สมมติฐาน T-symmetry ที่ว่ากฎการส่งผ่านแสงสมมาตรตามทิศทางของเวลา
  • การลดรูปที่ใหญ่กว่านั้นคือการปฏิบัติต่อรังสีไม่ใช่คลื่น แต่เป็นอนุภาคที่มี เวกเตอร์สี RGB
    • แม้จะละเลยธรรมชาติแบบคลื่นของแสง แต่ในหลายฉากก็ยังให้ผลที่ดูสมจริงทางฟิสิกส์
    • การประมาณนี้เป็นไปได้เพราะดวงตามนุษย์มีเซลล์รับรู้สีสามชนิดที่ไวต่อความยาวคลื่นสั้น กลาง และยาว

ดวงตาไม่ได้ตอบสนองต่อ RGB แต่ตอบสนองต่อสเปกตรัม

  • แสงในโลกจริงโดยทั่วไปไม่ได้มีเพียงความยาวคลื่นเดียว แต่ประกอบด้วย การกระจายกำลังสเปกตรัม (SPD) ที่เป็นการผสมของหลายความยาวคลื่น
  • สีหนึ่งสีที่มนุษย์มองเห็นอาจสอดคล้องกับ SPD ได้จำนวนมาก ปรากฏการณ์นี้เรียกว่า metamerism
    • ตัวอย่างเช่น สีเหลืองอาจมองเห็นได้จากความยาวคลื่นเดี่ยวแถวประมาณ 580nm
    • ในอุปกรณ์ที่ใช้แค่ RGB อย่างจอคอมพิวเตอร์ ก็สามารถสร้างสีเหลืองด้วยการผสมแสงสีแดงกับสีเขียว
  • ยังมี สีที่ไม่ใช่สีสเปกตรัม ซึ่งไม่สามารถสร้างจากความยาวคลื่นเดี่ยวได้ เช่น สี magenta
    • magenta ไม่มีตำแหน่งเดี่ยวบนสเปกตรัม
    • ต้องอาศัยการผสมของความยาวคลื่นต่ำและสูง หรือก็คือแสงสีน้ำเงินกับสีแดง
  • กระบวนการแปลง SPD ให้เป็นสีสามารถจัดการได้ด้วยคณิตศาสตร์
    • มีความเชื่อมโยงเชิงปริมาณระหว่างฟิสิกส์ สรีรวิทยา และประสบการณ์สีเชิงอัตวิสัย
    • ความเชื่อมโยงนี้ถูกรวบรวมไว้ใน CIE 1931 color spaces ที่จัดทำขึ้นในปี 1931
  • หากต้องการลงมือเขียนเองโดยตรง สามารถอ้างอิง บทเกี่ยวกับสีใน Physically Based Rendering

ฉากที่ความยาวคลื่นเปลี่ยนผลลัพธ์

  • ใน ray tracing ไม่จำเป็นต้องพิจารณาทั้งสเปกตรัมทั้งหมดหรือ ความยาวคลื่น ของรังสีแต่ละเส้นเสมอไป
  • อย่างไรก็ตาม ในบางฉาก คุณสมบัติแบบคลื่นของแสงส่งผลโดยตรงต่อเส้นทางการเดินทาง และทำให้สีที่เห็นเปลี่ยนไปด้วย
  • ตัวอย่างที่เด่นชัดคือ การกระจายแสง
    • เส้นทางการเดินทางของแสงโค้งงอต่างกันตามความยาวคลื่น
    • ปรากฏการณ์ที่ปริซึมแยกแสงขาวออกเป็นความถี่องค์ประกอบก็อยู่ในกรณีนี้
  • อีกตัวอย่างหนึ่งคือ การแทรกสอดของฟิล์มบาง (thin film interference)
    • ใช้อธิบายลวดลายคล้ายรุ้งที่เห็นบนฟองสบู่
    • แสงที่สะท้อนจากชั้นบนและชั้นล่างของขอบเขตสบู่จะเกิดการแทรกสอดแบบเสริมและหักล้างกัน
    • กระบวนการนี้ไม่ได้แยกสเปกตรัมออกเป็นความยาวคลื่นเดี่ยว แต่เพิ่มหรือลดส่วนร่วมของบางช่วงในสเปกตรัม
    • ผลลัพธ์คือมักเกิดสีที่ไม่ใช่สีสเปกตรัม เช่น cyan, teal, magenta และน้ำตาล

สิ่งที่ spectral ray tracing จัดการ

  • spectral ray tracing คือ ray tracing ที่คำนึงถึง คุณสมบัติแบบคลื่น ของแสง
  • แทนที่จะคำนวณโลกด้วยสี RGB เท่านั้น มันจะสร้าง การกระจายกำลังสเปกตรัม สำหรับแต่ละพิกเซลของฉาก
  • โดยใช้ทั้งความยาวคลื่นและเฟสของรังสี จึงประเมินสีได้ดีขึ้นในสถานการณ์ที่ข้อมูลนี้มีความสำคัญ
  • มีประโยชน์เป็นพิเศษเมื่อความยาวคลื่นและเฟสเป็นตัวเปลี่ยนสีผลลัพธ์ เช่น ในการกระจายแสงหรือการแทรกสอดของฟิล์มบาง

การนำไปใช้ในคอมพิวเตอร์อาร์ต

  • ในงานช่วงหลัง มีการใช้วิธีจงใจทำลายกฎการเคลื่อนที่ของแสง และสร้างกล้องของจักรวาลที่ต่างจากความจริงเล็กน้อยด้วยโค้ด
  • ทำให้สามารถจัดการกับความอุดมสมบูรณ์ของสเปกตรัมแสงทั้งหมด พร้อมกับเปลี่ยนกฎการส่งผ่านแสงให้เหนือจริงได้
  • ผลงานที่เผยแพร่ถูกสร้างด้วย spectral ray tracer แบบไม่มี dependency ที่เขียนด้วย JavaScript และ GLSL
  • ตัวอย่างงานมีดังนี้
    • Light Doesn't Bend That Way #1, 2023
      • สร้างขึ้นโดยทำให้มุมสะท้อนเป็นฟังก์ชันของความยาวคลื่น
      • กระบวนการนี้ดูเหมือนจะสร้างเฉพาะสีสเปกตรัม
    • Untitled, 2023
      • เป็นงานที่กำลังพัฒนาสำหรับซีรีส์ FULL_SPECTRUM และเปิดเผยในโตเกียวเมื่อปี 2023
    • Untitled, 2023
      • เผยแพร่เป็น Video 3
      • กระบวนการทำให้งานเคลื่อนไหวในระบบนี้ถูกให้ความสำคัญเป็นพิเศษ
    • Untitled, 2024

1 ความคิดเห็น

 
GN⁺ 2024-04-16
ความคิดเห็นจาก Hacker News
  • ถ้าอยากลองทำเอง อีบุ๊กฟรี Ray Tracing Gems II 1 ครอบคลุม GPU ray tracing แบบเรียลไทม์บนพื้นฐาน API ล่าสุดและการเร่งความเร็วด้วยฮาร์ดแวร์ และยังมีบทเกี่ยวกับ spectral rendering ด้วย
    โดยเฉพาะบทที่ 42 “Efficient spectral rendering on the GPU for predictive rendering” ที่เกี่ยวข้องโดยตรง

    1 https://www.realtimerendering.com/raytracinggems/rtg2/

    • ถ้าต้องการเริ่มต้นแบบรวดเร็วมาก ก็ขอแนะนำ Ray Tracing in One Weekend 1 และถ้าหลังจากนั้นอยากเจาะลึก Physically Based Rendering [2] ก็เป็นตัวเลือกที่ดี

      1 https://raytracing.github.io/

      [2] https://pbrt.org/

    • แม้จะไม่มีเวลาลงมือเล่น ray tracing เอง แต่พอเปิดดูช่วงต้นของหนังสือแล้วพบว่า alias sampling เป็นเทคนิคที่สง่างามและดีมาก
      มันมีประโยชน์ในบริบทที่กว้างกว่างานกราฟิกมาก เลยคิดว่าน่าจะดีถ้าได้รู้จักเร็วกว่านี้

  • ตัวอย่างของ spectral ray tracer มีอยู่หลายตัว
    Mitsuba เป็นเรนเดอร์เรอร์โอเพนซอร์สสำหรับงานวิจัยที่มีฟีเจอร์เจ๋ง ๆ มากมาย เช่น differentiable rendering https://www.mitsuba-renderer.org/
    Maxwell มีโหมด spectral สองแบบที่มีความแม่นยำต่างกัน และวิธีที่ซับซ้อนกว่านั้นมักใช้กันบ่อยในสายออปติก https://maxwellrender.com/
    Manuka ของ Wētā FX เป็นเรนเดอร์เรอร์แบบ spectral และถูกใช้ในภาพยนตร์ขนาดยาวหลายเรื่อง https://dl.acm.org/doi/10.1145/3182161 และ https://www.wetafx.co.nz/research-and-tech/technology/manuka

    • ถ้าอยากดูโครงสร้างภายใน แต่ระบบสำหรับโปรดักชันขนาดใหญ่ซับซ้อนเกินไป แนะนำให้ลองดู implementation นี้
      เป็นตัวอย่างที่ยอดเยี่ยมซึ่งใกล้เคียงกับองค์ประกอบขั้นต่ำของ spectral path tracer https://github.com/TomCrypto/Lambda

    • ยังมี Indigo Renderer และ LuxRender แบบโอเพนซอร์สด้วย

      https://indigorenderer.com

      https://luxcorerender.org

  • ในความเห็นของผม spectral rendering เป็นตัวอย่างที่ดีว่า ray tracing เองไม่ใช่จุดหมายปลายทางของการเรนเดอร์ แต่ใกล้เคียงกับจุดเริ่มต้นมากกว่า
    บางครั้งเห็นบรรยากาศเหมือนปัญหาการเรนเดอร์ถูกแก้แล้วด้วย ray tracing แบบเรียลไทม์ แต่ผมคิดว่ามันห่างไกลจากความจริงมาก
    เท่าที่ผมรู้ ระบบ spectral rendering ส่วนใหญ่ไม่ได้จัดการ thin-film interference หรือเอฟเฟกต์อื่น ๆ ที่อิงคลื่น ดังนั้นด้านนั้นก็เป็นพรมแดนใหม่อีกแห่ง
    ในโลกจริงมีรายละเอียดมากมายจนน่าทึ่ง

    • ยิ่งการเรนเดอร์เข้าใกล้ หลักการทางฟิสิกส์ ที่เป็นพื้นฐานมากขึ้น เกมเอนจินก็จะยิ่งกลายเป็นเอนจินจำลองโลกมากขึ้น
      องค์ประกอบหลายส่วนของเอนจินที่ทุกวันนี้มักแยกกัน อาจค่อย ๆ บรรจบไปสู่จุดร่วม เช่น เส้นแบ่งระหว่างเลเยอร์ฟิสิกส์กับเลเยอร์เรนเดอร์อาจลดลง
      ผมสงสัยว่าแนวโน้มแบบนี้พอจะสังเกตเห็นได้ในระดับหนึ่งแล้วหรือยัง
      เมื่อพลังคำนวณเพิ่มขึ้นอีกหลายลำดับขั้น abstraction ในปัจจุบันก็คงดูเหมือนรูปแบบที่เกิดจากข้อจำกัดทางเทคนิคในอดีต เหมือนที่เรามองเทคโนโลยีล้ำสมัยเมื่อ 30 ปีก่อน

    • มันเหมือนแฟรกทัล ยิ่งมองเข้าไปใกล้ ก็ยิ่งเผยรายละเอียดที่ส่งผลต่อสิ่งที่เราเห็นมากขึ้น
      เรากำลังค่อย ๆ เข้าใกล้ การเรนเดอร์ที่ถูกต้องตามฟิสิกส์ 100% แต่คงไม่มีวันถึง 100% และน่าจะค่อย ๆ เพิ่มสัดส่วนเล็ก ๆ เหล่านั้นต่อไป

    • นอกจากคำกล่าวที่ว่าในโลกจริงมีรายละเอียดมากมายจนน่าทึ่งแล้ว ยังมี โพลาไรเซชันของแสง1 ซึ่งมีคน implement ไม่มากนัก แต่ให้เอฟเฟกต์ที่ค่อนข้างสังเกตเห็นได้ในบางฉาก

  • มี LuxRender เป็นเอนจิน spectral ray tracing ที่ยอดเยี่ยม: https://luxcorerender.org/
    อย่างไรก็ตาม นั่นอิงจากเวอร์ชันเก่า ส่วนเรนเดอร์เรอร์ LuxCore รุ่นล่าสุดยังไม่รองรับ spectral อย่างสมบูรณ์
    นอกจากเอฟเฟกต์ที่กล่าวถึงที่นี่แล้ว spectral rendering ยังมีข้อดีอื่นอีก
    ถ้า implement ด้วยวิธี tracing แสง ภายหลังจะสามารถเปลี่ยนสี สเปกตรัม และความเข้มของแหล่งกำเนิดแสงได้ และในหลายฉาก indirect lighting ก็จะแม่นยำขึ้นมาก

  • ถ้าอยากลองเล่นกับการทำ Ray Tracing การเขียนเองนั้นง่ายกว่าที่คิด
    มีหนังสือฟรีดี ๆ (https://raytracing.github.io/books/RayTracingInOneWeekend.ht...) และถ้ารู้ Unity อยู่บ้าง บทเรียนแบบใช้ GPU (https://medium.com/@jcowles/gpu-ray-tracing-in-one-weekend-3...) ก็เหมาะมาก
    เวอร์ชัน Unity มี GUI ที่ช่วยให้พรีวิวฉากและขยับกล้องได้ง่าย จึงลองปรับเล่นได้สะดวกกว่า
    ถ้าไม่อยากเขียนตั้งแต่ศูนย์ก็มี implementation ที่อิงจากแหล่งข้อมูลเหล่านี้อยู่มาก แต่การลองทำเองนั้นคุ้มค่าแน่นอน
    ผมเคยลองเล่นกับ implementation พื้นฐาน โดยทำให้ลำแสงเคลื่อนที่เหมือนอนุภาค ทำให้เส้นทางโค้งเข้าหาวัตถุหรือโค้งออกจากวัตถุ หรือจำมุมสะท้อนครั้งสุดท้ายไว้ใช้ตอนชนกับวัสดุถัดไป
    ผลลัพธ์ส่วนใหญ่ไม่ค่อยดีนัก แต่ทำให้เกิดสัญชาตญาณต่อสิ่งที่กำลังดูอยู่ และการลองขยับกล้องนิดหน่อยก็ช่วยได้มาก
    เป็นโปรเจกต์เขียนโปรแกรมงานอดิเรกขนาดเล็กที่สนุกจริง ๆ
    อย่างไรก็ตาม วิธีคือเมื่อมีการตัดกับวัตถุ ก็จะตั้งค่าความยาวสูงสุดของลำแสงให้เล็ก แล้วปล่อยลำแสงหลายเส้นออกไปรอบ ๆ จากจุดนั้น จากนั้นใช้สิ่งที่คล้ายสมการแรงโน้มถ่วงกับการชนแต่ละครั้ง
    แน่นอนว่าช้าและเป็นเพียงการประมาณ แต่ทำได้ง่าย และยังสามารถทำสิ่งอย่าง วัตถุหลุมดำ ที่ทำให้แสงในฉากโค้งงอได้ด้วย

    • ตอนเขียน ray tracer ตัวแรก ไม่ได้ใช้เวลาทั้งสุดสัปดาห์ และเป็นโค้ด C ราวสี่หน้าที่เขียนเสร็จในคืนเดียว

      http://canonical.org/~kragen/sw/aspmisc/my-very-first-raytra...

      หลังจากนั้นผมทำ ray tracer ด้วย Clojure และ Lua และทำ ray marcher ด้วย JavaScript ซึ่งทั้งหมดสามารถเล็กและเรียบง่ายมากได้
      เมื่อคืนผมดู Spongy ของ mentor/TBC https://www.pouet.net/prod.php?which=53871 ซึ่งเป็น ray tracer สำหรับอนิเมชันแฟร็กทัลที่มีหมอก โดยมี คำสั่งภาษาเครื่อง 65 คำสั่ง และไฟล์รันบน MS-DOS มีขนาด 128 ไบต์
      ภาพจาก ray tracing มักสวยมากจนทำให้รู้สึกกดดันว่าอัลกอริทึมและโครงสร้างข้อมูลที่สร้างมันขึ้นมาต้องยากมาก แต่ถ้ารู้จักเวกเตอร์สามมิติอยู่แล้ว จริง ๆ แล้วค่อนข้างเรียบง่าย
      ผมรู้สึกว่า SDF ray marching เรียบง่ายกว่า ray tracer แบบ Whitted ดั้งเดิม เพราะมันแทนที่คณิตศาสตร์ซับซ้อนส่วนใหญ่ที่ใช้แก้หาจุดตัดที่แม่นยำกับเรขาคณิตของฉาก ด้วยอัลกอริทึมการประมาณแบบวนทีละขั้นที่เรียบง่ายมาก
      ray tracer ที่เล็กสุดขีดอย่าง Spongy หรือ bootsector raytracer ของ Oscar Toledo G. https://github.com/nanochess/RayTracer มักเข้าใจยากกว่า implementation ที่ใหญ่กว่านิดหน่อยด้วยซ้ำ
      เพราะการทำให้เล็กขนาดนั้นต้องใช้ทริกจำนวนมาก และทริกเหล่านั้นเข้าใจยากกว่าโค้ดที่ตรงไปตรงมา

  • ถ้าจะไปให้สุด ไม่ใช่แค่ ความยาวคลื่น ของลำแสงแต่ละเส้นเท่านั้น แต่ต้องติดตามโพลาไรเซชันและเฟสด้วย
    คุณสมบัติเหล่านี้ส่งผลต่อการรับรู้ของมนุษย์จริง ๆ ในบางกรณีที่พบไม่บ่อย เช่น ฟิล์มบางหรือเกรตติงเลี้ยวเบน แต่มีอยู่จริงแน่นอน

  • เห็นความงามของคณิตศาสตร์และฟิสิกส์ที่ทำงานได้จริง
    สงสัยว่าการปรับแต่งบางอย่างที่ใส่เข้าไปเพื่อความสวยงาม อาจมีประโยชน์กับวิธี visualization แบบอื่นด้วยหรือไม่
    ยังทำให้นึกถึงตอนที่คัดโค้ดจากหนังสือเพื่อทำเพลงหลายเสียงบน Apple II
    พอลองรัน เห็นได้ชัดว่ามีบางอย่างผิดพลาด แต่แทนที่จะเป็นเสียงรบกวนหยาบ ๆ กลับได้แพตเทิร์นเสียงที่งดงามอย่างประหลาด และความผิดพลาดโดยบังเอิญนั้นก็น่าหลงใหลทีเดียว

  • คิดว่าน่าจะสร้างภาพที่มีช่องสัญญาณมากกว่า 3 ช่องได้มาก เช่น ภาพไฮเปอร์สเปกตรัม
    เคยลองดูเพื่อใช้เน้นสเปกตรัมในการสอนเด็ก ๆ เรื่องสีให้ดีขึ้น
    เช่น ถ้าเอาเมาส์ชี้บนพิกเซลในภาพ1 ก็จะแสดงสเปกตรัม เพื่อเสริมความเชื่อมโยงระหว่างสีและสเปกตรัม
    แต่ภาพไฮเปอร์สเปกตรัมนั้นหาได้ยาก และโดยทั่วไปกล้อง[2] ก็มีราคาแพง
    ถ้าอย่างนั้นภาพไฮเปอร์สเปกตรัมสังเคราะห์ล่ะ?
    renderer บนเบราว์เซอร์ที่ความละเอียดต่ำมากอาจเร็วพอให้ลองเล่นแบบโต้ตอบกับแสงและวัสดุได้
    นอกจากนี้ยังน่าจะลองทำมุมมองของภาวะการเห็นสีผิดปกติ, มนุษย์ที่ “มองเห็น UV ได้หลังผ่าตัดเอาเลนส์ต้อกระจกออก”, สัตว์เลี้ยงลูกด้วยนมที่ไม่ใช่ไพรเมตแบบ dichromat (หนู/สุนัข), และปลาม้าลายแบบ tetrachromat ได้ด้วย

    1 http://www.ok.sc.e.titech.ac.jp/res/MSI/MSIdata31.html
    [2] กล้องมัลติสเปกตรัมราคาถูกที่ใช้แสงแถบแคบแบบ time-multiplexed: https://ubicomplab.cs.washington.edu/publications/hypercam/

    • ถ้าใช้ light tracing จะสามารถทำสิ่งนี้ได้อย่างมีประสิทธิภาพ
      ค่าสุดท้ายของภาพคือค่าที่แปลงจาก contribution ของแหล่งกำเนิดแสงแต่ละแหล่ง และเมื่อรู้สเปกตรัมของแหล่งกำเนิดแสงแล้ว ก็สามารถมีสเปกตรัมของพิกเซลได้ด้วย
      เพียงแต่ถ้าเจอ dispersion หรือเอฟเฟกต์ฟิล์มบางที่มีนัยสำคัญ ก็ต้องสุ่มตัวอย่างความยาวคลื่นในแต่ละ path ทำให้กลายเป็นวิธีที่เป็นการประมาณมากขึ้น
  • ผมกำลังคิดว่าจะลองทำการหักเหแสงใน distribution ray tracer ของตัวเอง
    เป็นวิธีเชิงความน่าจะเป็น ไม่ใช่วิธีแบบขนาน https://en.m.wikipedia.org/wiki/Distributed_ray_tracing
    น่าจะสุ่มสุ่มตัวอย่างความถี่ คำนวณสีนั้น แล้วนำไปใช้ปรับสีของรังสีได้
    ถ้าต้องการชดเชยให้สีจากการหักเหล้วน ๆ ที่มีความสว่างเหลือ 1/3 ก็ต้องคูณผลลัพธ์ด้วย 3

    • ผมคิดว่าคำว่า “distribution ray tracing” น่าจะเป็นสำนวนที่ใกล้กับช่วงกึ่งกลางระหว่างการพัฒนาจาก Whitted ray tracing ไปสู่ path tracing ในปัจจุบัน
      เท่าที่จำได้ เป็นคำที่มาจากหนึ่งในเปเปอร์ SIGGRAPH ของ Rob Cook
      ในฐานะแนวคิดที่ทั่วไปและรวมศูนย์มากกว่า ควรขยับไปทาง path tracing จะดีกว่า และเวลาค้นหาหรือศึกษาก็หาเคล็ดลับกับเทคนิคได้ง่ายกว่า
      เมื่อผสาน spectral rendering กับการหักเหแสง ก็ถูกต้องแล้วที่ต้องสุ่มตัวอย่างจากการกระจายเพื่อเลือกความถี่
      โดยทั่วไปอาจค่อนข้างยาก จึงควรค่อย ๆ สร้างทีละขั้น
      การสะท้อนก็เช่นเดียวกัน แต่ในทั้งสองกรณี การจะใช้วัสดุที่ขึ้นกับความถี่หรือไม่นั้นขึ้นอยู่กับการเลือก
      แม้จะใช้วัสดุแบบทำให้ง่ายขึ้น ก็ยังมีเหตุผลที่จะใช้แนวทางแบบสเปกตรัมอยู่ดี