Лекция 4::Задача 5
- Forums:
Ориентирай равнината
Да се промени дефиницията на Plane геометрията, така че да може да е успоредна не само на XZ равнината, но и на XY и YZ. Да се добави свойство на равнината, което да указва кой от трите варианта на ориентация искаме.
Допълнително, да се реализира възможността равнината да е произволна, зададена с уравненито за равнина Ax + By + Cz + D = 0. Можете да приемете, че (A, B, C) ще е единичен вектор, и той служи за нормален на равнината. Може да реализирате директно допълнението; основната задача е частен случай на уравнението за равнина.
Точки: 3т. за основната задача, 3т. за допълнението. Зачитат ви се 6т, дори да сте реализирали само допълнението.
Comments
u v координати
Здравейте !
Искам да попитам нещо, ако може.
Когато определяме условните координати U и V спрямо равнината която сме построили, всъщност на нашата равнина поставяме двумерна координатна система и спрямо нея определяме U и V. При произволно положение на равнината в пространството :
1. каква трябва да е връзката м/у началото на двумерната спрямо това на тримерната и
2. ориентацията на двумерната спрямо това на тримерната координатна система и
3. какви трябва да са единичните вектори на двумерната (с дължина едно или нещо друго)?
В заданието не се изисква
В заданието не се изисква непременно да изчислявате коректни UV координати, можете да оставите сегашната формула (U = intersection.x, V = intersection.z). Ефектът ще е, че, когато равнината не е с нормала (0, 1, 0), текстурата ще стои леко разтеглена.
Иначе, ако искате да направите UV-тата коректно все пак:
1) Изберете каквото искате начало
2) Изберете каквато искате ориентация, т.е. векторите на двумерната координатна система трябва да са просто двойка взаимно перпендикулярни вектори, които са и перпендикулярни на нормалата на равнината
3) Да, трябва да са с дължина 1.