คำถามติดแท็ก perspective

2
มุมมองมุมมองของเกมภาพสามมิติ 2.5D ส่วนใหญ่คืออะไร [ปิด]
ฉันตรวจสอบเกมยอดนิยมหลายเกมเพื่อตัดสินว่าพวกเขาใช้มุมมองแบบไหน เพื่อจุดประสงค์ฉันสร้างกริดที่มีมุมมองภาพสามมิติ 45 และ 60 องศาและวางลงบนหน้าจอ (ของ Diablo II ในกรณีนี้) ไม่มีกริดเหล่านี้ที่เหมาะสมกับมุมมองของเกม ดังนั้นฉันจึงพยายามค้นหามุมที่เหมาะสมที่สุดกับมุมมองและใกล้เคียงกับ 53.5 องศา อย่างไรก็ตามตัวเลขนี้ดูเหมือนว่ามาจากที่ไหนเลยและฉันเชื่อว่ามีตรรกะที่แข็งแกร่งที่อยู่เบื้องหลังจำนวนที่กำหนดมุมมอง ฉันลอง 9/16 * 90 องศาและ 3/4 * 90 องศา (มาจากอัตราส่วนของความละเอียดหน้าจอ 16: 9 และ 4: 3) แต่ดูเหมือนว่าสมมติฐานของฉันจะไม่ถูกต้อง นี่คือภาพหน้าจอของสิ่งที่ฉันหมายถึง: 60 องศา 45 องศา บางอย่างระหว่างสอง - 53.5 องศา - ค่อนข้างใกล้เคียงกับจำนวนจริง ฉันต้องรู้จริงๆว่าองศาที่แท้จริงคืออะไรและมาจากไหน ความช่วยเหลือใด ๆ ที่เป็นที่นิยมมาก! ขอขอบคุณ!

5
ตัวอย่างการแกล้งทำ 3D
มีใครรู้บ้างไหมว่าตัวอย่างที่ดีของ 3D ถูกแกล้งทำเป็น 2D (ไม่จำเป็นต้องใช้รหัส แต่เป็นเกมที่ฉันสามารถค้นหา) ผู้เล่นมีมุมมองที่พวกเขากำลัง 'เข้าไป' หน้าจอและสิ่งต่าง ๆ ออกมาที่พวกเขา ในขณะนี้ฉันแค่ปรับสเกลศัตรู 2D เพื่อให้เห็นภาพลวงตาว่าพวกเขาเข้ามาใกล้ แต่มันก็ยังค่อนข้างแบน มีเคล็ดลับเกี่ยวกับวิธีการให้ภาพลวงตา 3D มากขึ้นโดยไม่ต้องใช้โปรแกรม 3D จริง ๆ หรือไม่? แก้ไข : เพิ่งเจอคำว่า 'Mode7' และวิดีโอนี้ซึ่งแสดงให้เห็นถึงสิ่งที่ฉันพยายามจะคิดออก (โดยเฉพาะเกมที่เวลา 0:13 น. และ 1:03 น.) เป็นวิธีที่ดีในการใช้อะไรเช่นนี้?

5
วัตถุสองครั้งที่ใกล้ที่สุดปรากฏขึ้นสองเท่าใหญ่กว่าอะไร?
ดังนั้นฉันจึงคิดที่จะสร้างเกม 2D ที่คุณสามารถเคลื่อนที่ไปตามแกน Z ได้โดยการเปลี่ยนเลเยอร์ที่คุณเป็น ฉันต้องการไต่ 2D สไปรต์ของฉันขึ้นอยู่กับความลึก ครั้งหนึ่งมีคนแสดงตัวอย่างให้ฉันฟังซึ่งเขามีสไปรต์ 2 มิติจำนวนมากและการเลื่อนเขาสามารถเปลี่ยนความลึกของกล้องได้ ดังนั้นเมื่อซูมเข้าวัตถุจะเข้าใกล้เครื่องเล่นมากขึ้นและดูใหญ่ขึ้น จากนั้นฉันก็สงสัยว่าวัตถุควรใหญ่กว่านี้เมื่อมันเข้าใกล้ 1 หน่วย คุณจะคำนวณมันอย่างไร ดังนั้นชายคนนั้นบอกฉันว่า: มีกฎพื้นฐานข้อหนึ่งที่ฉันใช้อยู่: "วัตถุสองเท่าใกล้เคียงปรากฏใหญ่ขึ้นสองเท่า" ตอนนี้โดยการทดสอบด้วยตนเองฉันรู้ว่ากฎไม่ได้ใช้ในโลกแห่งความเป็นจริง;) แต่มีค่าคงที่ที่ใช้ในการคำนวณโลกแห่งความจริงสำหรับมุมมองหรืออะไร? หรือสูตร ฉันรู้ว่านี่อาจไม่ใช่สถานที่ที่ดีที่สุดในการถามคำถาม แต่เนื่องจากเป็นเว็บไซต์เดียวที่ฉันใช้สำหรับคำถามที่เกี่ยวข้องกับเกมและบริบทของฉันเป็นเกมฉันคิดว่าฉันจะลองดู นอกจากนี้ฉันคาดหวังว่าจะมีคนที่นี่ที่รู้ทุกอย่างเกี่ยวกับมุมมอง 3 มิติและเมทริกซ์หรือบางสิ่งบางอย่างเนื่องจากอาจเกี่ยวข้องกับเกม 3 มิติ;) TL; DR: "วัตถุสองเท่าใกล้ปรากฏใหญ่เป็นสองเท่า" นั่นไม่จริงในโลกแห่งความจริง แต่ค่าคงที่หรือสูตรใดที่ถูกต้อง

