ทำไมใบหน้าของ cubemap ถึงมีป้ายกำกับว่า px, nx, py, ny, pz, nz

ฉันกำลังใช้ cubemap ในโปรเจ็กต์ WebGL และเพื่อนร่วมงานของฉันได้จัดเตรียมเนื้อหารูปภาพสำหรับใบหน้าที่มีป้ายกำกับว่า ด้านหน้า ด้านหลัง ซ้าย ขวา บนและล่าง อย่างไรก็ตาม โค้ดตัวอย่างของ Three.js ใช้รูปภาพที่มีป้ายกำกับด้วย 2 ตัวอักษร p หรือ n ตามด้วย x, y หรือ z

ด้วยการลองผิดลองถูกเล็กน้อย ฉันจึงจัดทำแผนผังสินทรัพย์ของเพื่อนร่วมงานตามนั้น:

  • พิกเซล = ซ้าย
  • นเอ็กซ์ = ถูกต้อง
  • ไพ = ด้านบน
  • ny = ด้านล่าง
  • pz = ย้อนกลับ
  • นิวซีแลนด์ = ด้านหน้า

เมื่อมองดูแล้ว มันชัดเจนว่า x, y และ z หมายถึงแกน แต่ p และ n ไม่ชัดเจนนัก ฉันกำลังคิด บวก และ ลบ แต่ทฤษฎีนั้นล้มลงเมื่อคุณดูแกน x ซึ่งปกติแล้วจะแสดงว่าเพิ่มขึ้นจากซ้ายไปขวา แกน z ทำให้ฉันรู้สึกปวดหัวเพราะฉันไม่รู้ว่าฉันคาดหวังว่าวัตถุจะเคลื่อนเข้ามาใกล้ฉันมากขึ้นหรือห่างออกไปเมื่อค่าของ z เพิ่มขึ้น สัญชาตญาณบอกว่าใกล้ชิด

ด้านตรรกะที่ครอบงำของฉันคิดว่านี่เป็นคำแปลภาษา "ทุกวัน" ที่เหมาะสมกว่า:

  • พิกเซล = ขวา
  • นเอ็กซ์ = ซ้าย
  • ไพ = ด้านบน
  • ny = ด้านล่าง
  • pz = ด้านหน้า
  • nz = ย้อนกลับ

เพื่อนร่วมงานของฉันได้จัดเตรียมชุดสินทรัพย์ที่ไม่ได้มาตรฐานไว้หรือไม่ นี่เป็นเหตุผลที่แน่ชัดที่เราไม่ใช้ภาษาในชีวิตประจำวัน (ซ้าย ขวา บน ฯลฯ) ในการสร้างแบบจำลอง 3 มิติใช่หรือไม่ ฉันควรขอให้พวกเขาระบุ px, nx, py ฯลฯ หรือไม่

ขอคำแนะนำจากผู้เชี่ยวชาญผู้ช่ำชอง


person Martin Joiner    schedule 01.09.2017    source แหล่งที่มา
comment
นี่เป็นคำถามที่ดีและไม่ควรถูกลดระดับลง   -  person WestLangley    schedule 01.09.2017


คำตอบ (1)


ตามแบบแผน - น่าจะเป็นไปตามข้อมูลจำเพาะของ RenderMan จากปี 1990 - แผนที่คิวบ์ถูกระบุโดย WebGL (และ three.js) ในระบบพิกัดที่ค่าบวก -x อยู่ทางด้านขวาเมื่อค้นหาแกนบวก -z - กล่าวอีกนัยหนึ่ง ในระบบพิกัดทางซ้าย โดยดำเนินการตามแบบแผนนี้ต่อไป แม็พคิวบ์ที่มีอยู่แล้วยังคงเรนเดอร์อย่างถูกต้อง

three.js ใช้ระบบพิกัดทางขวา ดังนั้นแผนที่สภาพแวดล้อมที่ใช้ใน three.js ดูเหมือนจะสลับ px และ nx (นี่เป็นกรณีของตัวอย่างแมปลูกบาศก์ three.js ทุก ๆ อัน)

three.js r.87

person WestLangley    schedule 01.09.2017