เครื่องมือและเทคนิคที่ฉันชอบสำหรับการพัฒนาเกมเชิงกระบวนการ
(cprimozic.net)-
ภาพรวมของโปรเจกต์
- ตลอดหลายปีที่ผ่านมา ผู้เขียนได้ทำงานกับฉาก 3D และเลเวลที่รันในเบราว์เซอร์
- ตอนแรกเริ่มจากเดโมแยกเดี่ยว แต่ค่อย ๆ พัฒนาเป็นโปรเจกต์ลักษณะคล้ายเกมที่เชื่อมต่อถึงกัน
- ใช้เทคนิคเชิงกระบวนการและเชิงกำเนิดเพื่อสร้างองค์ประกอบบางส่วน
-
Shaders + Textures
- เท็กซ์เจอร์ส่วนใหญ่ถูกออกแบบให้ไร้รอยต่อ เพื่อไม่ให้เห็นลวดลายซ้ำแม้ในพื้นที่ขนาดใหญ่
- สร้างเชดเดอร์แบบกำหนดเองใน Three.JS เพื่อเพิ่มความสามารถเพิ่มเติม
-
Triplanar Mapping
- สามารถใช้เท็กซ์เจอร์กับเมชได้โดยไม่ต้องมี UV map จึงเหมาะกับภูมิประเทศที่สร้างแบบเชิงกระบวนการ
- นำไปใช้งานได้ไม่ซับซ้อน และประยุกต์ใช้กับเมชได้หลากหลายประเภท
- ใช้ฟังก์ชัน
pow()เพื่อปรับน้ำหนัก ช่วยเพิ่มคุณภาพและปรับแต่งประสิทธิภาพให้เหมาะสม
-
Hex Tiling
- อัลกอริทึมสำหรับซ่อนการทำซ้ำของเท็กซ์เจอร์แบบไร้รอยต่อ
- พอร์ตเป็นไลบรารีแบบสแตนด์อโลนที่รวมเข้ากับโปรเจกต์ Three.JS ได้ง่าย
- ต้องใช้ UV map และมีภาระด้านประสิทธิภาพค่อนข้างสูง
-
Depth Pre-Pass
- เรนเดอร์ฉากสองครั้งเพื่อบันทึกค่าความลึกของพิกเซล ช่วยเพิ่มประสิทธิภาพ
- ในฉากที่มี overdraw สูง สามารถเพิ่มประสิทธิภาพได้มากกว่า 30%
-
AI-Powered PBR Texture Synthesis
- ใช้เท็กซ์เจอร์ที่สร้างด้วย AI เพื่อยกระดับคุณภาพของฉาก
- ใช้ DeepBump และ Materialize ในการสร้าง PBR map
-
Volumetric Fog/Clouds
- พัฒนาเชดเดอร์สำหรับเพิ่มเมฆหรือหมอกเข้าไปในฉาก
- ใช้ LoD noise lookup เพื่อเพิ่มความสามารถที่หลากหลาย
-
Meshes + Geometry
- ศึกษาเทคนิคการสร้างและดัดแปลงเมชขณะรันไทม์
- ส่วนใหญ่ใช้สร้างองค์ประกอบตกแต่งหรือฉากหลังแบบเชิงกระบวนการ
-
LoD Terrain
- สร้างภูมิประเทศด้วยฟังก์ชัน noise และปรับความละเอียดแบบไดนามิกตามระยะห่างจากกล้อง
-
Procedural Mesh Processing + Manipulation Pipeline
- สร้างไปป์ไลน์สำหรับแบ่งย่อยและดัดแปลงเมช low-poly แบบเชิงกระบวนการ
- การจัดการ normal ต้องใช้ความพยายามอย่างมาก
-
Future Work
- มีแผนใช้ Constructive Solid Geometry(CSG) เพื่อรวมเมชหรือเจาะตัดบางส่วนออก
- ตั้งใจพอร์ตไปยัง Rust เพื่อทำความเข้าใจให้ลึกซึ้งยิ่งขึ้น
สรุปโดย GN⁺
- บทความนี้แนะนำเทคนิคและเครื่องมือหลากหลายที่มีประโยชน์ต่อการพัฒนาเกมเชิงกระบวนการ
- เทคนิคการทำเท็กซ์เจอร์อย่าง Triplanar Mapping และ Hex Tiling ช่วยยกระดับทั้งประสิทธิภาพและคุณภาพไปพร้อมกัน
- การสร้างเท็กซ์เจอร์ด้วย AI และเชดเดอร์ Volumetric Fog/Clouds ช่วยเพิ่มความสมจริงให้กับฉาก
- งานในอนาคตอย่าง Constructive Solid Geometry มีศักยภาพสูงสำหรับการดัดแปลงเมช
- โปรเจกต์ที่มีความสามารถคล้ายกัน ได้แก่ ProBuilder ของ Unity และ Houdini
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เคยมีประสบการณ์ลองทำการสร้างเชิงกระบวนการมาก่อน
การสร้างภูมิประเทศที่ดีไม่ใช่เรื่องง่าย
เป็นบทความที่ยอดเยี่ยมเกี่ยวกับเทคนิคเชิงกระบวนการบนเว็บ
มีประสบการณ์ทั้งดีและไม่ดีกับการใช้ depth pre-pass
ในฐานะศิลปิน 3D นี่เป็นบทความที่น่าสนใจมาก