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

2
จะใช้ trackball ใน OpenGL ได้อย่างไร?
หลังจากอ่านมากเกี่ยวกับการแปลงมันถึงเวลาที่จะใช้ trackball สำหรับแอพของฉัน ฉันเข้าใจว่าฉันต้องสร้างเวกเตอร์จากจุดเริ่มต้นไปยังจุดที่คลิกเมาส์จากนั้นอีกอันจากจุดเริ่มต้นไปยังที่ที่ปล่อยเมาส์ คำถามของฉันคือฉันต้องเปลี่ยนพิกัดพิกเซล (x, y) เป็น coords โลกหรือฉันควรทำทุกอย่างในพื้นที่ภาพ (พิจารณาพื้นที่ภาพคือการฉายภาพ 2 มิติของฉากที่วัดเป็นพิกเซล) แก้ไข คำตอบของ Richie Sams นั้นดีมาก อย่างไรก็ตามฉันคิดว่าฉันกำลังทำตามวิธีที่แตกต่างกันเล็กน้อยโปรดแก้ไขฉันหากฉันผิดหรือเข้าใจผิดบางอย่าง ในใบสมัครของฉันฉันมีSimplePerspectiveCameraระดับที่ได้รับpositionของกล้องที่position of the targetเรากำลังมองหาที่upเวกเตอร์ที่fovy, aspectRatio, nearและfarระยะทาง กับสิ่งที่ฉันสร้างเมทริกซ์มุมมองและการฉายของฉัน ตอนนี้ถ้าฉันต้องการซูมเข้า / ออกฉันจะอัพเดทมุมมองและอัพเดทเมทริกซ์การฉายของฉัน ถ้าฉันต้องการเลื่อนฉันเลื่อนตำแหน่งของกล้องและดูที่เดลต้าที่เมาส์สร้าง ในที่สุดสำหรับการหมุนฉันสามารถใช้การแปลงแกนมุมหรือ quaternions สำหรับสิ่งนี้ฉันบันทึก pixel-coords ที่เมาส์ถูกกดแล้วเมื่อเมาส์เคลื่อนฉันก็จะบันทึก pixel-coords สำหรับแต่ละคู่ของคอร์ดฉันสามารถคำนวณค่า Z ที่กำหนดสูตรสำหรับทรงกลมเช่น sqrt (1-x ^ 2-y ^ 2) จากนั้นคำนวณเวกเตอร์ที่ไปจากtargetไปPointMousePressedและกลับจากtargetไปPointMouseMovedทำผลิตภัณฑ์ข้าม เพื่อให้แกนหมุนและใช้วิธีการใด ๆ เพื่อคำนวณตำแหน่งกล้องใหม่ อย่างไรก็ตามข้อสงสัยที่ใหญ่ที่สุดของฉันคือค่า …
15 opengl  trackball 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.