Welcome to U.A.C. [O.S.A.]
login / register 
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Маппинг под 45 градусов (UDMF)
   Список разделов - Местечко мапперов и моддеров - Маппинг под 45 градусов (UDMF)Ответить
АвторСообщение
soldierDude
= Master Corporal =
Next rank: - Sergeant - after 40 points
250

Doom Rate: 1.82

Posts quality: +111
Ссылка на пост №1 Отправлено: 12.05.24 21:21:24
Нет, нет, речь не про маппинг в нетрезвом состоянии.
Речь пойдёт о построении секторов, повёрнутых на 45.
Как вариант, можно сначала нарисовать локацию под прямым углом, затем повернуть ее.
Однако, неизбежна проблема с выравниванием вершин секторов по сетке.
А уж редактировать такие участки - способ заработать себе головную боль.

Сразу скажу, из-за того, что текстуры придётся в любом случае немного растягивать, поворачивать,
этот способ подойдёт для UDMF формата. Для классики всё же более-менее вариантом будет создание и поворот целой локации.



Итак, здесь изображён квадрат (А) 64х64 и его приближенный диагональный вариант (Б).
Б можно спокойно нарисовать по сетке, перемещать по ней, делить (перед этим уменьшив сетку), склеивать.
Особенностью Б является то, что его линии кратны трём.
Получается такое соотношение, что у линий А 4 элемента по 16 примерно равны 3 диагональным элементам.
Длина линии у А - 64, а у Б примерно 68 (67.88).



Тут свойства пола и потолка, они повёрнуты и имеют одно значение в scale: 0.9428, которая выравнивает текстуру по сектору.



Здесь у стен указывается только scale по ширине линии - 0.95. Это округлённая величина 0.9428.
Дело в том, что у игры/редактора/формата точность scale у стен не такая высокая в отличии от пола и потолка. В общем, 0.95 будет достаточно.
Однако, из-за этой низкой точности такая текстура стены с длиной 6516 будет не совпадать с полом на 6-8 пикселей.
Поэтому такие длинные стены лучше разбивать, благо, что это просто, т.к. всё привязано к сетке.

Откуда взялась 0.9428? Сейчас объясню:
Скрытый текст:


Ранее я упомянул соотношение линий А и Б, и что диагональная версия 64 будет 67.88.
И если 64 разделить на 67.88, то получится 0.9428. Чтобы найти диагональную версию, например, для 512,
достаточно разделить его на это же число (0.9428). т.е. оно работает с любыми размерностями.

Чтобы объяснить его природу, нужно прибегнуть к математике.
Дело в том, что диагональ - это по-сути гипотенуза равных катетов. А отношение гипотенузы и равных катетов - это квадратный корень двух.
т.е. у 67.88 оба катета равны 48. Это 3 элемента по 16. Соответственно 4 элемента по 16 уже будет 64.
Вырисовывается такая формула отношения:
67.88 = 64 / 4 * 3 * квадратный_корень(2)
67.88 = 64 * 0,75 * квадратный_корень(2)

Теперь выведем отношение:
0.9428 = 64 / 67,88
0.9428 = 64 / (64 * 0,75 * квадратный_корень(2))
0.9428 = 1 / (0,75 * квадратный_корень(2))
Если быть более точным, то 0.94280904158206336586779248280647.

0.75 - это соотношение, когда мы хотим от числа, кратного 4, получить кратный 3 катет приблизительной диагонали к числу.
квадратный корень - это быстрый способ решения задачи Пифагора. Между прочим иррациональное число.
Такие вот дела. Если честно, совсем не уверен, что грамотно объяснил, но как мог. Если что, задавайте вопросы.)

+Ku6EPyXOBEPTKA+
= Major =
Next rank: Lieutenant Colonel after 297 pointsМодератор форума
2993

Doom Rate: 2.06

Posts quality: +1462
Ссылка на пост №2 Отправлено: 12.05.24 23:55:32
Честно говоря, нафига такие сложности, если в UDB есть функция поворота с пригвоздением текстуры. Делается через клавишу "E"




Рейтинг сообщения: +2, отметил(и): Mud, JSO x
2 1 7
soldierDude
= Master Corporal =
Next rank: - Sergeant - after 40 points
250

Doom Rate: 1.82

Posts quality: +111
Ссылка на пост №3 Отправлено: 13.05.24 00:25:44
+Ku6EPyXOBEPTKA+

Не знал о такой функции, спасибо.
Вообще смысл был в том, чтобы была привязка к сетке для дальнейшего редактирования
+Ku6EPyXOBEPTKA+
= Major =
Next rank: Lieutenant Colonel after 297 pointsМодератор форума
2993

Doom Rate: 2.06

Posts quality: +1462
Ссылка на пост №4 Отправлено: 13.05.24 00:48:54
soldierDude
Есть небольшая хитрость, при маппинге под углом лучше просто использовать текстуры без явного тайлинга (типа FLAT19 ).
А под углом ставить только декоротивные элементы. Типа ламп или каких-то объектов. Такой подход в разы упростит жизнь, чем пытаться изначально выстраивать по сетке, от которой потом нельзя будет отвязаться.
2 1 7
Страница 1 из 1Перейти наверх
   Список разделов - Местечко мапперов и моддеров - Маппинг под 45 градусов (UDMF)