PMG

Форумы по созданию игр
Текущее время: 16 апр 2024 17:03

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 64 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: glCopyTexImage2D: востановление поврежденных участков экрана
СообщениеДобавлено: 09 июн 2009 22:12 
Не в сети
Любитель

Зарегистрирован: 02 июн 2009 15:53
Сообщения: 27
Из сайта:

Цитата:
Mono.XNA is a cross platform implementation of the XNA gaming framework. It runs on Windows, MacOS and Linux using OpenGL for 3D support.

Что то меня смущает это все. Я так подозреваю что это всего лишь OGL обертка (а может еще и GDI+ используется) со всеми вытекающими.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: glCopyTexImage2D: востановление поврежденных участков экрана
СообщениеДобавлено: 09 июн 2009 23:17 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 28 янв 2008 19:24
Сообщения: 230
Откуда: Санкт Петербург
Цитата:
Что то меня смущает это все. Я так подозреваю что это всего лишь OGL обертка

А что вы хотели? В Виндовсе XNA Framework это обертка Direct3D, а в Линуксе OpenGL. К тому же Net Framework это всего навсего обертка для натив кода. А вы ожидали чего-то большего?

_________________
С уважением, Андрей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: glCopyTexImage2D: востановление поврежденных участков экрана
СообщениеДобавлено: 10 июн 2009 09:01 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Inferno7000 писал(а):
Цитата:
Но C# не подходит для реализации быстрых и ресурсоемких алгоритмов.

Каких? Какие алгоритмы работают быстрее на C++, чем на C#. И где их применяют в играх?


BSP, столкновения. Даже если тебе надо реализовать какую-нибуль не стандартную сортировку и то уже C# медленный, даже нестандартную функцию работы со строками. Честно говоря я всегда считал, что C# для бизнес приложений, как Java.

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: glCopyTexImage2D: востановление поврежденных участков экрана
СообщениеДобавлено: 10 июн 2009 09:05 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Vitone писал(а):
Да, мне важна кроссплатформенность, именно потому я использую связку C#+OpenGL. Поимо этого, С# позволяет "на лету" создавать сборки что для меня очень важно.


Тогда не понимаю зачем C#. Может он и тормозит.

Не знаю в каком состоянии проект Mono, но мне кажется, в связи с большим количеством функций в Net, обеспечить полную совместимость будет ох как сложно.

Vitone писал(а):
По поводу текста еще есть такая идея что при первом его выводе, сохранять весь блок текста в текстуру (этим же способом что я пытаюсь), и изменять ее только при изменении масштаба или самого блока. Таким образом совместить шрифты FreeType и текстурные.
Что скажете по поводу этой идее?
Спасибо всем за помощь, буду учитывать все советы.


Да, можно. Только надо использовать p-buffer для вывода шрифта. http://steps3d.narod.ru/tutorials/rende ... orial.html

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: glCopyTexImage2D: востановление поврежденных участков экрана
СообщениеДобавлено: 10 июн 2009 09:07 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Inferno7000 писал(а):
Цитата:
Что то меня смущает это все. Я так подозреваю что это всего лишь OGL обертка

А что вы хотели? В Виндовсе XNA Framework это обертка Direct3D, а в Линуксе OpenGL. К тому же Net Framework это всего навсего обертка для натив кода. А вы ожидали чего-то большего?


Да, это все обертки. Но XNA сделали чтобы делать игры на XBox!!! Т.е. на данный момент без него в этом плане не как.

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: glCopyTexImage2D: востановление поврежденных участков экрана
СообщениеДобавлено: 10 июн 2009 10:52 
Не в сети
Любитель

Зарегистрирован: 02 июн 2009 15:53
Сообщения: 27
MagicWolf писал(а):
Только надо использовать p-buffer для вывода шрифта. http://steps3d.narod.ru/tutorials/rende ... orial.html

Я узнавал, используемые мной обертки не имеют такой возможности, по крайней мере, напрямую, кроме того, p-buffer имеет привязку к платформе.

MagicWolf писал(а):
Тогда не понимаю зачем C#. Может он и тормозит.


Да, тормозит он, кто ж еще :)
Почему шарп? На это есть много причин.
1. Мне нужно обеспечить возможность работы в линухе и Windows.
2. Есть необходимость компилить сборки на лету.
3. Графика - это не самое основное, хочу немного ускорить то, что в GDI+ тормозит даже с двойной буфферизацией, не очень приятно глазу. Да и приходится все по максимуму упрощать.
4. Известны подобные продукты, написанные на шарпе, как правило графика у них не супер быстрая, есть стимул доказать что у них руки кривые (пока что все наоборот :D )
5. Это тот язык, который я лучше всего знаю.
6. Разрабатывать приложения на шарпе намного быстрее (возможно в следствии пункта 5).

Вопщем, скорее я откажусь от ОЖЛ, чем от шарпа и единственная проблема с ОЖЛ - это необходимость выкручиваться в условиях медленного вывода текста :)

Спасибо большое за помощь, у меня уже накопилось несколько вариантов благодаря форуму, на следующей неделе, если будет время, попробую хотя бы один из вариантов реализовать, потом отпишусь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: glCopyTexImage2D: востановление поврежденных участков экрана
СообщениеДобавлено: 10 июн 2009 13:22 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
пункт 5 рулит, все основное исходя из него.
Если можно подробнее про пункт 3, в чем тормозит GDI+??? Очень интересно конкретные замечания, недостатки GDI.
пункт 1 - почему не gtk&kairo? Лучше всего было бы xara (http://xaraxtreme.org/), но под win ни чего такого нет.

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: glCopyTexImage2D: востановление поврежденных участков экрана
СообщениеДобавлено: 10 июн 2009 20:49 
Не в сети
Любитель

Зарегистрирован: 02 июн 2009 15:53
Сообщения: 27
MagicWolf писал(а):
пункт 1 - почему не gtk&kairo? Лучше всего было бы xara (http://xaraxtreme.org/), но под win ни чего такого нет.

Я об этом ничего не слышал, но ориентируюсь я скорее на винду, линух - скорее желательно, чем обязательно.

По поводу тормозов GDI+. Во первых он более медленный чем GDI. Без двойной буфферизации вообще смотреть противно. А больше всего мне не понравилось что при перемещении блока (блоков) заметны "прыжки". И это без всяких украшений и "рюшечек". Хотелось бы оформить все красиво, пускай не на професиональном уровне, поскольку я не специалист в этой области, но будет явно лучше чем в ЖДИ+. И как я уже говорил, помимо этого редактора будет еще более сложный, у меня большие сомнения что GDI+ хорошо справится с задачей. Кроме того очень желательно использовать слои (опять же по поводу другого редактора).

В общем, решу проблему с текстурами и текстами, и ОЖЛ меня будет полностью устраивать :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: glCopyTexImage2D: востановление поврежденных участков экрана
СообщениеДобавлено: 11 июн 2009 12:40 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Vitone писал(а):
MagicWolf писал(а):
пункт 1 - почему не gtk&kairo? Лучше всего было бы xara (http://xaraxtreme.org/), но под win ни чего такого нет.

Я об этом ничего не слышал, но ориентируюсь я скорее на винду, линух - скорее желательно, чем обязательно.


На gtk (http://ru.wikipedia.org/wiki/GTK%2B) написан GIMP. Вещь хорошая, но доков мало. В составе gtk идет граф. либа Cairo. У нее много всяких платформ в том числе и OpenGL.

Xara - это быстрый граф. редактор. Еще десять лет назад он работал на том железе очень быстро и со сглаживанием, а счас и подавно. Я считаю, что это самый быстрый 2D рендеринг.

Vitone писал(а):
По поводу тормозов GDI+. Во первых он более медленный чем GDI. Без двойной буфферизации вообще смотреть противно. А больше всего мне не понравилось что при перемещении блока (блоков) заметны "прыжки".


Странно, очень странно. Это только твои наблюдения или с тобой соглашаются и другие?

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: glCopyTexImage2D: востановление поврежденных участков экрана
СообщениеДобавлено: 11 июн 2009 13:13 
Не в сети
Любитель

Зарегистрирован: 02 июн 2009 15:53
Сообщения: 27
MagicWolf писал(а):
Странно, очень странно. Это только твои наблюдения или с тобой соглашаются и другие?

Нет, естессно это не только мое мнение, иначе я б уже решил проблему. Все об этом знают. Кроме того существуют известные коммерческие приложения, написанных на платформе .Net и графика у них тормозит.
Мое мнение - лучше уж пошаманить над OGL и не выслушывать маты по поводу графики. Хочу сделать красивую и прозводительною. Мне очень нравится как быстро все работает с использованием OGL без текста, а вот с ним - хуже чем ЖДИ+... Но скорее всего дело в опыте, вернее отсутствия его в этой области.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: glCopyTexImage2D: востановление поврежденных участков экрана
СообщениеДобавлено: 11 июн 2009 13:23 
Не в сети
Любитель

Зарегистрирован: 02 июн 2009 15:53
Сообщения: 27
Во общем, у меня накопилось пару вариантов решения задачи, не могу определится, может подскажете как лучше поступить.
Необходимо перемещать объекты без перерисовки всего экрана.
Варианты решения.
1 Сохранить в текстуру весь экран, поверх нее рисовать объекты, которые перемещаются.
2 Сохранять в текстуру(ы) только тот участок(и), который необходимо обновить, при перемещении объекта будут генерироваться новые текстуры.
3 Сохранить в текстуру только текст, и рисовать ее поверх блока.
4 Скомбинировать различные варианты

В качестве перемещающегося объекта хотелось бы использовать полупрозрачный прямоугольник.
Кроме того, нужно будет рисовать выделяющую рамку, но в виде резинового контура не очень красиво, хотелось бы опять же полупрозрачным прямоугольником, потому вариант 2 здесь не очень подходит как по мне.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: glCopyTexImage2D: востановление поврежденных участков экрана
СообщениеДобавлено: 12 июн 2009 10:52 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Vitone писал(а):
Нет, естессно это не только мое мнение, иначе я б уже решил проблему. Все об этом знают. Кроме того существуют известные коммерческие приложения, написанных на платформе .Net и графика у них тормозит.


Ну а на C++ без .Net может не тормозит?

Vitone писал(а):
Мое мнение - лучше уж пошаманить над OGL и не выслушывать маты по поводу графики. Хочу сделать красивую и прозводительною. Мне очень нравится как быстро все работает с использованием OGL без текста, а вот с ним - хуже чем ЖДИ+... Но скорее всего дело в опыте, вернее отсутствия его в этой области.


OGL предназначен для вывода полигональной графики с текстурами. При этом узким местом является не рендеринг этих полигонов самой видеокарты, а их передача в видеокарту. Например: загоняешь модель в видеокарту и рендеришь ее в разных местах - быстро; каждый раз загоняешь модель и рендеришь ее - медленно. Естественно чем меньше полигонов, тем быстрее. Кроме этого, модель рендеринга в OGL предполагает наличие большого числа разных моделей, причем между ними взаимосвязи нет, это просто "суп полигонов" (такое вот есть выражение). В этом случае упор делается на разные изощренные способы передачи полигонов в видеокарты, при этом что либо получить из видеопамяти - это проблема, это медленно. Поэтому не надо думать о восстановлении изображения и т.д. - это медленно. Просто надо передавать полтгоны видеокарте как можно быстрее...

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: glCopyTexImage2D: востановление поврежденных участков экрана
СообщениеДобавлено: 12 июн 2009 11:01 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Vitone писал(а):
Во общем, у меня накопилось пару вариантов решения задачи, не могу определится, может подскажете как лучше поступить.
Необходимо перемещать объекты без перерисовки всего экрана.
Варианты решения.
1 Сохранить в текстуру весь экран, поверх нее рисовать объекты, которые перемещаются.
2 Сохранять в текстуру(ы) только тот участок(и), который необходимо обновить, при перемещении объекта будут генерироваться новые текстуры.
3 Сохранить в текстуру только текст, и рисовать ее поверх блока.
4 Скомбинировать различные варианты

В качестве перемещающегося объекта хотелось бы использовать полупрозрачный прямоугольник.
Кроме того, нужно будет рисовать выделяющую рамку, но в виде резинового контура не очень красиво, хотелось бы опять же полупрозрачным прямоугольником, потому вариант 2 здесь не очень подходит как по мне.


Я всегда решал эту проблему так: вывод во внеэкранный буфер, смена в нем изображения, вывод изменивших частей изображения.

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: glCopyTexImage2D: востановление поврежденных участков экрана
СообщениеДобавлено: 12 июн 2009 11:22 
Не в сети
Любитель

Зарегистрирован: 02 июн 2009 15:53
Сообщения: 27
MagicWolf писал(а):
Я всегда решал эту проблему так: вывод во внеэкранный буфер, смена в нем изображения, вывод изменивших частей изображения.

Хотел бы уточнить, внеэкранный буфер - имеется в виду p-buffer, FBO?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: glCopyTexImage2D: востановление поврежденных участков экрана
СообщениеДобавлено: 12 июн 2009 16:53 
Не в сети
Любитель

Зарегистрирован: 02 июн 2009 15:53
Сообщения: 27
Немного погулил и выяснил что копать мне в сторону FBO. Только вот я не пойму, насколько хорошо это поддерживаются видяхами (в том числе ноутбучными)? Или с современными проблем не будет?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 64 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB