Войти
Urho3DФорумЗАДАВАЙТЕ ВОПРОСЫ

Terrain

Страницы: 1 2 Следующая »
#0
11:32, 15 янв 2023

  Нигде не нашёл, какой размер патча ( SetPatchSize() ) оптимален, ну то есть какой размер выбирать, от чего это зависит. Нашёл только что степень двойки, но это и так понятно. Как это вообще влияет на производительность?

  Ну и как я понял, карта высот, на основе которой генерируется территория, остаётся хранится.... Вопрос возникает, зачем её сохранять? Как по мне так, лучше - сделал и удалил.

  Ну и вдогонку вопрос более общий, если предполагается много воды, где не надо чтобы было видно  дно - ну типа океан, то вроде не эффективно столько треугольников в пустую держать, с ровной поверхностью дна?

#1
13:26, 15 янв 2023

Террейн надо сильно дорабатывать, он несколько устарел.

Как я понимаю карта высот нужна для рейкастов и для построения лодов в runtime. А ещё ее можно перестраивать.

Насколько я знаю дырок нет. Но могу ошибаться.

#2
17:06, 15 янв 2023

stratego
> если предполагается много воды
тогда проще вода в виде plane и острова в виде геометрии.

#3
17:26, 15 янв 2023

С водой то всё понятно, я такую воду видел еще в иррлихте лет 12 назад, с той разницей, что она не в ходила в стандартную поставку движка...

GLoom
> Террейн надо сильно дорабатывать, он несколько устарел.
В чём он устарел?

#4
18:00, 15 янв 2023

stratego
> В чём он устарел?

Например террейн поддерживает 3 текстуры. Никаких тебе нормалей или PBR.
Террейн не поддерживает генерацию травы и деревьев. Надо руками всё писать поверх.
Насколько я понимаю алгоритмы генерации лодов тоже продвинулись вперёд со времени написания террейна в урхе.

#5
21:54, 15 янв 2023

Я еще не смотрел, но вроде можно же добавить текстур и шейдер изменить? Вряд ли там всё зашито, что не поменять - не создавая свой терраин.

Лоды я еще не уверен, нужны ли будут. Я пока вижу свою карту, аля изометрия. Хот при удаление камеры, возможно и понадобятся

#6
(Правка: 9:51) 4:22, 16 янв 2023

stratego
> можно же добавить текстур и шейдер изменить?
изменить то можно, только чем тогда это будет отличаться от того если ты сам сделаешь геометрию ландшафта и его покрасишь.. и уж тем более, если напишешь ко всему этому свой шейдер.

текстуры можно заменить, есть 3и слоя масок (R,G,B). Есть текстура высот. Ты можешь менять размер текстур на ландшафте через материал (конфиг).

Gloom помогает развитию движка (пишет его), поэтому лучше него и Eugene (развивает из покон веков) его никто не знает).
Я делаю на нём свои поделки, поэтому знаю некоторые темы.

В общем лучше посмотреть самому и решить какой из вариантов тебе удобнее. Там есть пример с грибами 46_RaycastVechicle.

#7
12:26, 16 янв 2023

Шейдер можно дописать. Мы до 6 слоев впихивали. Но в юнити может быть 20 слоев, каждый слой с нормалями. И урха уже так не может.

#8
16:49, 16 янв 2023

Ну чувствую, не до игры меня будет , сейчас как подсяду на генерацию ландшафта, так и не слезть будет )) Это срочно возвращаться к первоначальной идеи, 2д - вид сверху )))


Да хватит наверное и 6ти, я же не к реализму стремлюсь... А массив текстур не поддерживается разве?

#9
17:02, 16 янв 2023

Salamandr
> В общем лучше посмотреть самому и решить какой из вариантов тебе удобнее. Там
> есть пример с грибами 46_RaycastVechicle.
Я не понял, что там смотреть? Там же тележка ездит... Если применение террайна, так я его уже посмотрел, в 23 примере.

Не нашёл примера, по генерации геометрии. Надо класс Geometry мучить?

#10
17:07, 16 янв 2023

stratego
> А массив текстур не поддерживается разве?
Движок поддерживает, шейдер террейна - нет.

#11
(Правка: 6:40) 6:12, 17 янв 2023

stratego
> Не нашёл примера, по генерации геометрии
34_DynamicGeometry, но самый лучший пример от Eugene (если разберешься) https://github.com/eugeneko/Snake4D. GeometryBuilder он перестраивает её только в нужный момент. При этом в своей игре он строит её каждый кадр и это никак не сказывается на производительности. То есть как если бы это был просто OpenGL

glBegin(GL_QUADS)
glVertex3d()
glVertex3d()
glVertex3d()
elEnd()

Но именно ты определяешь когда и сколько раз надо её перестроить.

#12
12:36, 17 янв 2023

Salamandr
> glBegin(GL_QUADS)
> glVertex3d()
> glVertex3d()
> glVertex3d()
> elEnd()
Вершина потерялась ))

Salamandr
> 34_DynamicGeometry
Нормально, хотя как по мне примеры надо делать по проще. Допустим как просто создать геометрию и уж потом динамическое что-то прикручивать.

Salamandr
> но самый лучший пример от Eugene (если разберешься)
> https://github.com/eugeneko/Snake4D
Там, даже играть сложно, не то что понять как оно устроенно ))

Пошёл, творить что-то простое, там сферу или икосаэдр... Обход вершин, как я понял по часовой стрелке...

#13
(Правка: 22:27) 22:24, 17 янв 2023

В 34 примере:

Vector<VertexElement> elements;
        elements.Push(VertexElement(TYPE_VECTOR3, SEM_POSITION));
        elements.Push(VertexElement(TYPE_VECTOR3, SEM_NORMAL));

Я так понял это показывает что вершина в вершинном буфере состоит из 3 флоатов - позиция и 3 флоатов - это нормали.

Ну и если мне потребуется скажем пара текстурных координат, то я должен задавать что-то вроде этого?

Vector<VertexElement> elements;
        elements.Push(VertexElement(TYPE_VECTOR3, SEM_POSITION));
        elements.Push(VertexElement(TYPE_VECTOR3, SEM_NORMAL));
    elements.Push(VertexElement(TYPE_VECTOR2, SEM_TEXCOORD));
    elements.Push(VertexElement(TYPE_VECTOR2, SEM_TEXCOORD));

Ну и понятное дело, это всё должно поддерживаться шейдером

#14
23:27, 17 янв 2023

как на счет dual contouring и трипланар шейдер на него?

Страницы: 1 2 Следующая »
Urho3DФорумЗАДАВАЙТЕ ВОПРОСЫ