Главная страница
    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.47 MB
Время: 0.012 c
3-43367
ceval
2004-02-15 14:41
2004.03.14
Как открыть несколько таблиц в DBGrid


14-43756
Andersen
2004-02-18 15:07
2004.03.14
Помогите советом, (Откос от армии)


7-43913
Ozone
2003-12-18 10:22
2004.03.14
Web-камера


14-43869
Sergey_Masloff
2004-02-18 22:43
2004.03.14
последний номер Мир ПК


3-43287
XAdmin
2004-01-23 13:36
2004.03.14
ADOCommand Error Размер поля недостаточен





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский