![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
Sensitive |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 132 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Здравствуйте!
Возникла небольшая проблемка с выводом линий с Делфи с помощью OpenGL. Нужно вывести линии пучком из центра, к примеру 6 штук. Сделала вот таки образом: glBegin(GL_LINE_STRIP); Тип соединения должен быть обязательно GL_LINE_STRIP. Выводит одну из линий более жирную, чем все остальные. Что сделано не верно? Прикрепляю изображение (это результат работы программы). Верхняя линия справа жирнее других. Эскизы прикрепленных изображений ![]() |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Верхняя линия справа жирнее других. А почему я не вижу никакого утолщения? ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Sensitive |
![]()
Сообщение
#3
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 132 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
У меня на мониторе вроде бы тоже всё ровно, а в университете действительно та линия толще. Я так понимаю, наверное, из-за типа соединения линий, хотя ...не знаю.
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Ты бы код полностью привела, проверили бы, толще линия или нет. А то гадать на кофейной гуще - как то не хочется...
|
Sensitive |
![]()
Сообщение
#5
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 132 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Прикреплю полностью проект. Посмотрите, пожалуйста.
Прикрепленные файлы ![]() |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Попробуй добавить glEnable(GL_LINE_SMOOTH), посмотри, изменит ли это картинку там, где сейчас тебе кажется, что линии разной толщины.
|
TarasBer |
![]()
Сообщение
#7
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
У меня тоже есть вопрос по толщине линий.
Насколько я понял, можно рисовать линию только фиксированной толщины? То есть сначала говоришь - толщина 2, и он и рисует ровно 2 пиксела по сей длине. А мне хотелось бы, чтобы толщина данного конкретного куска линии зависела от её удалённости от наблюдателя. Это бы очень помогло при отрисовке некоторых элементов, а то так либо вдалеке что-то страшное, либо вблизи паутина. -------------------- |
andriano |
![]()
Сообщение
#8
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
У меня тоже есть вопрос по толщине линий. Насколько я понял, можно рисовать линию только фиксированной толщины? То есть сначала говоришь - толщина 2, и он и рисует ровно 2 пиксела по сей длине. А мне хотелось бы, чтобы толщина данного конкретного куска линии зависела от её удалённости от наблюдателя. Это бы очень помогло при отрисовке некоторых элементов, а то так либо вдалеке что-то страшное, либо вблизи паутина. Элементарно - каждую линию рисуешь в виде узкого прямоугольника, лежащего в плоскости параллельной экрану. Сообщение отредактировано: andriano - 27.10.2009 23:11 |
TarasBer |
![]()
Сообщение
#9
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Элементарно - каждую линию рисуешь в виде узкого прямоугольника, лежащего в плоскости параллельной экрану. Ничего не элементарно. Во-первых, эту плоскость ещё вычислять надо, и не параллельной экрану, а лежащей под наименьшим углом к экрану, скажем так. Во-вторых, на расстоянии 10 метров этот прямоугольник приобретёт нулевую толщину. В-третьих, рисовать и прямоугольник, и линию нелогично и затратно. Рисование линии переменной толшины реализуется для дровописателя (но не для пользователя этих дров, в которые такая возможность не встроена) довольно просто, так в чём проблема? Сообщение отредактировано: TarasBer - 28.10.2009 0:06 -------------------- |
andriano |
![]()
Сообщение
#10
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
Ничего не элементарно. Во-первых, эту плоскость ещё вычислять надо, и не параллельной экрану, а лежащей под наименьшим углом к экрану, скажем так. Во-вторых, на расстоянии 10 метров этот прямоугольник приобретёт нулевую толщину. В-третьих, рисовать и прямоугольник, и линию нелогично и затратно. Рисование линии переменной толшины реализуется для дровописателя (но не для пользователя этих дров, в которые такая возможность не встроена) довольно просто, так в чём проблема? Да, насчет плоскости параллельной экрану я поспешил, не подумав. Вычисляется элементарно, если интересуют подробности, можно почитать здесь: http://www.gamedev.ru/code/terms/Billboard Нулевую толщину он приобрести никак не может. Гоаметрическая оптика, однако. И законы перспективы. По поводу "затратно" - это ты скажи производителям видеокарт. Зачастую бывает наоборот, что нарисовать полигон намного дешевле, чем линию. А проблем, собственно, нет. Тебе указали рабочий вариант решения проблемы. Если ты считаешь, что он чем-то неудобен - напиши для него свою обертку, которой лично тебе будет удобно пользоваться. Готовых решений на все случаи жизни не бывает - что-то приходится делать самому. |
TarasBer |
![]()
Сообщение
#11
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ты хочешь конкретный совет, как можно решить проблему, или просто поговорить о несовершенстве Вселенной? Конкретный ответ. Который бы подошёл для ати рейдж, у которой опенгл тупо эмулируется, то есть писать 3д вручную не намного дороже. Цитата Вычисляется элементарно, если интересуют подробности, можно почитать здесь: http://www.gamedev.ru/code/terms/Billboard Спасибо. Цитата Нулевую толщину он приобрести никак не может. Гоаметрическая оптика, однако. Даааа? А то, что когда его толщина становится меньше пиксела, он перестаёт рисоваться? -------------------- |
![]() ![]() |
![]() |
Текстовая версия | 9.07.2025 11:13 |