Пятница, 22 Ноября 2024, 09:33

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: Gnomov  
Помогите с приоритетом отрисовки в SFML
veeroteenДата: Понедельник, 04 Мая 2020, 17:37 | Сообщение # 21
был не раз
Сейчас нет на сайте
DivES, у тебя 3 координата общая на слой, а puksus4, предлагает делать эту координату на каждый обьект в слое
puksus4Дата: Понедельник, 04 Мая 2020, 17:41 | Сообщение # 22
частый гость
Сейчас нет на сайте
DivES, ну понятно. Но у вас в полноценном масштабе остаётся проблема обработать все объекты в рамках одного слоя) Ваш способ хорошо сработает при виде чисто сбоку, но при изометрии неудобен)

Цитата veeroteen ()
puksus4, предлагаешь динамику на кадр сортировать?

Ещё раз, собрать массив содержащий все статические объекты в кадре, и все динамические. Один одномерный массив из всех объектов. У вас 200 статических камней и деревьев и 5 динамических персонажей - получите массив из 205 элементов.
Отсортировать его (В целях оптимизации статику можно сортировать заранее и сортировать тока динамику, затем отсортированную динамику сливать с отсортированной статикой так чтоб результат остался отсортирован).
Отрендерить.

Добавлено (04 Мая 2020, 17:42)
---------------------------------------------
Цитата veeroteen ()
DivES, у тебя 3 координата общая на слой, а puksus4, предлагает делать эту координату на каждый обьект в слое

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


Сообщение отредактировал puksus4 - Понедельник, 04 Мая 2020, 17:44
DivESДата: Понедельник, 04 Мая 2020, 17:46 | Сообщение # 23
заслуженный участник
Сейчас нет на сайте
veeroteen, ну как тебе сказать. laugh
Нет.
У меня "третья координата" так же для каждого объекта. Да и как ты представляешь её общую на слой? Координатой не слой обладает, а объекты. В зависимости от этой координаты каждый объект попадает на свой слой. Объяснение, вроде бы, проще некуда!

Ну ты сам посуди, чтобы понимать, как отрисовывать объект, за или перед другим, нужно сравнивать эту "третью координату" обоих объектов. Поэтому да, для каждого объекта она необходима.
Хотя, в принципе, для статичных плоскостей её можно опустить, но об этом нужно задуматься.

Цитата puksus4 ()
Просто представляйте позицию объекта в его мировых координатах, а не в экранных. И порядок рендера определяйте из мировых. При рендере уже сдвигайте объекты куда вам надо чтоб они выглядели корректно.

Честно, мне кажется, мы говорим об одном и том же подходе, просто я его объяснить не могу, в добавок добавив путаницы словом "слой"!


Сообщение отредактировал DivES - Понедельник, 04 Мая 2020, 17:47
veeroteenДата: Понедельник, 04 Мая 2020, 17:48 | Сообщение # 24
был не раз
Сейчас нет на сайте
Цитата puksus4 ()
Неверно, я изначально оперирую объектами, а не слоями. Просто представляйте позицию объекта в его мировых координатах, а не в экранных. И порядок рендера определяйте из мировых. При рендере уже сдвигайте объекты куда вам надо чтоб они выглядели корректно.

никто тут экранными и не оперирует, и как можно сортировать отдельно статику и динамику, если они должны ривсоваться в одном в разной последовательности в зависимости от позиции, как ты себе представляешь сортировку динамики относительно массива статики вне самого массива


Сообщение отредактировал veeroteen - Понедельник, 04 Мая 2020, 17:49
DivESДата: Понедельник, 04 Мая 2020, 17:51 | Сообщение # 25
заслуженный участник
Сейчас нет на сайте
puksus4, мой подход отличается отсутствием сортировки.
Вместо этого, уже на этапе рендеринга, в зависимости от слоя z координаты объекты отрисовываются, начиная от самого дальнего, заканчивая самым ближним. :)
veeroteenДата: Понедельник, 04 Мая 2020, 17:54 | Сообщение # 26
был не раз
Сейчас нет на сайте
puksus4,
дерево на координате 100 100 рисуется ниже чем по координате 200 200, о чем я и говорил, даже если мы исключим холм, все равно правило остается таким же, холм в изометрии не меняет положения камеры, ее взгляд относительно обьектов всегда один


Сообщение отредактировал veeroteen - Понедельник, 04 Мая 2020, 17:55
DivESДата: Понедельник, 04 Мая 2020, 17:55 | Сообщение # 27
заслуженный участник
Сейчас нет на сайте
veeroteen, ну да, ниже. А как должно быть? Выше, что ли? Проблема-то в чём?
veeroteenДата: Понедельник, 04 Мая 2020, 17:57 | Сообщение # 28
был не раз
Сейчас нет на сайте
DivES, ну я незнаю о каком влиянии холма говорил puksus4б так что вопрос
Цитата DivES ()
Проблема-то в чём?
относится к нему
puksus4Дата: Понедельник, 04 Мая 2020, 17:58 | Сообщение # 29
частый гость
Сейчас нет на сайте
DivES, у вас присутствует сортировка на этапе рассовывания по слоям если я правильно понял) + внутрислойные разборки
+ вопрос, как вы определяете в какой слой попадёт объект, вы разбили z ось дискретно на интервалы?

Цитата veeroteen ()
и как можно сортировать отдельно статику и динамику

Уже 3 раза писал, сортировать всё вместе. А если выйдет слишком медленно (что крайне маловероятно) - есть вариант сортировать по отдельности и сливать в отдельный массив ПОДДЕРЖИВАЯ его отсортированность. Благо это простейший алгоритм.
drcrackДата: Понедельник, 04 Мая 2020, 17:59 | Сообщение # 30
старожил
Сейчас нет на сайте
Цитата DivES ()
puksus4, мой подход отличается отсутствием сортировки.

Зато у тебя рендеринг O(n²) :D
puksus4Дата: Понедельник, 04 Мая 2020, 18:01 | Сообщение # 31
частый гость
Сейчас нет на сайте
Цитата veeroteen ()
дерево на координате 100 100 рисуется ниже чем по координате 200 200, о чем я и говорил, даже если мы исключим холм, все равно правило остается таким же, холм в изометрии не меняет положения камеры, ее взгляд относительно обьектов всегда один

Давайте другой пример. У вас дерево. Вплотную перед ним персонаж. Он рисуется перед деревом. Это правильно. Но вот персонаж прыгает. Засчёт этого оказывается выше по Y. Ну так вот если судить тупо по Y - то во время прыжка персонаж будет рендериться за деревом, хотя должен перед.

С холмами аналогично. Объекты с одинаковым Y вовсе необязательно имеют одинаковый Z.
А порядок отрисовки, как ни крути, определяется из Z


Сообщение отредактировал puksus4 - Понедельник, 04 Мая 2020, 18:02
veeroteenДата: Понедельник, 04 Мая 2020, 18:03 | Сообщение # 32
был не раз
Сейчас нет на сайте
puksus4, прыжок это только анимация, позицию он никак не меняет, а если и меняет, то это уже скрипт, вообщем прыжок может и не менять координат
DivESДата: Понедельник, 04 Мая 2020, 18:05 | Сообщение # 33
заслуженный участник
Сейчас нет на сайте
Цитата drcrack ()
дискретно на интервалы?

%)
Что? (это риторический вопрос, не нужно на него отвечать)

drcrack, да говорю же, только прототип сделал рабочий.
А тут как раз на форуме тема об этом, вот и решил влезть.
Но я лучше пойду пока что подобру-поздорову, доделаю, а там и вернусь, вы пока что тут веселитесь. laugh

Цитата veeroteen ()
прыжок это только анимация, позицию он никак не меняет,

К слову, прыжок — изменение позиции в пространстве. Так что в первую очередь он именно меняет позицию, а уже потом сопровождается какой-нибудь анимацией.


Сообщение отредактировал DivES - Понедельник, 04 Мая 2020, 18:11
puksus4Дата: Понедельник, 04 Мая 2020, 18:15 | Сообщение # 34
частый гость
Сейчас нет на сайте
Кароче, всё было сказано и разжёвано. Кому интересно понять суть проблемы и суть решения - прочитает первую страницу темы и поймёт, а кто хочет устраивать срач игноря сообщения - меня не интересует, выхожу из темы.
veeroteenДата: Понедельник, 04 Мая 2020, 18:17 | Сообщение # 35
был не раз
Сейчас нет на сайте
DivES, прыгать можно и на месте, от этого позиция не меняется, если же мы прыгаем вперед, это уже другое дело, в таком случае мы меняем позицию игнорируя коллизию на некоторую высоту

Сообщение отредактировал veeroteen - Понедельник, 04 Мая 2020, 18:19
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг