ทำไมต้อง Y ในหลาย ๆ เกม


19

ฉันเรียนที่โรงเรียนว่าแกน z หมดแล้ว มันเหมือนกันในซอฟต์แวร์การสร้างแบบจำลองเช่น Blender อย่างไรก็ตามในหลาย ๆ เกมแกน y นั้นเพิ่มขึ้น

เหตุผลคืออะไร


ที่จริงแล้วที่นี่ในมหาวิทยาลัยหลายคนวาด y ในทิศทางตรงข้ามเมื่อพวกเขาวาดภาพ 2D (เดาเพราะใน 2D y นั้นยังเพิ่มขึ้นและบ่อยครั้งที่เราเพิ่งใช้ 3D เป็นลักษณะทั่วไปของ 2D เมื่อแสดงตัวอย่าง) จำไม่ได้ว่าเราเรียนรู้กฎสำหรับโรงเรียนแล้ว
Aufziehvogel

4
คำตอบง่ายๆ: นักคณิตศาสตร์หลายล้านปีวาดกราฟ XY ลงบนกระดาษซึ่งมี X กำลังหมุนซ้ายขวาและ Y เลื่อนขึ้นลงและเมื่อเพิ่มความลึกเข้าไปมันก็กลายเป็น Z ที่เข้ามาจากกระดาษ ไม่ใช่คำตอบง่ายๆ: ไม่มีใครเห็นด้วยกับอะไรทำไมพวกเขาถึงเห็นด้วยกับแกนตามอำเภอใจ? =)
Patrick Hughes

1
ดูเพิ่มเติม: gamedev.stackexchange.com/questions/13414/...
Kylotan

ฉันพบว่าตัวนับนี้ใช้งานง่ายสำหรับ 2D เช่นกันอาจเป็นเพราะฉันเริ่มต้นด้วย XNA ที่ Y ลดลง แต่สิ่งที่ควรอยู่ด้านหลังควรวาดก่อนและสูงขึ้นในพื้นที่หน้าจอมักจะหมายถึงไกลออกไป สิ่งนี้ส่งผลให้พลิก y เมื่อวาดภาพแผนที่ย่อยและตรรกะจะอึดอัด
Madmenyo

โปรดสังเกตว่าถ้าเราทำงานกับกราฟ ZY ด้วย Z ในตอนเริ่มต้นเราจะไม่มีปัญหานี้ - เราเพิ่งจะแนะนำแกน X และทำด้วยมัน (หรือในทำนองเดียวกันหากเราเพิ่มแกน W ลงในกราฟ YX ของเราเราก็จะไม่สับสนเช่นนี้)
Little Endian

คำตอบ:


46

ฉันคิดว่าทิศทางของแกนพิกัดนั้นถูกยึดไว้จากโดเมนที่ต่างกันซึ่งระนาบที่สำคัญแตกต่างกันและ X / Y นั้นสอดคล้องกับระนาบที่สำคัญนั้น ในการใช้งานบางอย่างระนาบกราวด์เป็นสิ่งที่สำคัญที่สุดดังนั้น X / Y จึงเป็นพื้นดินและ Z ก็ตั้งฉากกับฉากนั้น สำหรับเกมอย่างไรก็ตามเครื่องบินสำคัญมักจะเป็นหน้าจอ (โดยเฉพาะอย่างยิ่งเมื่อพวกเขาเป็น 2D และเพิ่งเริ่มเปลี่ยนเป็น 3D) ดังนั้น X / Y จึงเป็นหน้าจอและเมื่อเกมไป 3D Z ก็ตั้งฉากกับฉากนั้น

คุณสามารถเห็นความแตกต่างดังกล่าวระหว่างเครื่องมือศิลปะ 3 มิติที่ใหญ่ที่สุด: 3ds max และ Maya แกน Z เพิ่มขึ้นใน 3ds max เพราะมันงอกออกมาจากเครื่องมือสถาปัตยกรรมในขณะที่แกน Y นั้นเพิ่มขึ้นใน Maya เพราะมันเติบโตจากเครื่องมือสร้างภาพยนตร์

สิ่งสำคัญที่ต้องตระหนักเมื่อเปรียบเทียบเครื่องมือเฉพาะกับสิ่งที่คุณได้เรียนรู้ในโรงเรียนก็คือทุกสิ่งโดยพลการ ไม่สำคัญว่าแกนจะชี้ไปที่ใดตราบเท่าที่คุณรักษาทุกอย่างให้สอดคล้องและแปลอย่างถูกต้องระหว่างระบบพิกัดที่แตกต่างกัน


3

ส่วนใหญ่เป็นมรดกตกทอดมาจากยุคที่สิ่งต่าง ๆ ที่เกิดขึ้นกับ 3D คือพื้นที่หน้าจอหมุนลูกบาศก์หรือการเลื่อนแบบพารัลแลกซ์หรือสิ่งที่คล้ายกัน ในแอปพลิเคชันดังกล่าว Z คือ "ความลึก" เนื่องจาก X และ Y เป็นแกนสำหรับระนาบหน้าจอ เนื่องจากการสาธิตกำลังเพิ่มสูงขึ้นอนุสัญญาดั้งเดิมยังคงอยู่เพราะง่ายกว่าที่จะไม่เปลี่ยนแปลงสิ่งใดที่ใช้งานได้

ด้วยเหตุนี้เกมของวันนี้จึงมีแกน Y เป็นแกนตั้ง - มีบทเรียนที่เขียนไม่ดีมากมายที่ไม่สามารถอธิบายความแตกต่างได้ โดยปกติแล้วจะมีประโยชน์มากที่สุดในการมีระนาบการเคลื่อนที่หลักบนแกน X และ Y (เพื่อให้การคำนวณ 2D ส่วนใหญ่ไม่ต้องการการสลับแกนในรหัส) สำหรับนักกรีดด้านข้างส่วนใหญ่มันค่อนข้างบังเอิญกับระนาบหน้าจอ (X / Y) สำหรับเกมผจญภัยและเช่น X / Y ใช้งานได้ดีในแนวระนาบแนวตั้ง (ตั้งฉากกับทิศทางของแรงโน้มถ่วง) เพราะมันแมปเข้ากับแผนที่ในเกมได้อย่างสมบูรณ์แบบการควบคุมของแป้นควบคุมเกม


2

เท่าที่ผมได้เคยรวบรวมวาย = ขึ้น / ลงและ Z = ความลึกจะตามออกของฟิสิกส์ที่แรงโน้มถ่วงเป็นเสมอใน (-Y) ทิศทางและจากนั้นเพิ่ม 3D หมายความว่าคุณไม่ต้องการที่จะเปลี่ยนพื้นฐาน , ดังนั้นมันจึงทำให้ความลึก

บน Z = วิธีขึ้น / ลงแม้ว่าจะเป็นการโยนกลับไปยังนักคณิตศาสตร์ เนื่องจาก X / Y ถูกวาดลงบนกระดาษที่วางราบบนโต๊ะเมื่อแกน Z ขยายออกมาจากกระดาษดังนั้นจึงเพิ่มขึ้น แม้ว่าวิศวกรของคุณหลายคนจะใช้ระเบียบนี้เช่นกัน

ในส่วนที่เกี่ยวกับการประชุมที่ใช้โดยเครื่องมือที่กำหนด: Maya และ Unity มี Y-up (อาจได้รับการออกแบบโดยบุคคลที่มีพื้นหลังด้านฟิสิกส์) ในขณะที่ 3DsMax และ Unreal มี Z-up (อาจได้รับการออกแบบโดยนักคณิตศาสตร์ / วิศวกร) แม้ว่าอาจกล่าวได้ว่าสิ่งเหล่านี้อาจเป็นเพียงการตัดสินใจแยกกันในวันเดียวเพราะต้องใช้ระบบที่สอดคล้องกัน

เนื่องจากคำถามนี้มุ่งเน้นไปที่เครื่องมือสร้างแบบจำลองและวางอยู่บนเว็บไซต์ถามตอบเกี่ยวกับการพัฒนา คุณอาจต้องการตรวจสอบว่าระบบพิกัดใดที่คุณจะส่งออกไปและตรวจสอบให้แน่ใจว่าคุณทำตามนั้น

ยังตระหนักว่าบางระบบที่ระบบแกนตั้งยากและถาวรและอื่น ๆ ก็สามารถแก้ไขได้ (คิดว่ามันสามารถเปลี่ยนแปลงได้ใน Blender และ Unreal แต่อาจผิดพลาดได้)


1

เนื่องจากระบบพิกัดที่ใช้ในเกมขึ้นอยู่กับมิติของจอภาพ เมื่อคอมพิวเตอร์แสดงผลใด ๆ คอมพิวเตอร์จะเริ่มต้นที่มุมซ้ายบนซึ่งให้ค่า x และพิกัด y ของ [0, 0] ในขณะที่การเรนเดอร์ไปทางด้านขวาของหน้าจอค่า x จะเพิ่มขึ้นตามลำดับเมื่อเรนเดอร์ขยับลงค่า y จะเพิ่มขึ้น ระบบพิกัดนั้นโดยทั่วไปคือพื้นที่ 2 มิติยกเว้นส่วนที่เหลือเริ่มต้นที่มุมซ้ายบนและไม่ใช่กึ่งกลางของหน้าจอของคุณ

ในแพ็คเกจ 3 มิติเช่น 3DsMax และ Maya พวกเขามีคำจำกัดความของพิกัด x และ y ตามสิ่งที่สำคัญสำหรับพวกเขา 3DsMax มีพื้นฐานมาจากการออกแบบสถาปัตยกรรมถ้าคุณวาดแผนผังบนระนาบ 2 มิติ y จะขึ้น ในมายาซึ่งส่วนใหญ่ใช้สำหรับการเคลื่อนไหวดังนั้นพื้นดินคือ x, y และความสูงคือ z


ใน Maya หน้าจอคือ X / Y และ Z ตั้งฉากกับหน้าจอ
jhocking

Downvoted เนื่องจากคำถามคือ "ทำไม" ไม่ใช่ "อย่างไร" มันไม่มีเหตุผลว่าทำไมมันเป็นอย่างที่มันเป็นเพียงแค่ย้ำว่ามันเป็นอย่างไร
Maik Semder

ในความยุติธรรมคำแรกคือ "เพราะ" นั่นคือ คำตอบนี้เริ่มต้นด้วยคำอธิบายเหตุผล อาจไม่ใช่คำอธิบายที่ดี แต่เป็นคำอธิบาย
jhocking
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.