|
|
|
Канал Игры Мечты: «L.I.M.A. strace_» |
|
|
Shirson
1605 EGP
           Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002
 |
|
БулерМэн : |
Как в этом вашем КСП - не знаю, не играл
|
А тема не про играния, а про реализацию
Цитата: |
но предположу, что объекты которые находятся на расстоянии, где они превращаются в один пиксель - можно и не показывать, это и будет граница куба.
|
Опишу проблему более понятными словами - нужно показывать планеты, которые большие и на границе куба (размер которого ограничен максимальными возможными координатами движка) имеет размер сильно больше одного пикселя.
Цитата: |
Если же объект на границе - в пол экрана - то наверное его можно рисовать условным кругом, как например звезду.
|
А если это планета со своей текстурой?
Цитата: |
Но тут по моему уже нужен второй куб, т.к. огромные объекты имеют радиус, а значит, чтобы внезапно не оказаться в массе звезды "случайно", граница отображения крупных объектов должна считаться от поверхности, а не от центра объекта. Тогда, объект, удалившись на радиус от игрока - превращается в таких же размеров круг.
|
Всё та же проблема с текстурой, освещением и пр. Круг -" решение первой мысли"
Цитата: |
ЗЫ для наглядности, вспомните как рисовались враги в DOOM, они там всегда смотрят на тебя лицом, как не повернись
|
Планеты вращаются вокруг своих осей. Неподходит.
Есть ещё идеи? Осталось один шаг сделать
_________________ У меня бисера не доxеpа. |
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) Репутация: 14 Сообщения: 1426
Зарегистрирован: 27.07.2005
 |
|
а потом после этого шага убедиться, что в UE4 придётся ещё кучу шагов сделать
там "искаропки" только Translucent материал работает
_________________ This is what you get ...
(c) Radiohead |
|
|
БулерМэн
421 EGP
   Рейтинг канала: 2(21) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
Shirson : |
Планеты вращаются вокруг своих осей. Неподходит.
|
А что мешает рисовать проекцию объекта на плоскость?
Sh.Tac. : |
только Translucent материал работает
|
То есть там нет маски по альфа-каналу? Рисуем объект "круг" и без прозрачности текстуру на него натягиваем. Предварительно получив эту текстуру из проекции объекта на плоскость. Реализуемо ли это на UE4 - не знаю.
Shirson : |
Есть ещё идеи? Осталось один шаг сделать
|
Идей больше нет
|
|
|
Shirson
1605 EGP
           Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002
 |
|
БулерМэн : |
Shirson : |
Планеты вращаются вокруг своих осей. Неподходит.
|
А что мешает рисовать проекцию объекта на плоскость?
|
Бритва Оккама?
Цитата: |
Shirson : |
Есть ещё идеи? Осталось один шаг сделать
|
Идей больше нет
|
Посчитать, какого видимого размера должна быть планета с данной дистанции, уменьшить её соответственно нужной дистанции и вывести внутри куба. Всё Практически "бесплатная" (вычислить пропорцию размера от дистанции) реализация.
.____________o_|____O
Наблюдатель "." смотрит на планету "О", которая находится за пределами координатного лимита "|" движка.
Берём планету, пропорционально уменьшаем её, соответственно дистанции, и рисуем "о" в нужном месте внутри куба.
_________________ У меня бисера не доxеpа.
Последний раз редактировалось: Shirson (18:23 28-06-2017), всего редактировалось 1 раз |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(19) Репутация: 93 Сообщения: 2516 Откуда: Кронштадт Зарегистрирован: 09.04.2007
 |
|
Ой вей, во нафлудили-то.
так, попробуемс ответить.
#define WORLD_MAX - да есть там такое, но по факту он меньше. Ибо прыжки с округлением начинаются примерно через 500к юнитов (и собственно чем дальше тем больше округление вплоть до 1)
WorldOridgin, внезапно, двигает матрицу мира и пересчитывает координаты объектов (иначе PhysX некоректно считать начинает). Собсно меняя Origin мы двигаем все объекты в нем, включая и игрока.
Что делать, если надо рисовать объект за кубом?
Очень просто. Там double (но вот двигать вы его там не сможете, ибо там будет приведение к float и округление до 1 ).
"Translucent материал работает" - если правильно расставить Z-Order. Так что нет. Из коробки он не работает
БулерМэн : |
о есть там нет маски по альфа-каналу?
|
Есть. Причем исключающая и/или дополняющая. На ваш выбор.
ADD: Насчет стриминга саблокаций. Есть такая функция в движке, но там есть граничение. Стримминг должен быть одновременно на сервере и на клиенте. Если загрузить локацию на клиенте - будет дисконнект (до 4.15 работало, потом появилась такая малина). Лично я обошел эту штуку через CosmeticActors, которые содержат куски локации и подгружаются когда надо.
добавлено спустя 13 минут:
Shirson : |
Наблюдатель "." смотрит на планету "О", которая находится за пределами координатного лимита "|" движка.
Берём планету, пропорционально уменьшаем её, соответственно дистанции, и рисуем "о" в нужном месте внутри куба
|
Ога, самый правильный и действенный подход, который используется практически везде.
добавлено спустя 1 минуту:
Sh.Tac. : |
кста если ты проксируешь UDP трафик, то хотя бы намекни как оно там происходит
|
кто сказал, что я проксирую?
Терь собсно по миру.
Мир состоит из ячеек (локаций/нод, называйте как хотите). Первая нода это собственно галлактика (L1) и гало (L0). Вторая нода - звездная система (L2). Третья - "орбита" (L3). Т.е. пустота, станция, астеройдное поле. В общем любая детализированная, движущаяся по правилам, заданными в L2 сцена.
L0 и L1 загружены всегда, ибо они определяют геометрию мира, расстановку игровых моментов.
L2 загружается только если локальный игрок находится в определенной L1 зоне. И выгружается если игрок эту зону покидает.
L3 Загружается только если локальный игрок находится в определенной L2 зоне. И выгружается если игрок эту зону покидает.
в один момент времени может существовать только один экземпляр L0-3
При этом инстанция не меняется. Она всегда одна. Но меняются правила выборки для реплки NPC и других игроков.
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
Последний раз редактировалось: ТехноМаг (18:54 28-06-2017), всего редактировалось 8 раз(а) |
|
|
БулерМэн
421 EGP
   Рейтинг канала: 2(21) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
ТехноМаг : |
в один момент времени может существовать только один экземпляр L0-3
|
ТехноМаг : |
В общем любая детализированная, движущаяся по правилам, заданными в L2 сцена.
|
Тогда вопрос, будет ли игрок видеть то, что происходит в неподгруженной локации? Если нет - то объекты, которые будут в соседней локации по логике вещей - должны быть явно небольшого размера, иначе внезапное появление звезды как то придется объяснять удивленной публике
ТехноМаг : |
Третья - "орбита" (L3).
|
Не понял, это матрешка?
добавлено спустя 2 минуты:
Или игроки перемещаются по локациям минуя гигантские расстояния между одной "солнечной системой" и окраиной галактики, где видно только звезды и долететь до них нельзя?
Последний раз редактировалось: БулерМэн (19:19 28-06-2017), всего редактировалось 1 раз |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(19) Репутация: 93 Сообщения: 2516 Откуда: Кронштадт Зарегистрирован: 09.04.2007
 |
|
Ога, матрёшка.
добавлено спустя 31 минуту:
А так. Разумеется не будет. Она же не подгружена . Но эта невидимость объясняется не только размером, но и расстоянием относительно игрока.
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
Последний раз редактировалось: ТехноМаг (20:00 28-06-2017), всего редактировалось 1 раз |
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) Репутация: 14 Сообщения: 1426
Зарегистрирован: 27.07.2005
 |
|
Shirson : |
.____________o_|____O
|
это пока не найдётся реального объекта который внутри куба, но дальше "уменьшенной проекции"
.____________oХ|____O
поэтому нужно выключать depth test чтобы проекция всегда была позади, как я уже говорил Translucent единственный кому можно так сделать
Cкрытый текст (кликните здесь для просмотра)
|
для остального придётся познакомиться со всеми стадиями рендеринга чтобы куда-то воткнуть, т.к. там есть осложнение в виде того, что эпики хранят и обратный z-buffer, умельцы вырубают где надо, своё суют в stencil
_________________ This is what you get ...
(c) Radiohead |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(19) Репутация: 93 Сообщения: 2516 Откуда: Кронштадт Зарегистрирован: 09.04.2007
 |
|
Sh.Tac. : |
это пока не найдётся реального объекта который внутри куба, но дальше "уменьшенной проекции"
|
Эта пропорция применяется ко всему окружению. А при достижение определенного Scale и вовсе меняются либо на билборд, либо вообще убираются из рендера, поэтому такой проблемы нет.
Вон, для примера посмотри, как у Дримза в Elite сделано. Или в пионере - там так же
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
Последний раз редактировалось: ТехноМаг (21:34 28-06-2017), всего редактировалось 2 раз(а) |
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) Репутация: 14 Сообщения: 1426
Зарегистрирован: 27.07.2005
 |
|
ну и получаются игрушечные планетки, нет?
_________________ This is what you get ...
(c) Radiohead |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(19) Репутация: 93 Сообщения: 2516 Откуда: Кронштадт Зарегистрирован: 09.04.2007
 |
|
Ох.
1) Уменьшаешь все примерно раза в два.
2) Определяешь зону вокруг игрока где масштаб будет 1/1 (в Elite это радиус планеты + какой-то там процент).
3) Если объект не находится в радиусе этой зоны считаешь его скейл пропорцией. Если находится, то ничего не считаешь.
PS: тебе больше скажу. Посмотри Dangerous. Там, внезапно, тоже применяется этот принцип (и маскируется как изменение скорости в зависимости от расстояния до "массивного" объекта, а по факту в любой части системы ты летишь с постоянной или почти постоянной скоростью PerUnits).
В Evochron тоже самое (но там немножко криво, поэтому это видно)
добавлено спустя 6 минут:
И да, кстати, DepthTest для Translucent не панацея. Посмотри как оно работает вперемешку с Surface материалами - тебя ждет неприятный сюрприз. И переписывать это то еще удовольствие. Мне щас хватает гемора с тем, чтобы написать каскадный модуль для GPU партиклов, чтобы перетащить туда распределение звезд из материала, ибо выяснил, что точности UV не хватает для сравнительно небольшого кол-ва звезд.
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
Последний раз редактировалось: ТехноМаг (21:53 28-06-2017), всего редактировалось 4 раз(а) |
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) Репутация: 14 Сообщения: 1426
Зарегистрирован: 27.07.2005
 |
|
ну там в дальней зоне может z-fighting начаться если мало буфера оставить
в том же OpenGL нет никакой проблемы отрисовать дальнюю зону, очистить z-buffer и так хоть несколько раз, но есть проблема со всем остальным
Translucent фигня, я согласен
добавлено спустя 6 минут:
вообще ещё есть custom depth чтобы не переписывать пол-движка, но я так и не вкурил как его использовать в данном случае
_________________ This is what you get ...
(c) Radiohead
Последний раз редактировалось: Sh.Tac. (22:12 28-06-2017), всего редактировалось 1 раз |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(19) Репутация: 93 Сообщения: 2516 Откуда: Кронштадт Зарегистрирован: 09.04.2007
 |
|
Он как раз для Translucent.
Отключаешь DepthTest и выставляешь Custom. Он будет определять какой из Translucent материалов будет рисоваться первым.
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей." |
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) Репутация: 14 Сообщения: 1426
Зарегистрирован: 27.07.2005
 |
|
а, ну тогда всё наоборот, при отключенном тесте он всегда рисуется перед остальным
так что надо потрошить... ну вернее не надо
можно отрисовать гигантское пространство, но есть вопрос более важный, как заполнить это пространство игровым интересом?
впрочем БулерМэн уже спрашивал
_________________ This is what you get ...
(c) Radiohead |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(19) Репутация: 93 Сообщения: 2516 Откуда: Кронштадт Зарегистрирован: 09.04.2007
 |
|
Впрочем, я ему даже пытался ответить.
Нужно наработать ряд базовых правил, по которым контент будет размазываться по карте. Обработать выбранное правило шумом и вуаля - мы получаем на выходе уникальный контент подобный базовому правилу.
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей." |
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) Репутация: 14 Сообщения: 1426
Зарегистрирован: 27.07.2005
 |
|
не, ну если сделаешь непрерывное пространство может быть и полетать даже будет интересно
потому как в Элите это мрак, гипер-прыжки разрывают игровой процесс, он дёрганный и неестественный
_________________ This is what you get ...
(c) Radiohead |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(19) Репутация: 93 Сообщения: 2516 Откуда: Кронштадт Зарегистрирован: 09.04.2007
 |
|
Ну путешествия я планирую в стиле StarTrek. Т.е. включил движки и полетел по прямой. Чтобы развернутся нужно будет сбросить скорость, развернутся и опять поддать газку.
Ибо хочу некое подобие ATC ввести в населенных мирах (ну и межзвездный перехват )
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей." |
|
|
БулерМэн
421 EGP
   Рейтинг канала: 2(21) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
ТехноМаг : |
Ибо хочу некое подобие ATC ввести в населенных мирах (ну и межзвездный перехват Гы-гы )
|
воу воу, погоди раскрывать все фишки игры, а то уже хочется скриншот с Энтерпрайзом
Видео можешь выложить, как твое творение двигает звездами?
|
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(19) Репутация: 93 Сообщения: 2516 Откуда: Кронштадт Зарегистрирован: 09.04.2007
 |
|
Обязательно, когда баги исправлю.
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей." |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(19) Репутация: 93 Сообщения: 2516 Откуда: Кронштадт Зарегистрирован: 09.04.2007
 |
|
Хотя нет, не выложу. Соберу видео тогда, когда исправлю баги L1, добавлю временный класс игрока (сейчас пользуюсь дефолтным, что не позволяет развернуть галактику в игровом масштабе]) и включу генерацию L2 (без генерации текстур планет пока что), чтобы показать как это будет выглядеть непосредственно в игре.
Как только видио будет доступно - можно будет начинать считать дни. Ибо как только я соберу тестовый корабль (из кубиков, или возьму тот крейсер, что я показывал. Пока что не знаю) начнется серия тестов в фокус группе, набранной через дискорд (будет создан сервер). Эти тесты покажут производительность всей системы генерации, зависимости от железа, и стабильность сети. Билды для фокус группы будут выкладываться по мере поступления. Как только появится достаточно контента, фокус группа будет расформирована и начнется публичное тестирование (причем сразу на Windows и на Linux [SteamOS] платформах).
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
Последний раз редактировалось: ТехноМаг (17:52 01-07-2017), всего редактировалось 1 раз |
|
|
|
|
|
Канал Игры Мечты: «L.I.M.A. strace_» |
|