luz · โปรแกรมเรนเดอร์ 3 มิติที่ใช้เวลา 15 เดือนเขียนเองจากศูนย์ แต่ยุค AI แบบนี้ยังคุ้มไหม
luz คือ path tracer ภาษา C++ ที่คนคนเดียวเขียนเองจากศูนย์ ไม่พึ่งไลบรารีภายนอกเลย ใช้เวลากว่า 15 เดือน แล้วทำไมแค่คำว่า "without AI" ในชื่อ ถึงทำให้ดราม่าลากยาวเป็นร้อยคอมเมนต์

โปรเจกต์ luz คือโปรแกรมเรนเดอร์ภาพ 3 มิติแบบ Path Tracer ที่เขียนด้วยภาษา C++ ล้วน โดยไม่พึ่งพาไลบรารีภายนอกเลยแม้แต่ตัวเดียว ทุกองค์ประกอบตั้งแต่การคำนวณรังสีแสงจำลองไปจนถึงขั้นตอนลด Noise ของภาพ ผู้พัฒนาลงมือเขียนขึ้นเองคนเดียวทั้งหมดและใช้เวลาสะสมนานกว่า 15 เดือน
ท่ามกลางยุคที่ AI ช่วยสร้างโค้ดได้ในพริบตา ผลงานที่สร้างด้วยมือล้วนระดับนี้ย่อมดึงดูดความสนใจจากชุมชนนักพัฒนาได้ไม่ยาก ทว่าสิ่งที่จุดชนวนวิวาทะร้อนแรงนับร้อยความคิดเห็นบน Hacker News กลับไม่ใช่เรื่องเทคนิคความซับซ้อนของโค้ด แต่เป็นคำโปรยในหัวข้อโพสต์ที่ระบุว่า "without AI" เพราะเมื่อผู้พัฒนายอมรับในภายหลังว่ามีบางส่วนในช่วงท้ายที่ใช้ AI ช่วยขัดเกลา คำถามที่ตามมาจึงสะท้อนประเด็นที่ใหญ่กว่าตัวโปรเจกต์ นั่นคือในวันที่ AI เขียนโค้ดแทนได้เกือบหมด การลงแรงสร้างทุกอย่างจากศูนย์ยังคงมีคุณค่าอยู่อีกหรือไม่
งานกราฟิกระดับลึกที่ไม่มีทางลัด
ก่อนจะวิเคราะห์ว่าการใช้ AI เหมาะสมหรือไม่ จำเป็นต้องเข้าใจธรรมชาติของงานที่ luz กำลังรับมือก่อน
Path Tracer คือซอฟต์แวร์จำลองพฤติกรรมการเดินทางของลำแสงในสภาพแวดล้อม 3 มิติ เพื่อสร้างภาพที่มีมิติแสงเงาสมจริงเสมือนภาพถ่าย หัวใจหลักขับเคลื่อนด้วยเทคนิค Monte Carlo Path Tracing ซึ่งทำการสุ่มยิงลำแสงจำนวนมหาศาลต่อหนึ่งพิกเซลแล้วนำผลลัพธ์มาคำนวณค่าเฉลี่ย ยิ่งประมวลผลแสงมาก ภาพก็ยิ่งคมชัด แต่แลกมาด้วยระยะเวลาเรนเดอร์ที่ยาวนานขึ้น
ความพิเศษที่ทำให้ luz ก้าวข้ามโปรเจกต์ทดลองทั่วไป คือสถาปัตยกรรมภายในที่จัดวางไว้อย่างจริงจัง ผู้พัฒนาเขียนระบบเร่งความเร็ว BVH (Bounding Volume Hierarchy) เพื่อลดภาระการตรวจสอบวัตถุในฉาก เขียนอัลกอริทึม Adaptive Sampling เพื่อสั่งหยุดยิงแสงอัตโนมัติเมื่อพิกเซลนั้นได้ค่าสีที่เสถียรแล้ว แทนที่จะเปลืองพลังงานคำนวณซ้ำทุกจุด นอกจากนี้ยังใส่ระบบ Denoiser ที่ใช้ข้อมูลเรขาคณิตของฉากมาช่วยเกลาภาพ รองรับวัสดุหลากหลายรูปแบบทั้งโลหะ แก้ว และพื้นผิวเปล่งแสง รองรับการประมวลผลแบบ Multithreading บน CPU และทำงานข้ามแพลตฟอร์มได้ทั้ง macOS, Linux และ Windows
ทั้งหมดนี้คืองานสถาปัตยกรรมระดับลึกที่ไม่มีสูตรสำเร็จลัดขั้นตอน ใครที่เคยสัมผัสงานคอมพิวเตอร์กราฟิกระดับนี้ย่อมรู้ดีว่า ต้องอาศัยการอ่านเปเปอร์วิชาการ ทดลองสมการ และไล่ดีบักทีละบรรทัดต่อเนื่องหลายเดือน ไม่ใช่งานที่พิมพ์พรอมต์เพียงครั้งเดียวแล้วจะได้คำตอบพร้อมใช้
ถ้อยคำที่จุดประกายการถกเถียง
เรื่องราวเกือบจะจบลงด้วยความชื่นชม หากผู้พัฒนาไม่เขียนอธิบายเพิ่มเติมในคอมเมนต์ว่า แม้โครงสร้างส่วนใหญ่จะเขียนด้วยมือล้วน แต่ในช่วง 2 สัปดาห์สุดท้ายก่อนปล่อยผลงาน ได้นำ AI เข้ามาช่วยทำความสะอาดโค้ด (cleanup) และเพิ่มเติมฟีเจอร์ย่อยบางรายการ
จุดเปลี่ยนนี้ทำให้เกิดกระแสวิจารณ์ขึ้นทันที
ฝั่งผู้ที่ไม่เห็นด้วยมองว่า การใช้คำว่า "without AI" บนหัวข้อทั้งที่มีการพึ่งพา AI ในช่วงท้าย ถือเป็นการสื่อสารที่อาจทำให้เข้าใจผิด พร้อมตั้งคำถามว่า เมื่อตั้งใจทุ่มเทมาได้ถึง 15 เดือนโดยไม่พึ่งพาเครื่องมืออัตโนมัติ เหตุใดจึงไม่เขียนต่อจนเสร็จสมบูรณ์ด้วยตัวเองทั้งหมด และมีบางความเห็นแย้งว่า หากเป็นเช่นนี้ ใครที่มีโค้ดเก่าเก็บไว้หลายปีแล้วนำมาต่อยอดด้วย AI ย่อมสามารถอ้างได้เช่นกันว่าตนเองสร้างขึ้นจากศูนย์
ส่วนฝั่งที่เข้าใจมองว่า เวลาการทำงานเกือบทั้งหมดเกิดขึ้นก่อนยุคที่เครื่องมือ AI Coding จะแพร่หลาย การลงมือเรียนรู้และสร้างฐานรากด้วยตัวเองถือเป็นคุณค่าที่เกิดขึ้นจริง และไม่ถูกลบล้างเพียงเพราะมีการใช้เครื่องมือช่วยในช่วงท้าย
ตัวเลขประวัติ Commit ที่บอกความจริง

