![]() |
|
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]()
|
|
| iAnthony |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 19.1.2009 Где: Moscow Репутация: нет Всего: нет |
Здравствуте!
Пришлось сделать преждевременный скачек в изучении OpenGL (а точнее почти не зная его) , и выполнить то, что ни разу не делал и не знаю пока как. Подскажите, пожалуйста, как показать вектор нормали к поверхности? Есть тетраэдр, который построен поворотом треугольника, необходимо построить векторы нормалей к каждой его грани. Заранее премного благодарен за помощь. |
|||
|
||||
| TDM |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 1.2.2006 Где: SPB Репутация: нет Всего: нет |
Векторы строятся так:
n = cross(v2-v0, v1-v0); где v0, v1, v2 точки поверхностии |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
Модель состоит из треугольников. Нормаль считается тремя способами:
0) Самый топорный, быстрый и грубый: берём вектор от первой точки ко второй, и от первой к третьей, перемножаем их векторно, нормализуем - и получаем нормаль к данной плоскости (к данному треугольнику). Это значение будет нормалью для всех трёх вершин. Именно его описал TDM 1) Более грамотный: каждая вершина принадлежит ни одному треугольнику, а нескольким. Берём первую вершину, ищем нормали всех треугольников, к которым она (вершина) относится, складываем и нормализуем. Получается нормально к данной вершине. 2) То же что и второе, но там ещё устанавливается зависимость от площадей этих треугольников. Этим вариантом я никогда не интересовался и не занимался. Надо спрашивать на gamedev.ru - там точно знают. Удачи -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| iAnthony |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 19.1.2009 Где: Moscow Репутация: нет Всего: нет |
Спасибо за помощь!
Для себя возьму на заметку грамотные варианты и позже с ними разбирусь, а сейчас, использую тот, что проще, т.к. думать времени нет, надо тупо сделать. |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
Удачи!
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
Не забывайте пометить тему как решённую
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
![]()
|
| Вы можете найти полезным что... | |
|
|
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |