Перейти к содержимому


Свернуть чат Чат Открыть чат во всплывающем окне

lz : (2 дней назад) Вытаскивал из блока.
lz : (2 дней назад) Блэт, мои серваки на амазоне под раздачу попали.
Yakim (Watco... : (2 недель назад) :ph34r:
Гость : (4 недель назад) Благодарю :) (предпочитаю постоянный стабильный заработок)
Yakim (Watco... : (4 недель назад) пхахаха
lz : (4 недель назад) Может быть, хочешь знать, как поднять бабла?
lz : (4 недель назад) Кстати, а проблем с доступом к джойказино у тебя нет?
lz : (4 недель назад) Активировал.
Гость : (4 недель назад) Проблемы с активацией аккаунта на форуме... =)
Yakim (Watco... : (4 недель назад) :ph34r:
Yakim (Watco... : (01 Февраль 2018 - 21:44) ?
Yandersen : (01 Февраль 2018 - 19:04) Проблемы?..
Yakim (Watco... : (31 Январь 2018 - 13:18) Какие проблемы?
lz : (30 Январь 2018 - 16:17) Какие проблемы? Проблемы с другими движками?
GranMinigun : (30 Январь 2018 - 12:45) Где я предлагал заняться рефакторингом? Я спрашивал, в чём именно проблемы.
Гость : (30 Январь 2018 - 07:55) пускай они там как нибудь сами, без меня)
GranMinigun : (29 Январь 2018 - 21:19) Анрил с видимым исходным кодом таки. Но да, у СруДвижка только сырцы самого движка и свободны. А что конкретно за проблемы в коде СруДвижка? Я видел, что у них в планах провести рефакторинг в ближайший апдейт или два. С точки зрения инструментария, к слову, СруДвижок серьёзно подтянулся в последних версиях, я даже решил таки поближе ознакомиться. (А вообще, мне он понравился графическими технологиями, особенно подходом к освещению.)
Yakim (Watco... : (29 Январь 2018 - 18:01) люто плюсую Егор)
lz : (29 Январь 2018 - 14:29) Движок большой, функционала много, код качественный (не как у крузис енгине) и всё такое.
lz : (29 Январь 2018 - 14:28) Анреал открытый, взрослый, на С++. Пока проект некоммерческий денег заносить никому не надо.
lz : (29 Январь 2018 - 14:27) Да не, на самом деле у меня даже где-то описано, что графический движок можно заменить при необходимости.
lz : (29 Январь 2018 - 14:27) Потому что анреал - офигенная тема.
GranMinigun : (29 Январь 2018 - 01:03) Кстати, Егор. А почему выбор движка пал именно на UE4? Какие-то предпосылки к этому были?
lz : (27 Январь 2018 - 18:39) Я подумал на карту механоидов побольше добавить для фана, а надо ж запаковывать ещё.
lz : (27 Январь 2018 - 18:39) Спс, это я и писал)
GranMinigun : (27 Январь 2018 - 18:20) Только распаковщик. Сторонний. Точнее, его создал lz.
Гость : (27 Январь 2018 - 03:45) а интересно, есть ли где упаковщик для м1? в сдк или может где встроен в саму игру или редактор
Folgen : (19 Январь 2018 - 08:31) Спс.
GranMinigun : (19 Январь 2018 - 05:43) Готово. Добро пожаловать на форум, механоид.
GranMinigun : (19 Январь 2018 - 05:42) Указать, кого именно активировать, например.
Гость : (19 Январь 2018 - 00:49) Активируйте акк. Хз, нужно что-либо указывать дополнительно для этого в чате, или админы сами всех подряд активируют, кто в очереди на активацию?
GranMinigun : (13 Январь 2018 - 05:42) https://forums.unrea...sed-on-gis-data
Yakim (Watco... : (09 Январь 2018 - 00:24) Аа да? Ну окей)
GranMinigun : (08 Январь 2018 - 20:06) А это даже не обсуждается!
Yakim (Watco... : (08 Январь 2018 - 19:55) А кто сказал что мы пьянели?)
GranMinigun : (08 Январь 2018 - 19:48) Ну что, товарищи, протрезвели?
Yakim (Watco... : (02 Январь 2018 - 20:56) сяп)
Гость : (01 Январь 2018 - 23:57) Егорыч на праздники с каникул вернулся. За это тост! Всем маны!
lz : (30 Декабрь 2017 - 23:52) Наоборот.
Гость : (30 Декабрь 2017 - 23:16) Позвольте уточнить, для будущего наркомана прошлое это будущее или наоборот?
lz : (30 Декабрь 2017 - 22:08) Как ты его поймаешь, когда он знает, где ты его будешь ловить?
GranMinigun : (30 Декабрь 2017 - 09:12) Ловите наркомана из будущего!
PA3UJIb : (30 Декабрь 2017 - 06:37) С новым 2018 годом! А то старый-то 2018 мы и не видели даже
Yakim (Watco... : (29 Декабрь 2017 - 19:46) С наступающим)
Yakim (Watco... : (29 Декабрь 2017 - 19:45) гы

Фотография
- - - - -

Terrain Engine

OpenGL Heightmap

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 24

#21 OFFLINE   PA3UJIb

PA3UJIb

    Серый

  • Создатель
  • 171 сообщений

Отправлено 13 Апрель 2015 - 16:04

Уже качаю

 

-----------------------------------

 

Ай, эти довороты камеры меня укачивают  :wacko:

 

-----------------------------------

 


глянуть файлы FBO.hpp (класс фреймбуффер обжекта описан), Origin.hpp (система координат), Camera.hpp (мой ноу-хау подход к камерам в ОпенГЛ)

Класс "система координат" ну, сделал, да, сделал, хотя по-моему и повороты, и точка начала отсчета - все они в матрице трансформаций есть. Оттуда и вытягивать всё. Но в отдельном классе тоже хорошо.

Класс камеры "тяжеловат" - многие функции бы убрать. Вообще, на мой косой взгляд, в камере должны быть только позиция, ориентация и матрица проекций - то есть "откуда", "куда" и "как" смотрит. Это как сделано у меня :-Р

Класс ФБО - ну, с классом проще, да. Я пока просто мало с ним работал, чтобы найти там фичи, которые в ООП надо было бы заворачивать.


 


#22 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 14 Апрель 2015 - 20:45

Так я тебе чисто для примеров кода посоветовал глянуть - как ОпенГЛ функции применять. На случай если ты ещё не до конца вкурил работу с ФБО.

Кста, выяснил, наконец, что FBO хранит в своих пропертях read и write буфферы - так что glReadBuffer и glDrawBuffers не нужно более одного раза вызывать - только вьюпорт каждый раз при биндиньи другого ФБО.

 

Класс "система координат" ну, сделал, да, сделал, хотя по-моему и повороты, и точка начала отсчета - все они в матрице трансформаций есть. Оттуда и вытягивать всё.

Ага, ты так и не просёк фишку. Обратная матрица будет использоваться не намного реже обычной. Если хранить и использовать в виде матрицы, то нахождение обратной для 4х4 требует значительных вычислений. Плюс 4-я строка (0,0,0,1) только место занимает и никогда не меняется - зачем лишние 16 байт тратить? А в виде трех ортоганальных векторов и точки отсчёта нахождение обратной матрицы сводится к простому транспонированию тройки координатных осей и умножению точки отсчёта на матрицу 3х3 - это много проще нахождения обратной матрицы для 4х4.

 

Короче говоря, так рациональнее хранить систему координат, чем в виде матрицы. Хотя по сути, тройка осей и точка отсчёта - это матрица mat4x3.

 

Класс камеры "тяжеловат" - многие функции бы убрать. Вообще, на мой косой взгляд, в камере должны быть только позиция, ориентация и матрица проекций - то есть "откуда", "куда" и "как" смотрит. Это как сделано у меня :-Р

А я мыслил о камере как о виртуальном объекте, представляющем собой прямоугольную проекционную плоскость шириной xSize, высотой ySize и находящуюся на расстоянии zNear от центра системы координат, к которой камера "прилеплена" (Origin). С моим ноу-хау подходом zNear может быть настолько маленькой, что такая объект-камера в зрачке персонажа поместится. Хм, для большего реализма такой камеро-симуляции перспектива должна задаваться не углом, а двиганьем проекционной плоскости (изменением zNear) ближе-дальше к центру проекции, что есть центр системы координат, к которой камера прилеплена. Типа как выдвигание объектива камеры при зуме: плоскость ближе - угол обзора шире, плоскость дальше - угол обзора меньше (т.е. всё укрупняется). Хм, в реале как у камеры эффект получаецца... :rolleyes:



#23 OFFLINE   PA3UJIb

PA3UJIb

    Серый

  • Создатель
  • 171 сообщений

Отправлено 14 Апрель 2015 - 21:22


Хотя по сути, тройка осей и точка отсчёта - это матрица mat4x3

Ну, если так подходить, то да, тогда согласен. Чутка больше математики только, не?


А я мыслил о камере как о виртуальном объекте, представляющем собой прямоугольную проекционную плоскость шириной xSize, высотой ySize и находящуюся на расстоянии zNear от центра системы координат

Интересно, можно ли визуализировать такой фруструм?


 


#24 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 14 Апрель 2015 - 23:09

Ну, если так подходить, то да, тогда согласен. Чутка больше математики только, не?
Наоборот. И вапще, я имел в виду, что содержимое COrigin (m,p) можно просто интерперитировать как mat4x3 и так и использовать. Но только напрямую, т.к. обратная матрица определена лишь для квадратных матриц.


Интересно, можно ли визуализировать такой фруструм?
Точно так же он визуализируется, как обычный фрустум, только бОльшего основания нет - оно бесконечно далеко, т.к. задней плоскости отсечения нет.

#25 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 15 Апрель 2015 - 19:49

---

Наткнулся на артикл, рассказывающий как хаймапа у эпиков сделана. Внимание привлёк этот абзац:

 
Static Render Data Stored as Textures in GPU Memory

The Landscape system stores the render data for the terrain in Textures in GPU memory, allowing data to be looked up in the vertex shader. The data is packed into a 32-bit Texture with the height occupying 16-bits in the form of the R and G channels and X and Y offsets stored as 8-bit values in the B and A channels, respectively.

Гениальное решение, как оно не пришло мне в голову? Это позволяет плотнее кучковать вершины в местах с большим перепадом высот, оттягивая их от ровных участков. Т.е. топология трегуов сохраняется, хоть конкретные позиции вершин и не привязаны к квадратной сетке. Так можно даже овраги и навесы делать. И не будет растянутостей на вертикальных склонах.

Но тут проблема с терраформингом возникает. Ведь если сетка регулярная, то можно чётко сказать, какая вершина находится на конкретных горизонтальных координатах. Но когда у каждой есть своё смещение, то уже нельзя. Так что такой способ хорош лишь для рендера, наверное, и терраформинг тогда отпадает. Хотя хз, нужно ещё помозговать...







Темы с аналогичным тегами OpenGL, Heightmap

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных