Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отсечение нелицевых граней, OpenGL 
:(
    Опции темы
Gaudi
Дата 17.12.2007, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 18.3.2007

Репутация: нет
Всего: нет



Нужна реализация любого алгоритма отсечения нелицевых граней.
Любая 3d фигура (напр. куб) без использования glEnable (GL_DEPTH_TEST)
PM MAIL   Вверх
baldina
Дата 17.12.2007, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: нет
Всего: 101



Gaudi, уточни задачу. 

Если просто не надо рисовать нелицевые, GL_DEPTH_TEST непричем, а используется GL_CULL_FACE и glCullFace().
Если они должны рисоваться, но при этом перекрываться в соответствии с глубиной, без GL_DEPTH_TEST придется самому реализовывать Z-буффер или пользоваться сортировкой граней и выводить их от дальней к ближней (это я сильно упрощаю, там есть тонкости). Тебе это надо?
Наконец может тебе подойдет это: делаешь два прохода, на первом выводишь нелицевые, на втором - лицевые (используя glCullFace).
PM MAIL   Вверх
Gaudi
Дата 17.12.2007, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 18.3.2007

Репутация: нет
Всего: нет



Должны рисовать ВСЕ грани и перекрываться в соответствии с глубиной,  объект вращается. Так мне была поставлена задача. Догадываюсь, задача непростая, но может кто-то сталкивался с подобным?
PM MAIL   Вверх
baldina
Дата 17.12.2007, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: нет
Всего: 101



Если я правильно понимаю, задача была поставлена не использовать Z буффер opengl, а реализовать нечто самому? Так и не понимаю причем тут нелицевые грани.

Если так, то тебе как минимум потребуется держать в памяти список граней. Применяешь текущую матрицу поворота к координатам граней, далее сортируешь грани от дальней к ближней. Теперь можно выводить на экран (дополнительный поворот в opengl задавать не надо, т.к. координаты уже преобразованы). Лицевые они или нет в данном случае неважно.

Это вариант будет работать для случаев, когда грани не пересекаются. 

Это сообщение отредактировал(а) baldina - 17.12.2007, 23:29
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0403 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.