Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Map Render
StaticZ
сообщение 14.1.2015, 21:30
Сообщение #1


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Сегодня накатал простенький рендер карт основанный на UDK. Он действительно крайне простой (чуть более 500 строк кода), при этом не использовались никакие сторонние библиотеки, в том числе и DirectX, OpenGL и готовые движки. Все делается ручками простой отрисовкой 2D графики на ISurface (в качестве оного может выступать к примеру простой Bitmap). Забавно, не смотря на отсутствие оптимизации при больших разрешениях скрол работает куда шустрее и плавнее чем в том же CentrEd использующий для вывода средства OpenGL. (Для теста при скролле каждый раз создается ISurface в которой выполняется полная отрисовка сцены, после чего ISurface как ImageSource присваивается обычному Image контролу в WPF окне):

Код
surf = UOManager.CreateSurface((ushort)2560, (ushort)1600, PixelFormat.Bpp16X1R5G5B5);

if (flt)
    UOManager.FacetRender.DrawFlatMap(map, alt, ref surf, range, tcx, tcy);
else
    UOManager.FacetRender.DrawObliqueMap(map, alt, ref surf, range, tcx, tcy);

imgFacet.Source = surf.GetSurface().Image;


В целом выдаваемая картинка близка к оригиналу. С текстурами правда вышла двоякая ситуация, для простоты и экономии ресурсов я не использовал алгоритмы интерполяции вообще из-за чего поверхности выглядят не такими объемные, в тоже время сглаживание текстур вышло куда лучше чем в аналогах, границ переходов из текстуры в тайл фактически не видно:

(IMG:http://www.kachalka.com/images/kwqq04b8s83775q2tjq.png)


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 19.1.2015, 3:56
Сообщение #2


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Оптимизировал рендер, теперь работает намного быстрее (около 20-30 ms полная перерисовка с радиусом 30 (в оригинальном клиенте 18)). Так же добавил Flat mode рендинга (в масштабе 50%):

(IMG:http://www.kachalka.com/images/9ye9jdlvdqxs3jhwam0z.png)
(IMG:http://www.kachalka.com/images/c8iab30j01gbvq76raie.png)

работает слегка медленнее конечно, но учитывая размеры отрисовываемой области вполне прилично (PS на скринах Debug версия, Release работает раза в 1.5-2 шустрее)...


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 19.1.2015, 16:37
Сообщение #3


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Подправил отрисовку воды:

(IMG:http://www.kachalka.com/images/q4o9ud77rxvzezpcuk.png)

в остальном работает идеально - кроме мелкого косячка - толстые стены слегка вылезают на верхние тайлы из-за чего просвечивают... Следствие проблем округления при ресайзе...


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 20.1.2015, 4:51
Сообщение #4


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Добавил возможность рендинга Flat карты в файл формата png. Работает достаточно быстро у меня заняло лишь несколько минут (от 1 до 3х особо не замерял) чтобы отрисовать всю область карты размером с фелюку. Полученное изображение слишком огромно что бы его заливать, так что лишь его малая часть:


(IMG:http://www.kachalka.com/images/gfrpjmvnvr0l6zyl366s.png)

А вообще это все делалось для того чтобы в конечном счете его преобразовать в такую стилюную рисованную карту для клиента:

(IMG:http://www.kachalka.com/images/agifu18kti1ts7leizd.png)


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Warstone
сообщение 20.1.2015, 12:32
Сообщение #5


*********

Группа: Модераторы
Наличность: 0
Пользователь №: 10.905
Возраст: 25



Предлагаю забанить СтатикЗа на УОКите до тех пор, пока он не выпустит свой шард. Хотя-бы в техническом виде.


--------------------
Do. Or do not. There is no Try!
© Master Joda, Dagobah, Star Wars: Episode V.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
M@X
сообщение 20.1.2015, 15:14
Сообщение #6


*****

Группа: Пользователи
Наличность: 0
Из: Екатеринбург
Пользователь №: 13.480



Цитата(Warstone @ 20.1.2015, 12:32) *

Предлагаю забанить СтатикЗа на УОКите до тех пор, пока он не выпустит свой шард. Хотя-бы в техническом виде.

Интересное предложение. (IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 24.1.2015, 2:26
Сообщение #7


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



В конечном итоге получилось это:

(IMG:http://www.kachalka.com/images/l8agjxdvvlhaovniarjt.png)


(IMG:http://www.kachalka.com/images/eosd5j6sl1t5z5n0dur6.png)

Сообщение отредактировал StaticZ - 24.1.2015, 2:28


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Mirage
сообщение 24.1.2015, 11:49
Сообщение #8


*******

Группа: Пользователи
Наличность: 0
Из: Иваново
Пользователь №: 13.089
Возраст: 35



А где Одинокая Гора? Где Щир?


--------------------
Изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 24.1.2015, 14:42
Сообщение #9


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Цитата(Mirage @ 24.1.2015, 11:49) *

А где Одинокая Гора? Где Щир?
В средиземье. У нас своя вселенная, вообще я конечно уважаю творчество Толкиена и признаю его литературный гений, но имхо вселенная ВК для игр не подходит вообще - слишком сказочная и стереотипная - в ней даже представить эльфа убийцу или хоббита мага сложно.


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Mirage
сообщение 24.1.2015, 17:10
Сообщение #10


*******

Группа: Пользователи
Наличность: 0
Из: Иваново
Пользователь №: 13.089
Возраст: 35



Да вы сударь зануда...
(IMG:http://astropro.ru/img/iudrjapfcxb/kj6vppi166.jpg)

PS Мне понравилось качество - сравнив с потенциально "реальной" картой (IMG:style_emoticons/default/rolleyes.gif)


--------------------
Изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

- Текстовая версия | Версия для КПК Сейчас: 19.4.2024, 15:23
Designed by Nickostyle