![]() |
|
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]()
|
|
| Gaudi |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 18.3.2007 Репутация: нет Всего: нет |
Нужна реализация любого алгоритма отсечения нелицевых граней.
Любая 3d фигура (напр. куб) без использования glEnable (GL_DEPTH_TEST) |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: нет Всего: 101 |
Gaudi, уточни задачу.
Если просто не надо рисовать нелицевые, GL_DEPTH_TEST непричем, а используется GL_CULL_FACE и glCullFace(). Если они должны рисоваться, но при этом перекрываться в соответствии с глубиной, без GL_DEPTH_TEST придется самому реализовывать Z-буффер или пользоваться сортировкой граней и выводить их от дальней к ближней (это я сильно упрощаю, там есть тонкости). Тебе это надо? Наконец может тебе подойдет это: делаешь два прохода, на первом выводишь нелицевые, на втором - лицевые (используя glCullFace). |
|||
|
||||
| Gaudi |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 18.3.2007 Репутация: нет Всего: нет |
Должны рисовать ВСЕ грани и перекрываться в соответствии с глубиной, объект вращается. Так мне была поставлена задача. Догадываюсь, задача непростая, но может кто-то сталкивался с подобным?
|
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: нет Всего: 101 |
Если я правильно понимаю, задача была поставлена не использовать Z буффер opengl, а реализовать нечто самому? Так и не понимаю причем тут нелицевые грани.
Если так, то тебе как минимум потребуется держать в памяти список граней. Применяешь текущую матрицу поворота к координатам граней, далее сортируешь грани от дальней к ближней. Теперь можно выводить на экран (дополнительный поворот в opengl задавать не надо, т.к. координаты уже преобразованы). Лицевые они или нет в данном случае неважно. Это вариант будет работать для случаев, когда грани не пересекаются. Это сообщение отредактировал(а) baldina - 17.12.2007, 23:29 |
|||
|
||||
![]()
|
| Вы можете найти полезным что... | |
|
|
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |