IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> OpenGL Линии
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 132
Пол: Женский
Реальное имя: Юлия

Репутация: -  0  +


Здравствуйте!
Возникла небольшая проблемка с выводом линий с Делфи с помощью OpenGL.
Нужно вывести линии пучком из центра, к примеру 6 штук.
Сделала вот таки образом:
glBegin(GL_LINE_STRIP);
for i:=0 to 2 do
begin
glVertex2f(0.5,0.5);
glVertex(i/2,i*sin(pi));
end;
for i:=0 to 2 do
begin
glVertex2f(0.5,0.5);
glVertex(i/2,i*cos(pi/2)+1);
end;
glEnd;


Тип соединения должен быть обязательно GL_LINE_STRIP. Выводит одну из линий более жирную, чем все остальные. Что сделано не верно?
Прикрепляю изображение (это результат работы программы). Верхняя линия справа жирнее других.


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Sensitive @ 21.10.2009 22:26) *
Верхняя линия справа жирнее других.
А почему я не вижу никакого утолщения? blink.gif я вроде проверял в граф.редакторе, скопировав куски и соединив.. Мне кажется, все ровно.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 132
Пол: Женский
Реальное имя: Юлия

Репутация: -  0  +


У меня на мониторе вроде бы тоже всё ровно, а в университете действительно та линия толще. Я так понимаю, наверное, из-за типа соединения линий, хотя ...не знаю.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Ты бы код полностью привела, проверили бы, толще линия или нет. А то гадать на кофейной гуще - как то не хочется...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 132
Пол: Женский
Реальное имя: Юлия

Репутация: -  0  +


Прикреплю полностью проект. Посмотрите, пожалуйста.


Прикрепленные файлы
Прикрепленный файл  LabOpenGL.zip ( 5.79 килобайт ) Кол-во скачиваний: 210
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Попробуй добавить glEnable(GL_LINE_SMOOTH), посмотри, изменит ли это картинку там, где сейчас тебе кажется, что линии разной толщины.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


У меня тоже есть вопрос по толщине линий.
Насколько я понял, можно рисовать линию только фиксированной толщины? То есть сначала говоришь - толщина 2, и он и рисует ровно 2 пиксела по сей длине.
А мне хотелось бы, чтобы толщина данного конкретного куска линии зависела от её удалённости от наблюдателя. Это бы очень помогло при отрисовке некоторых элементов, а то так либо вдалеке что-то страшное, либо вблизи паутина.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(TarasBer @ 27.10.2009 22:06) *

У меня тоже есть вопрос по толщине линий.
Насколько я понял, можно рисовать линию только фиксированной толщины? То есть сначала говоришь - толщина 2, и он и рисует ровно 2 пиксела по сей длине.
А мне хотелось бы, чтобы толщина данного конкретного куска линии зависела от её удалённости от наблюдателя. Это бы очень помогло при отрисовке некоторых элементов, а то так либо вдалеке что-то страшное, либо вблизи паутина.

Элементарно - каждую линию рисуешь в виде узкого прямоугольника, лежащего в плоскости параллельной экрану.

Сообщение отредактировано: andriano -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Цитата(andriano @ 27.10.2009 23:11) *

Элементарно - каждую линию рисуешь в виде узкого прямоугольника, лежащего в плоскости параллельной экрану.


Ничего не элементарно.
Во-первых, эту плоскость ещё вычислять надо, и не параллельной экрану, а лежащей под наименьшим углом к экрану, скажем так.
Во-вторых, на расстоянии 10 метров этот прямоугольник приобретёт нулевую толщину.
В-третьих, рисовать и прямоугольник, и линию нелогично и затратно. Рисование линии переменной толшины реализуется для дровописателя (но не для пользователя этих дров, в которые такая возможность не встроена) довольно просто, так в чём проблема?

Сообщение отредактировано: TarasBer -


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(TarasBer @ 28.10.2009 0:05) *

Ничего не элементарно.
Во-первых, эту плоскость ещё вычислять надо, и не параллельной экрану, а лежащей под наименьшим углом к экрану, скажем так.
Во-вторых, на расстоянии 10 метров этот прямоугольник приобретёт нулевую толщину.
В-третьих, рисовать и прямоугольник, и линию нелогично и затратно. Рисование линии переменной толшины реализуется для дровописателя (но не для пользователя этих дров, в которые такая возможность не встроена) довольно просто, так в чём проблема?
Ты хочешь конкретный совет, как можно решить проблему, или просто поговорить о несовершенстве Вселенной?
Да, насчет плоскости параллельной экрану я поспешил, не подумав.
Вычисляется элементарно, если интересуют подробности, можно почитать здесь: http://www.gamedev.ru/code/terms/Billboard
Нулевую толщину он приобрести никак не может. Гоаметрическая оптика, однако. И законы перспективы.
По поводу "затратно" - это ты скажи производителям видеокарт. Зачастую бывает наоборот, что нарисовать полигон намного дешевле, чем линию.
А проблем, собственно, нет. Тебе указали рабочий вариант решения проблемы. Если ты считаешь, что он чем-то неудобен - напиши для него свою обертку, которой лично тебе будет удобно пользоваться.
Готовых решений на все случаи жизни не бывает - что-то приходится делать самому.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Цитата(andriano @ 28.10.2009 9:06) *

Ты хочешь конкретный совет, как можно решить проблему, или просто поговорить о несовершенстве Вселенной?

Конкретный ответ. Который бы подошёл для ати рейдж, у которой опенгл тупо эмулируется, то есть писать 3д вручную не намного дороже.
Цитата

Вычисляется элементарно, если интересуют подробности, можно почитать здесь: http://www.gamedev.ru/code/terms/Billboard

Спасибо.
Цитата

Нулевую толщину он приобрести никак не может. Гоаметрическая оптика, однако.

Даааа? А то, что когда его толщина становится меньше пиксела, он перестаёт рисоваться?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 15:21
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name