2
เพราะเหตุใด 90 ° horz / 60 °จัดตำแหน่งมุมมอง FPS เริ่มต้น
เท่าที่ฉันเข้าใจมันควรปรับมุมมองแนวตั้งเป็น: fov = 2 * arctan(0.5*screenHeight / distanceEyeScreen); นั่นคือ Field of View ควรจับคู่ระยะห่างและขนาดของหน้าจอของผู้ใช้ ใน FPS จำนวนมากมีค่าเริ่มต้น 90 °สำหรับ FoV แนวนอนหรือ 60 °สำหรับ FoV แนวตั้ง (สมมติว่า 16: 9) ตัวอย่างหนึ่งคือ CryEngine แต่สำหรับหน้าจอขนาด 16: 9 20 "(แนวทแยงของพื้นที่ที่มองเห็นคือประมาณ 40 ซม. x 25 ซม.) ค่าเริ่มต้นนี้จะกำหนดให้ผู้ใช้ต้องมีตา 20 ซม. จากหน้าจอเพื่อให้ได้มุมมองที่ถูกต้อง ดังนั้นฉันจึงทำผิดพลาดในการคำนวณของฉันหรือต้องมีเหตุผลว่าทำไมคุณถึงเลือกค่า FoV ที่ไม่เหมาะสม อะไรคือสาเหตุของค่าเริ่มต้นของ FoV 90 ° …
14 3d  camera  perspective 

1
ฉันจะป้องกัน viewport ไม่ให้ยืด / บิดเบี้ยวได้อย่างไร
โดยทั่วไปฉันต้องการทราบว่าฉันสามารถลบความบิดเบี้ยวหรือการยืดภาพที่แสดงเมื่อขนาดวิวพอร์ต / หน้าต่างเปลี่ยนไปอย่างไร ภาพต่อไปนี้แสดงให้เห็นถึงการบิดเบือน / การยืดที่ฉันกำลังพูดถึง: รูปภาพต้นฉบับ (หน้าต่างสี่เหลี่ยม) ภาพบิดเบี้ยว / ยืดออก (หน้าต่างรูปสี่เหลี่ยมผืนผ้า) ตามหลักการแล้วภาพที่สองควรแสดงทรงกลมโดยไม่ต้องยืดออกในแนวนอนและจะทำให้ฉากกับผู้ใช้มากขึ้นเพื่ออธิบายขนาดหน้าต่างที่ใหญ่ขึ้น สิ่งนี้สามารถทำได้? ฉันทำงานกับ OpenGL เพื่อแสดงภาพและฉันใช้ประโยชน์จากการคาดการณ์มุมมองผ่านการโทร: glMatrixMode(GL_PROJECTION) glLoadIdentity() gluPerspective(60, window.width/window.height, 0.01f, 100.0f) อัตราส่วนภาพwidth/heightเป็นไปตามเอกสาร / บทช่วยสอนทั้งหมดที่ฉันพบดังนั้นฉันไม่คาดหวังว่ามันจะไม่ถูกต้อง อย่างไรก็ตามความสงสัยของฉันคือมันส่งผลกระทบต่อปัญหาการยืด หลังจากคิดแล้ว ตามจริงแล้วเมื่อฉันคิดเกี่ยวกับประเด็นนี้มากขึ้นฉันก็จะเชื่อว่าการแก้ปัญหานั้นเกี่ยวข้องกับความสัมพันธ์ที่เป็นสัดส่วนโดยตรงระหว่างมุมมองในทิศทาง y กับทิศทาง fovy และอัตราส่วนภาพ การใช้ภาพด้านบนเป็นข้อมูลอ้างอิงหากความกว้างเพิ่มขึ้น (ก่อให้เกิดการยืดในแนวนอน) ดูเหมือนว่าน่าจะเป็นไปได้มากที่มุม fovy ต้องเพิ่มขึ้นเพื่อทำให้เกิดการยืดแนวตั้งที่ 'แก้ไข' สัดส่วนของภาพที่แสดงผล ในทำนองเดียวกันการลดความกว้างต้องลดลงในมุม fovy ปรับปรุง: ดังนั้นหลังจากตรวจสอบเรื่องนี้ต่อไปฉันได้ตัดสินใจที่จะเปลี่ยนวิธีการตั้งค่า frustum การดูเช่นนี้: gluPerspective(60 * (float)window.width/window.height, (float)window.width/window.height, …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.