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


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

Yakim (Watco... : (2 недель назад) ?
Yandersen : (2 недель назад) Проблемы?..
Yakim (Watco... : (2 недель назад) Какие проблемы?
lz : (3 недель назад) Какие проблемы? Проблемы с другими движками?
GranMinigun : (3 недель назад) Где я предлагал заняться рефакторингом? Я спрашивал, в чём именно проблемы.
Гость : (3 недель назад) пускай они там как нибудь сами, без меня)
GranMinigun : (3 недель назад) Анрил с видимым исходным кодом таки. Но да, у СруДвижка только сырцы самого движка и свободны. А что конкретно за проблемы в коде СруДвижка? Я видел, что у них в планах провести рефакторинг в ближайший апдейт или два. С точки зрения инструментария, к слову, СруДвижок серьёзно подтянулся в последних версиях, я даже решил таки поближе ознакомиться. (А вообще, мне он понравился графическими технологиями, особенно подходом к освещению.)
Yakim (Watco... : (3 недель назад) люто плюсую Егор)
lz : (3 недель назад) Движок большой, функционала много, код качественный (не как у крузис енгине) и всё такое.
lz : (3 недель назад) Анреал открытый, взрослый, на С++. Пока проект некоммерческий денег заносить никому не надо.
lz : (3 недель назад) Да не, на самом деле у меня даже где-то описано, что графический движок можно заменить при необходимости.
lz : (3 недель назад) Потому что анреал - офигенная тема.
GranMinigun : (3 недель назад) Кстати, Егор. А почему выбор движка пал именно на UE4? Какие-то предпосылки к этому были?
lz : (3 недель назад) Я подумал на карту механоидов побольше добавить для фана, а надо ж запаковывать ещё.
lz : (3 недель назад) Спс, это я и писал)
GranMinigun : (3 недель назад) Только распаковщик. Сторонний. Точнее, его создал lz.
Гость : (3 недель назад) а интересно, есть ли где упаковщик для м1? в сдк или может где встроен в саму игру или редактор
Folgen : (4 недель назад) Спс.
GranMinigun : (4 недель назад) Готово. Добро пожаловать на форум, механоид.
GranMinigun : (4 недель назад) Указать, кого именно активировать, например.
Гость : (4 недель назад) Активируйте акк. Хз, нужно что-либо указывать дополнительно для этого в чате, или админы сами всех подряд активируют, кто в очереди на активацию?
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) гы
lz : (29 Декабрь 2017 - 18:34) Посоны, с наступающим всех!
Yakim (Watco... : (28 Декабрь 2017 - 21:55) +
lz : (28 Декабрь 2017 - 20:22) Много капитанства.
lz : (28 Декабрь 2017 - 20:22) +
Yakim (Watco... : (28 Декабрь 2017 - 18:56) ну такое
Gaantro : (28 Декабрь 2017 - 03:41) Описывает принцип работы.
Gaantro : (28 Декабрь 2017 - 03:41) Антиграв*
Gaantro : (28 Декабрь 2017 - 03:41) Система Grable в Star Citizen (Антигуа) : https://youtu.be/2VkzHbJiCAo
Yakim (Watco... : (26 Декабрь 2017 - 17:38) Ага :lol:
lz : (26 Декабрь 2017 - 17:35) Чё там у нас? Пошла жара? Главное, чтобы не такое генерилось https://youtu.be/RvAwB7ogkik

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

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

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

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