สิ่งที่ทำให้การแลกเปลี่ยนครั้งนี้มีน้ำหนัก คือการมีนักพัฒนาเข้าไปตรวจสอบประวัติการแก้ไขโค้ด (Commit History) ในคลัง Git แล้วนำสถิติจริงมาเปิดเผย
Repository ของ luz มีการ Commit ทั้งหมด 557 ครั้ง โดย 510 ครั้งเกิดขึ้นก่อนช่วง 2 สัปดาห์สุดท้าย และเกือบทั้งหมดบันทึกไว้ก่อนเดือนกรกฎาคม 2022 ซึ่งเป็นช่วงเวลาก่อนที่ ChatGPT จะเปิดตัวอย่างเป็นทางการ สำหรับประวัติการแก้ไขช่วงท้ายที่ใช้ AI มีประมาณ 47 ครั้ง ซึ่งเกินกว่าครึ่งหนึ่งเป็นการแก้ไขเอกสาร README และงานจิปาถะทั่วไป ส่วนที่เหลือเป็นการจัดระเบียบโค้ด การปรับแต่งประสิทธิภาพ การแก้บั๊กย่อย และการทำระบบเชื่อมต่อกับ Blender
เมื่อคำนวณสัดส่วนออกมา เนื้องานที่สร้างโดยไม่พึ่งพา AI คิดเป็นสัดส่วนสูงถึง 90 ถึง 95 เปอร์เซ็นต์ของโปรเจกต์ทั้งหมด
ตัวผู้พัฒนาเองชี้แจงด้วยมุมมองเดียวกันว่า เมื่อเทียบเวลาที่ทุ่มเทไป 15 เดือนกับช่วงเวลาสั้นๆ เพียงสัปดาห์เศษที่นำ AI มาช่วยขัดเกลา ผลลัพธ์สุดท้ายแทบไม่ได้แตกต่างจากความสามารถที่ตนสร้างไว้ จึงมองว่าโครงการนี้ยังคงสะท้อนการสร้างสรรค์ด้วยตนเองเป็นหลัก
ประเด็นแท้จริงไม่ใช่เรื่องสัดส่วนเปอร์เซ็นต์
หากมองข้ามเรื่องการนับตัวเลข Commit ประเด็นที่แท้จริงของการถกเถียงนี้ คือการตั้งคำถามว่าคำว่า "เขียนเองจากศูนย์" ในยุคปัจจุบันมีความหมายอย่างไร และยังจำเป็นต่อการเติบโตของนักพัฒนาอยู่หรือไม่
สำหรับการพัฒนาทักษะระดับมืออาชีพ การลงมือสร้างระบบ BVH หรือเขียนอัลกอริทึม Sampling ด้วยตนเอง ให้ผลลัพธ์สำคัญ 2 ประการที่เครื่องมืออัตโนมัติไม่สามารถมอบให้ได้ ประการแรกคือความเข้าใจในเชิงลึก คนที่เคยดีบักปัญหาแสงและเงาด้วยตนเองจะมองออกทันทีว่า Noise ในภาพเกิดจากสาเหตุใดและต้องปรับแก้อย่างไร ซึ่งเป็นสัญชาตญาณที่ไม่ได้มาจากการสั่งพรอมต์ ประการที่สองคือความสามารถในการประเมินและตัดสินใจว่าโค้ดที่ AI สร้างขึ้นนั้นมีคุณภาพ ถูกต้องตามหลักการ หรือแอบซ่อนข้อผิดพลาดไว้หรือไม่
ในทางกลับกัน การลงมือเขียนทุกองค์ประกอบด้วยตนเองเป็นเวลานับปี ย่อมมีต้นทุนเวลาที่สูงมาก และไม่ใช่ทุกโปรเจกต์ที่จะต้องการความลึกซึ้งระดับนี้ งานที่ต้องส่งมอบให้ทันกำหนดกับงานที่ทำเพื่อศึกษาทดลองย่อมมีเป้าหมายที่แตกต่างกันอย่างสิ้นเชิง
แนวทางการปรับใช้สำหรับนักพัฒนา

สำหรับผู้ที่กำลังเรียนรู้การเขียนโปรแกรมหรือกำลังก้าวเข้าสู่สายงานเทคโนโลยี คำตอบไม่ได้อยู่ที่การปฏิเสธเครื่องมืออย่างสุดโต่ง หรือการพึ่งพา AI ในทุกขั้นตอน แต่เป็นการแยกแยะขอบเขตของงานให้ออก
- โครงสร้างหลักและแกนความเข้าใจ: เรื่องที่เป็นหัวใจสำคัญของสายงาน เช่น Data Structures, อัลกอริทึมพื้นฐาน หรือตรรกะเฉพาะทาง ควรสละเวลาลงมือเขียนด้วยตัวเองอย่างน้อยหนึ่งรอบ การได้เห็นจุดผิดพลาดและแก้ไขด้วยตนเองจะสร้างทักษะที่นำไปต่อยอดได้ระยะยาว
- งานประจำและงานส่วนขยายที่ไม่ซับซ้อน: เช่น การเขียนสคริปต์แปลงข้อมูล การร่างโค้ดตั้งต้น หรือการจัดระเบียบเอกสาร สามารถเปิดรับความช่วยเหลือจาก AI ได้เต็มที่ เพื่อประหยัดเวลาและเก็บพลังงานไว้โฟกัสส่วนสำคัญ
สิ่งที่กรณีศึกษาของ luz สะท้อนให้เห็น จึงไม่ใช่การตั้งข้อห้ามเรื่องการใช้ AI แต่เป็นการวางลำดับความสำคัญให้ถูกต้อง นั่นคือการสร้างความเข้าใจในแกนหลักให้กระจ่างชัด ก่อนจะใช้เครื่องมือเข้ามาช่วยเร่งความเร็วในขั้นตอนสุดท้าย
สำหรับผู้ที่สนใจศึกษาโค้ด สามารถเข้าไปดูรายละเอียดโครงการได้ที่คลัง luz หรือหากต้องการเริ่มต้นศึกษาการสร้างระบบเรนเดอร์จากศูนย์ ซีรีส์หนังสือ Ray Tracing in One Weekend ถือเป็นจุดเริ่มต้นมาตรฐานที่นักพัฒนาจำนวนมากเลือกใช้
นิยามของการสร้างสรรค์ที่เปลี่ยนไป
กรณีของ luz แสดงให้เห็นว่าคำว่า "สร้างเองจากศูนย์" กำลังค่อยๆ เปลี่ยนบริบทไปตามเครื่องมือยุคใหม่
ในวันที่เทคโนโลยีพัฒนาอย่างก้าวกระโดด คำถามสำคัญอาจไม่ใช่การวัดว่าเราใช้ AI มากน้อยเพียงใด แต่เป็นความมั่นใจว่า เรายังคงเป็นผู้เข้าใจและควบคุมตรรกะในระบบที่เราสร้างขึ้นมาได้อย่างแท้จริงหรือไม่
ที่มา:
- โปรเจกต์ themartiano/luz: C++ Path Tracer from scratch with zero third-party libraries จาก themartiano
- การถกเถียง Show HN: I wrote a C++ ray tracer from scratch without AI บน Hacker News
ชอบเรื่องแนวนี้ มีอีบุ๊คฟรีให้อ่านต่อ
Vibe Coding สำหรับคนไม่ใช่โปรแกรมเมอร์ ใช้ Claude Code สร้าง landing page, mini app และ prototype จริงโดยไม่ต้องเขียนโค้ด
กดสมัครแล้วเราจะส่งเทคนิค AI และของแจกใหม่ๆ ให้ทางอีเมล เลิกรับได้ตลอด
Claude Cowork · The Business Playbook

ฉบับภาษาไทย 15 บท เรียนรู้ผ่านโปรเจกต์จำลองต่อเนื่องทั้งเล่ม ตั้งแต่ตั้งค่า Workspace จัดการไฟล์ เชื่อมแอป ตั้งระบบอัตโนมัติ จนถึงสร้าง Plugin


