คำแนะนำการเตรียมโมเดล 3D สำหรับสเปเทียล
2 เดือนที่แล้ว แก้ไขแล้ว
วิธีทำโดยสังเขป:
- ประเภทไฟล์ที่เราแนะนำคือ GLB/GLTF แต่เรารองรับ FBX และ OBJ ด้วยเช่นกัน กดที่นี่เพื่อดูนามสกุลไฟล์อื่นๆที่เรารองรับ
- ตรวจให้แน่ใจว่าเมื่อเอ็กซ์พอร์ตไฟล์ของคุณ คุณได้เปิด "embedded media" / textures (ถ้ามีให้เลือก)
- เมื่อพร้อมอัปโหลด ให้คุณทำตามวิธีทำนี้
- อยากรู้เพิ่มเติมเกี่ยวกับ การเพิ่ม hotspots, special textures, และ colliders ให้กับโมเดลของคุณใช่ไหม ดูบทความนี้
File Optimization
Target file metrics (เรียงตามความสำคัญ)
- Textures:
- แนะนำ: 1024px x 1024px, และ สูงสุด 8 textures ต่อ 1 ไฟล์
- สูงสุด:1024px x 1024 px, ไม่เกิน 16 textures หรือ 2048px x 2048px, สูงสุด 4 textures ต่อ file
- Object Count:
- แนะนำ:
- สำหรับ environment object: น้อยกว่า 10
- สำหรับ single object: น้อยกว่า 3
- สูงสุด:
- สำหรับ environment object: 20
- สำหรับ single object: 5
- Vertex Count:
- แนะนำ:
- สำหรับ environment object: น้อยกว่า 100k
- สำหรับ single object: น้อยกว่า 30k
- สูงสุด:
- สำหรับ environment object: 300k
- สำหรับ single object: 50k
- Triangles:
- แนะนำ:
- สำหรับ environment object: น้อยกว่า 60k
- สำหรับ single object: น้อยกว่า 15k
- สูงสุด:
- สำหรับ environment object: 180k
- สำหรับ single object: 30k
- Shaders:
- แนะนำ: Unlit
- รองรับ: Unlit, Metallic/Roughness และ Specular/Glossiness PBR
- Shadows:
- เรารองรับ realtime shadows เท่านั้นบนอุปกรณ์ไร้สาย (Android/iOS) แต่มันไม่ได้ให้คุณภาพที่ดีที่สุด
- เราแนะนำให้คุณ bake lighting ลงใน textures เพื่อให้ได้โมเดลที่เสมือนจริงมากขึ้น
วิธี optimize textures
- ลองลดขนาด textures นั้นก่อน
- คุณสามารถใช้ gltf-transform (ดูวิธีการติดตั้งที่นี่) เพื่อลดขนาด textures เช่น การลดขนาดให้เหลือ 1024x1024,
ใช้คำสั่ง:
gltf-transform resize --width 1024 --height 1024 model.glb model.resized.glb
ยิ่ง textures มีขนาดเล็กเท่าใดหน่วยความจำก็จะถูกใช้น้อยลงตามไปด้วย เราแนะนำขนาดไม่เกิน 2048x2048 สำหรับเคสส่วนมากทั่วไป และสูงสุดไม่เกิน 1024x1024 ถ้าเป็นไปได้ ถ้าคุณต้องใช้ 4096x4096 ใช้มันเท่าที่จำเป็นเท่านั้นและให้ทดสอบบนอุปกรณ์ไร้สายราคาถูก
- เอ็กซ์พอร์ตเป็น jpg แทนที่จะเป็น png ถ้าไม่จำเป็นต้องใช้ alpha channel
เคล็ดลับ: ถ้าคุณต้องการฝัง special textures เช่น น้ำ แก้ว หรือ กระจก กรุณาดูบทความนี้
วิธี optimize download size
- ทำตามขั้นตอน optimizing textures ก่อน
- คุณสามารถใช้ gltf-transform (ดูวิธีการติดตั้งที่นี่) เพื่อลดขนาด textures เช่น การลดขนาดให้เหลือ 1024x1024, ใช้คำสั่ง:
gltf-transform draco model.glb model.draco.glb
โมเดลของฉันถูกอัปโหลดแล้ว แต่ textures หายไป ฉันต้องแก้อย่างไร
คุณต้อง re-zip ไฟล์เพื่อรวมมันกับ textures
- เปิดโมเดลของคุณ (.glb, .gltf, หรือประเภทไฟล์ที่รองรับอื่นๆ) ในไฟล์ของคุณ เลือก textures และ โมเดล คลิกขวา และ zip โมเดล
- ลากและปล่อยไฟล์ zip นั้นลง สเปเทียลโดยตรง textures ของคุณควรปรากฎขึ้นบนโมเดลทันที
วิธี optimize models
ใช้ Blender คุณสามารถใช้ Decimate Modifier คุณจะอยาก decimate โมเดลของคุณถ้ามี vertexes หรือ triangles มากเกินไป วิธีนี้จะช่วยลดขนาดไฟล์ของคุณอย่างมีนัยยะสำคัญ
Draw call: ผสาน objects ให้มากที่สุดเท่าที่จะเป็นไปได้ โปรดสังเกตว่า โมเดลที่ผสานแล้วต้องมี 1 material ถ้า หนึ่ง object มี material หลายแบบ draw call จะเป็นเหมือนเดิม (ต่อ object * ต่อ material)
Vertex count: Weld vertices ถ้าพวกมันไม่ใช่ hard edge lines และคุณสามารถใช้เครื่องมือในการลด vertex count (เช่น Decimate Modifier ใน Blender)
Pixel overdraw: Pixel overdraw บางครั้งส่งผลกระทบมากในบางแพลตฟอร์ม ลองหลีกเลี่ยงการใช้ transparent (alpha-blend) objects และถ้ามันโปร่งใส พยายามทำให้พื้นที่นั้นมีขนาดเล็กที่สุดเท่าที่จะเป็นไปได้
สำหรับเครื่องมือ decimation ขั้นสูง ดูคำแนะนำด้านล่าง
แหล่งข้อมูล Decimation
มองหาวิดีโอสอน decimation อย่างง่ายใช่ไหม ลองดู วิดีโอนี้
- Simplygon:
- มี APIs หลากหลายและสามารถเขียนสคริปต์อื่นๆ เพิ่มได้แต่ตั้งแต่อดีตถึงปัจจุบันมันถูกใช้สำหรับเกมใหญ่ๆและถูกจดใบอนุญาตตาม shipping title (คำแนะนำของ Microsoft)
- MeshLab:
- ตัวเลือก open-source ที่มี mesh optimization อัตโนมัติ (ตามคำแนะนำของ Microsoft)
การแปลงไฟล์
วิธีแปลงไฟล์ 3D ของคุณเป็น GLB
เรารองรับ GLB, glTF และ FBX แต่ GLB คือประเภทไฟล์ที่เราแนะนำ
สำรวจเครื่องมือด้านล่างเพื่อแปลงโมเดลของคุณ
เครื่องมือแปลงไฟล์
- GitHub - Facebook Incubator FBX to glTF-จำเป็นต้องใช้ผ่าน command line
- GLB Packer-ใช้มันเพื่อแปลง glTF เป็น GLB (มีประโยชน์มากถ้าโมเดลนั้นมาจาก Sketchfab, หรือ หากคุณใช้ non-embedded glTF)
- Blender-ซอฟแวร์แบบ open-spurce และ ฟรี ที่คุณสามารถใช้มันสร้างไฟล์ glb ผลลัพธ์ของ Blender’s glb exporter ค่อนข้างแม่นยำ
- Article on converting Step files-ไฟล์ .stp เป็น gITF
- Creators 3D Online Conversion Tool
การตั้งค่าเอ็กซ์พอร์ต / การฝัง
Textures ทั้งหมดควรถูกฝังในหนึ่งไฟล์ fbx หรือ glb ไฟล์ texture แยก จะไม่ถูกโหลด
-ซอฟแวร์บางประเภทสามารถฝัง media ได้อัตโนมัติ
ดังนั้นการตั้งค่านี้อาจไม่ปรากฎ คุณควรตรวจสอบให้แน่ใจอีกครั้ง
ถ้าคุณมีคำถามใดๆเพิ่มเติม กรุณาส่งคำถามไปที่ช่องทาง #support ของเราใน Discord
หรือติดต่อหาเราที่ support@spatial.io.