Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];

Вниз

Быстрый вывод в OpenGL.   Найти похожие ветки 

 
Unknown user   (2003-07-24 19:27) [0]

Для того, чтобы почувствовать аппаратное ускорение в OpenGL надо рисовать все объекты связанными треугольниками, или это не обязательно?


 
Vitas2   (2003-07-25 10:39) [1]

нет необезательно новые видео карты много чего аппарвтно могут


 
wiz   (2003-07-25 11:39) [2]

Вообще говоря в самом OpenGL нет ничего, кроме треугольников. Любые другие примитивы (Triangle_Fan, Quad, Polygon etc.) это просто макросы, т.е. при их выполнении все равно используются треугольники.

Так что можно "рисовать" чем угодно, другое дело что при использовании того же T_Fan"а можно сэкономить немного кода :)


 
Asteroid   (2003-07-25 15:00) [3]

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


 
wiz   (2003-07-25 16:19) [4]


> Правда, насколько это будет заметно - ни знаю

По-моему, раскраска этого самого треугольника (и натягивание текстуры) займет значительно больше времени, чем передача лишних 4 float"ов. Зато никакой путаницы.


> Еще можно использовать индексированные вершины, текс. координаты
> и нормали

wow, а можно поподробнее?


 
Unknown user   (2003-07-25 17:41) [5]

Спасибо всем за инфу -приму к сведению.
И еще по поводу ускорения вывода графики. Я пытаюсь отрисовывать карту города в 3Д, а это огромное количество объектов, около 85 000, и каждый состоит из нескольких полигонов. В общем, тормозит ужасно. Я понимаю, что выводить все объекты сразу нет смысла, так как человек, идущий по улице видит всего несколько десятков объектов (камера, по замыслу, смотрит глазами идущего человека). Но возникает проблема, как выяснить координаты видимой в данный момент области карты, причем сделать это нужно до ее отрисовки, а не после. Я использую, как и советовал wiz, glRotate(Angle,1,0,0) -камера вверх-вниз, и glRotate(Angle,0,0,1) -камера влево-вправо, перемещение должно происходить за счет пересчета координат видимых объектов. Я уже запутался во всех этих проекциях, может, кто-то занимался подобным?


 
Asteroid   (2003-07-25 18:32) [6]

К сожалению, не помню, откуда скачал, так что: http://www.jedas.narod.ru/Docs/OpenGLHelp.rar (700K, Rar 3.0, на английском, CHM).

Функции: glEnableClientState, glDisableClientState и все ссылки от них.


 
Landgraph   (2003-07-26 11:47) [7]

Ну, не мудрствуя лукаво, можно просто (если есть вся карта, а она я так понимаю есть) брать определенный кусок (квадратик 10х10 единиц, например), центром которого является наблюдатель и рисовать только то, что входит в этот квадратик.


 
Toxaz   (2003-08-28 02:20) [8]

Ну ко всему етому можно добавить glGenLists для всего городa, если конечно видео памяти много


 
Asteroid   (2003-08-28 05:35) [9]

> Toxaz [8]
glGenLists уменьшает время на расчет/загрузку города, но не вывод.


 
mrAld   (2003-08-28 12:28) [10]

Я понимаю, что выводить все объекты сразу нет смысла, так как человек, идущий по улице видит всего несколько десятков объектов (камера, по замыслу, смотрит глазами идущего человека).

Идея правильная. Например, нужно задать себе вопрос: как в играх OpenGL видеть источники света >8 шт? Вычисли угол поворота, разбей карту на связанные структуры, в виде графов, в общем, пофантазируй...



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.015 c
1-43530
IGORYOK
2004-02-28 12:02
2004.03.14
Kill скроллер у ИмеджВивера


1-43561
Tyo
2004-02-27 15:04
2004.03.14
---|Ветка была без названия|---


14-43897
Кот Бегемот
2004-02-17 09:27
2004.03.14
Смотрел KILL BILL


1-43676
Lisa
2004-01-23 13:20
2004.03.14
Как программно запустить Excel?


14-43750
Отшельник
2004-02-24 16:26
2004.03.14
Очень сильно нужна помощь.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский