![]() |
Модераторы: Rickert |
![]() ![]() ![]() |
|
inkognitum |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.8.2006 Где: г. Набережные Чел ны Репутация: нет Всего: 1 |
Добрый день.
Помогите с примером тесселяция полигонов, пробую пробую... ничего не выходит. пользуюсь библиотекой - Tao, на С#, все примеры в инете на C++. Самый простой пример который отображает всю процедуры рисования сложного полигона. Заранее спасибо. --------------------
"Убить всех людей!" (с) Bender |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 6 Всего: 52 |
inkognitum, у OpenGL есть стандартные функции по тесселяции - см. MSDN glTes*
Лично у меня был частный случай с вырезание в плоскости дырки, которая представлялась выпулкым полигоном - алгоритм писал сам. Так же на algolist'е есть алгоритмы вычитания. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
inkognitum |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.8.2006 Где: г. Набережные Чел ны Репутация: нет Всего: 1 |
Да, я знаю в библиотеке Glu, только я не могу понять как ее использовать. Накомпал кучу коду с примерами на С++, на С# перевести не получается. --------------------
"Убить всех людей!" (с) Bender |
|||
|
||||
Rpahut |
|
|||
![]() 0xdeadbeef ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 9.4.2006 Репутация: 5 Всего: 7 |
ЗЫ с шарпом не знаком, звиняй уж --------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею? |
|||
|
||||
inkognitum |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.8.2006 Где: г. Набережные Чел ны Репутация: нет Всего: 1 |
ЗЫ с шарпом не знаком, звиняй уж Спасибо. Я так и делал все, в честности у меня ругается на след. строку кода.
И вопрос как забивать координаты - coordsd3?? у меня показывает тип - double[] и как в одномерный массив забить координаты точки? подрят чтоль Х и Y, если честно недопонимаю этот момент. Добавлено @ 08:06 Вопрос с ошибкой снялся. Вопрос с double[] остался ![]()
Это сообщение отредактировал(а) arilou - 12.9.2008, 11:02 --------------------
"Убить всех людей!" (с) Bender |
||||||||
|
|||||||||
Rpahut |
|
|||
![]() 0xdeadbeef ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 9.4.2006 Репутация: 5 Всего: 7 |
coordsd3 я от балды вбивал - лень было рисовать цикл и инициализацию массива. Конечно там массив из трех double передается - x, y, z подряд. Нужно передать координаты всех вершин, соотв. вызываем gluTessVertex по разу для каждой из них.
--------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею? |
|||
|
||||
inkognitum |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.8.2006 Где: г. Набережные Чел ны Репутация: нет Всего: 1 |
Добрый день. Чет у меня ничего не рисует. делаю вот так.
ошибок нет, но и не рисует ничего. ((( --------------------
"Убить всех людей!" (с) Bender |
||||
|
|||||
Rpahut |
|
||||
![]() 0xdeadbeef ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 9.4.2006 Репутация: 5 Всего: 7 |
А почему
? ГЛУ читает три координаты все равно, так что даже если Z=0, он должен указываться. Это раз. Два - если не рисует - значит ошибки есть) Три. Добавь следующие ф-ции:
, зарегистрируй их вместо старых каллбэков. Поставь в каждую брейкпоинт и посмотри, выполняются ли они.Если вызываются - знач полигон рисуется, но не там или не так, как ты ожидаешь. Если нет, ну, тогда я где-то накосячил ![]() ЗЫ На счет нужно ли писать CALLBACK не уверен - может скомпилируется и без них, может не скомпилируется с ними. --------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею? |
||||
|
|||||
inkognitum |
|
||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.8.2006 Где: г. Набережные Чел ны Репутация: нет Всего: 1 |
Чет странно. Поставил точку останова на функцию:
он туда заходит рочно столько раз сколько моих точек в полигоне, но почему то переменная V пустая ) Еще интересней ) меняю функцию на:
то в функции MyVirtex в переменное V только 1 объект который равен Х, я проверяю мою переменную dbPoint там все 3 координат. Это сообщение отредактировал(а) inkognitum - 12.9.2008, 11:45 --------------------
"Убить всех людей!" (с) Bender |
||||||||||
|
|||||||||||
Rpahut |
|
||||||||
![]() 0xdeadbeef ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 9.4.2006 Репутация: 5 Всего: 7 |
Так правильнее. Мой косяк. ![]()
Скорее всего дебаггер просто показывает тебе только первый элемент - он не знает что их там три. Раз вызываются каллбэки, значит openGL получает координаты вершин. Я бы вставил перед тесселяцией код, выводящий на экран треугольник или линию( ![]()
Вот таким макаром у меня работает однозначно. --------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею? |
||||||||
|
|||||||||
inkognitum |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.8.2006 Где: г. Набережные Чел ны Репутация: нет Всего: 1 |
Мне уже смешно )))
ничего не выходит. Сроки поджимают ((( Я кое что переписал и доработал, стал он полигоны выводить но опять же не сложные а простые. сделал так:
потом немного дописал функцию:
рисует но простые. кстати нашел вот что: https://dappleproject.geosoft.com/browser/d...ture.cs?rev=333 там кое что поддчеркнул но всерано не работает. что то странно (( голова уже болит. --------------------
"Убить всех людей!" (с) Bender |
||||
|
|||||
Rpahut |
|
|||
![]() 0xdeadbeef ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 9.4.2006 Репутация: 5 Всего: 7 |
Поподробнее? И какой формы полигоны у тебя? Неплохо бы для GLU_TESS_ERROR тоже сделать каллбэк и посмотреть на что глу жалуется. Еще меня смущает double[] dbPoint = new double[3]; Вроде работать должно, но выглядит странно. Попробуй как в моем предыдущем посте нарисовано - создать один большой массив, в него затолкать все координаты, и уже из него передавать в gluTessVertex. И - наверное С++ и С# тут не сильно отличаются - если есть new, то должен быть и delete. И вобще - может там не в тесселяции проблема? --------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею? |
|||
|
||||
inkognitum |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.8.2006 Где: г. Набережные Чел ны Репутация: нет Всего: 1 |
))) все впорядке... видать у меня в голове не все дома. ну ниче ща вот пока в пейнтбольном маче мочился было время в мертвяке подумать.... я просто забыл затирать старую форму полигона перед тем как нарисовать новый ))))) ну вообщем так то все впорядке, работает.. только оказывается он не может обрисовать полигоны у которых линии пересекаются. ) Или я ошибаюсь? Спасибо, за активную помощь, сам бы я не разобрался во всем ))) мог бы дать репутации дал бы.. но не могу (( Это сообщение отредактировал(а) inkognitum - 13.9.2008, 19:29 --------------------
"Убить всех людей!" (с) Bender |
||||
|
|||||
Rpahut |
|
|||
![]() 0xdeadbeef ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 9.4.2006 Репутация: 5 Всего: 7 |
Может. Копай в сторону GLU_TESS_COMBINE --------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею? |
|||
|
||||
inkognitum |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.8.2006 Где: г. Набережные Чел ны Репутация: нет Всего: 1 |
Добрый день. Делаю так:
сама функция:
выдиляет строчку кода где идет подписка на делегат и пишет след. ошибку: Array size control parameter must be an integral type. Хотя вроде все по примеру сделал, и входные параметры одинаковые, я проверял. ![]() --------------------
"Убить всех людей!" (с) Bender |
||||||
|
|||||||
Rpahut |
|
|||
![]() 0xdeadbeef ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 9.4.2006 Репутация: 5 Всего: 7 |
Эт вопрос по тао и c#, а я в них ни в зуб ногой.
А вобще - нашел в сети:
так что второй параметр возможно неправильный. --------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею? |
|||
|
||||
inkognitum |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.8.2006 Где: г. Набережные Чел ны Репутация: нет Всего: 1 |
Угу и такое есть. Там перезагруженая функция. Бум разбиратся. --------------------
"Убить всех людей!" (с) Bender |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |