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


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

Folgen : (2 дней назад) Спс.
GranMinigun : (2 дней назад) Готово. Добро пожаловать на форум, механоид.
GranMinigun : (2 дней назад) Указать, кого именно активировать, например.
Гость : (2 дней назад) Активируйте акк. Хз, нужно что-либо указывать дополнительно для этого в чате, или админы сами всех подряд активируют, кто в очереди на активацию?
GranMinigun : (неделю назад) https://forums.unrea...sed-on-gis-data
Yakim (Watco... : (неделю назад) Аа да? Ну окей)
GranMinigun : (неделю назад) А это даже не обсуждается!
Yakim (Watco... : (неделю назад) А кто сказал что мы пьянели?)
GranMinigun : (неделю назад) Ну что, товарищи, протрезвели?
Yakim (Watco... : (2 недель назад) сяп)
Гость : (2 недель назад) Егорыч на праздники с каникул вернулся. За это тост! Всем маны!
lz : (3 недель назад) Наоборот.
Гость : (3 недель назад) Позвольте уточнить, для будущего наркомана прошлое это будущее или наоборот?
lz : (3 недель назад) Как ты его поймаешь, когда он знает, где ты его будешь ловить?
GranMinigun : (3 недель назад) Ловите наркомана из будущего!
PA3UJIb : (3 недель назад) С новым 2018 годом! А то старый-то 2018 мы и не видели даже
Yakim (Watco... : (3 недель назад) С наступающим)
Yakim (Watco... : (3 недель назад) гы
lz : (3 недель назад) Посоны, с наступающим всех!
Yakim (Watco... : (3 недель назад) +
lz : (3 недель назад) Много капитанства.
lz : (3 недель назад) +
Yakim (Watco... : (3 недель назад) ну такое
Gaantro : (3 недель назад) Описывает принцип работы.
Gaantro : (3 недель назад) Антиграв*
Gaantro : (3 недель назад) Система Grable в Star Citizen (Антигуа) : https://youtu.be/2VkzHbJiCAo
Yakim (Watco... : (3 недель назад) Ага :lol:
lz : (3 недель назад) Чё там у нас? Пошла жара? Главное, чтобы не такое генерилось https://youtu.be/RvAwB7ogkik
Moh : (3 недель назад) Мне, да привет? Ну привет )
Гость : (3 недель назад) И с Новым годом.
Гость : (3 недель назад) Шучу. От Крогота.
Гость : (3 недель назад) От Гостя.
Гость : (3 недель назад) Увидите моха передайте ему привет.
Yakim (Watco... : (3 недель назад) :lol: :P
lz : (3 недель назад) Лан, чё ты, нормально же общались, это нарицательное)
Yakim (Watco... : (4 недель назад) Еще и "Мехах" с маленькой буквы, бесстыжий :D
GranMinigun : (4 недель назад) Был.
lz : (4 недель назад) В мехах был такой рейтинг? Не помню уже.
lz : (4 недель назад) Опасный Яким)
Yakim (Watco... : (4 недель назад) За "маханойдов" и двор, стреляю в упор :D
GranMinigun : (4 недель назад) Я не это имел в виду!
Yakim (Watco... : (4 недель назад) :lol:
lz : (4 недель назад) За механойдов наверное.
lz : (4 недель назад) Всё, рубанул.
lz : (4 недель назад) Ща мы их.

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

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 анонимных