HLFX.Ru Forum Страницы (90): « Первая ... « 9 10 11 12 [13] 14 15 16 17 » ... Последняя »
Показать все 1349 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Jackhammer (https://hlfx.ru/forum/forumdisplay.php?forumid=35)
-- Багрепорты (https://hlfx.ru/forum/showthread.php?threadid=4450)


Отправлено Garux 26-04-2015 в 10:51:

Цитата:
XaeroX писал:
Ничего странного тут нет. Rotation - это число, которое показывается в редакторе, и более ничего.

Занятная концепция Странность в том, что UV-lock участвует в поворотах брашей, а должен работать только для морфинга
Очевидно, это и есть сбойное место

Цитата:
XaeroX писал:
Насколько я разобрался, там сначала строятся таки ортогональные оси путём проецирования на плоскость фейса. А потом матрицей из браш-примитива доводятся до нужного положения.

Тоже попробовал разобраться, похоже так и есть
Код из компилятора
C++ Source Code:
1
/* brush primitive texturing */
2
else
3
{
4
  /* calculate texture s/t from brush primitive texture matrix */
5
  x = DotProduct( vTranslated, texX );
6
  y = DotProduct( vTranslated, texY );
7
  dv->st[ 0 ] = s->texMat[ 0 ][ 0 ] * x + s->texMat[ 0 ][ 1 ] * y + s->texMat[ 0 ][ 2 ];
8
  dv->st[ 1 ] = s->texMat[ 1 ][ 0 ] * x + s->texMat[ 1 ][ 1 ] * y + s->texMat[ 1 ][ 2 ];
9
}
10
}


На моём уровне понимания выглядит вполне раздельно


Отправлено XaeroX 26-04-2015 в 11:07:

Garux
Ну так откуда texX и texY берутся? Это ж и есть сами оси.

Добавлено 26-04-2015 в 17:06:

Цитата:
Garux писал:
Странность в том, что UV-lock участвует в поворотах брашей, а должен работать только для морфинга

Наоборот, предпочтительно пользоваться им только в режиме shear (третий режим выделения). Но в принципе он работает в любом режиме, однако т.к. "запирание" координат может привести к тому, что оси принципиально окажутся невосстановимыми (иными словами, текстурные координаты не будут корнями одной и той же системы линейных уравнений, как должно быть с осями), то лучше этот режим использовать как можно реже, когда точно известно, что и где нужно получить.

Добавлено 26-04-2015 в 17:07:

Цитата:
Garux писал:
Занятная концепция

С введением формата 220 оно и в хаммере так.
По сути вращение выполняется не на заданный угол, а на разницу между предыдущим и текущим углом. Т.е. число там может быть любое, обрабатывается только приращение.

__________________

xaerox on Vivino


Отправлено Garux 26-04-2015 в 11:44:

Цитата:
XaeroX писал:
Ну так откуда texX и texY берутся? Это ж и есть сами оси.

Оси в компиляторе берутся из ComputeAxisBase( vec3_t normal, vec3_t texX, vec3_t texY ), что похоже на таки проекцию ортогональных осей на фейс
Не совсем понимаю техзадание. Надобно отклонить оси, исходя из матрицы? Пересчитать их относительно мира?
Просто, если б я был такой умный, то, пожалуй бы, уже сочинил свой black jack с автокалком и локами

Цитата:
XaeroX писал:
предпочтительно пользоваться им только в режиме shear (третий режим выделения). Но в принципе он работает в любом режиме

Так для поворотов брашей UV-lock ничего полезного не делает, только баг вызывает
Отключить в коде его для поворотов, делов-то


Отправлено XaeroX 26-04-2015 в 11:55:

Цитата:
Garux писал:
Не совсем понимаю техзадание.

ТЗ: объяснить мне, как получаются неортогональные оси в браш-примитивах.
ComputeAxisBase создаёт ортогональные, и я не понимаю, как матричная трансформация этих дотов позволяет добиться эффекта, как на гифке.
Я не очень силён в математиках, ибо по образованию биолог, а иначе уже сочинил бы свой унреал-5 с собственным удк.
Цитата:
Garux писал:
Отключить в коде его для поворотов, делов-то

Кабы всё было так просто.
Архитектура редактора такова, что фейс не знает, поворачивали его или что другое похабное сотворяли. Ему просто матрицу дают, и всё. А матрица совсем в другом месте считается (в коде селекшен-тула).

__________________

xaerox on Vivino


Отправлено Garux 27-04-2015 в 08:08:

Хорошо, попытка - не пытка

Цитата:
x = DotProduct( vTranslated, texX );

Это дистанция плоскости с нормалью texX и содержащей точку vTranslated
Другими словами размер проекции вектора точки на вектор одной из ортогональных осей
Цитата:
y = DotProduct( vTranslated, texY );

другой
Значит раскидали точку по осям
Цитата:
dv->st[ 0 ] = s->texMat[ 0 ][ 0 ] * x + s->texMat[ 0 ][ 1 ] * y + s->texMat[ 0 ][ 2 ];
dv->st[ 1 ] = s->texMat[ 1 ][ 0 ] * x + s->texMat[ 1 ][ 1 ] * y + s->texMat[ 1 ][ 2 ];

Тут смотрим, будет ли s или t меняться по одной оси или по двум сразу и в каком соотношении
На примере простого случая с гиф исходное состояние с такой матрицей:
( ( 0.03125 0 0 ) ( 0 0.03125 0 ) )
s=x*0.03125, t=y*0.03125, offset = 0
Перекошенный вариант:
( ( 0.003125 -0.0010868 0 ) ( 0 0.003125 0 ) )
s=x*0.03125 - y*0.0010868, t=y*0.03125, offset = 0

В таком простом случае кажется, что можно реализовать UV lock без выковыривания алигна из st через систему уравнений
Кстатии, q3map2 при декомпиляции карт в brush primitives тоже так делает


Отправлено XaeroX 27-04-2015 в 09:55:

Ага, теперь понятно, спасибо.
Как-то я не сообразил, что матрица применяется не к осям, а к проекциям, а там понятия ортогональности уже нет. Значит, теоретически действительно можно экспортировать текстурирование джека в формат браш-примитивов.
Другой вопрос, зачем вообще их придумали? В чистом ку3 оси нужны, чтобы грамотно присовокупить к фейсу лайтмапу. Если использовать неискажённые оси - лайтмапа будет не прямоугольником, а параллелограммом, и жрать ненужное пространство. Далее, оси нужны для касательного пр-ва для бамп-маппинга, что умеет считать ку3мап2. То есть, по сути, нам всё равно придётся восстанавливать искажённые оси в компиляторе. Ну почему же их сразу не писать в мап-формат, слегка доработав именно компилятор? Это же намного проще и логичнее, чем докручивать новый экспорт-формат джеку, где придётся решать хитрые уравнения для вычисления этой текстурной матрицы?

__________________

xaerox on Vivino


Отправлено Garux 27-04-2015 в 13:18:

Ума не приложу, из каких корыстных соображений был выбран такой формат текстурирования
Посмотрел на формат карт Doom3 - там плоскости фейсов заданы, как нормаль + дистанция, а текстуринг через такую же матрицу
Что до уравнений - можно взять готовое решение отсюда:
https://gitlab.com/xonotic/netradia...2/convert_map.c
функция ConvertBrush


Отправлено XaeroX 27-04-2015 в 13:22:

Этот код заражён GPL-вирусом.
Ну не важно, принцип понятен.
Вопрос - а кому именно-то нужен экспорт в формат браш-примитивов? Я не знаю ни одного пользователя джека, работающего с ку3, а компиляторы ку1/ку2/хл1 всё равно брашпримитивы не понимают.

__________________

xaerox on Vivino


Отправлено Garux 27-04-2015 в 14:25:

Цитата:
XaeroX писал:
Я не знаю ни одного пользователя джека, работающего с ку3

И я
Поддержка q3 в джеке это потенциальные пользователи из всех игр, поддерживаемых q3map2, так что проблема с форматами наверняка всплывёт, например:
новичёк: посмотрите карту плз, что я не так делаю?
неновичёк: ой нет, для этого джек надо ставить, фу, фу

Также есть порядочное количество форков q3map2 с разным функционалом и сетами багов. Добавлять поддержку формата hl в каждый - таки много работы, даже при наличии инструкции

Попробовал импорт кубика с brush primitives:


Отправлено XaeroX 27-04-2015 в 14:45:

Цитата:
Garux писал:
новичёк: посмотрите карту плз, что я не так делаю?
неновичёк: ой нет, для этого джек надо ставить, фу, фу

новичёк: ставь, ставь, там есть бесшовный текстуринг, wysiwyg-редактирование шейдеров и много всяких славных плюх, радиант отныне не нужен.


Не, ну как говорится, редактор - дело вкуса. Радианты меня бесят, притом что редактор под мой движок был таки радиант (на тот момент джека не было). Ну бесят, и всё. Там всё как-то не так, по сравнению с хаммером.

Цитата:
Garux писал:
Попробовал импорт кубика с brush primitives

Я толком и не тестировал эти примитивы. Ну никто из моих знакомых ими не пользуется даже под ку3, что поделаешь. Кинь, плиз, мап с этим кубиком, я гляну.

__________________

xaerox on Vivino


Отправлено Garux 27-04-2015 в 17:12:

Положение кубика погоды не делает, с фейсом на осях и дефолтным алигном тот же результат


Отправлено thambs 08-05-2015 в 00:08:

*bug*bug*bug*

path-tool, крупная сетка, выделяем несколько вершин, используем перемещение. все вершины привязались к сетке, даже если были не её.

__________________
http://www.moddb.com/mods/monorail-quest


Отправлено JPEG 15-05-2015 в 19:25:

- модели в циклер спрайтах не прорисовываются, с монстр генерик всё ок
- мелочь: при открытом окне Объект пропортиес, нажимаешь закрыть карту и табличка с вопросом сохранения находится за Объект проп.
- тот же глюк, что и в хаммере: большие модели, типа 3д-скайбоксов начинают прорисовываться только под определённым углом и расстоянием от центра модели
- в энтити репорт было бы хорошо добавить путь к моделям и спрайтам от энтить типа циклер спрайта, чтобы можно было легко найти нужное
- кнопка Сейв на панели предлагает сохранить в жмф, хотя открыта карта в мап, это плохо
- нужно убрать управление движением брашей на крестик в 2д виде, всё-таки он в хаммере для навигации использован, а тут неудобно получается, если что-то где-то вдалеке выделено, то оно двигается, а ты этого и не видешь. Использовать ползунки либо постоянно убирать выделение - это ужасно
- как насчёт рендера неба как в игре?

Добавлено 15-05-2015 в 22:25:

Джек зачем-то испоганил текстурные координаты. До:

__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))


Отправлено JPEG 15-05-2015 в 19:25:

после

__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))


Отправлено XaeroX 16-05-2015 в 05:47:

Цитата:
Yo Den писал:
модели в циклер спрайтах не прорисовываются, с монстр генерик всё ок

Правильно. В циклер-спрайтах прорисовываются спрайты.
Цитата:
Yo Den писал:
в энтити репорт было бы хорошо добавить путь к моделям и спрайтам от энтить типа циклер спрайта, чтобы можно было легко найти нужное

Оно и так предельно легко - вбиваешь key = "model" и value фрагмент нужного названия, и список обновляется.
Цитата:
Yo Den писал:
кнопка Сейв на панели предлагает сохранить в жмф, хотя открыта карта в мап, это плохо

Это прекрасно. Формат МАР предназначен для экспорта карты компилятору, а хранить исходник следует в JMF. Об этом подробно написано в FAQ.
Цитата:
Yo Den писал:
нужно убрать управление движением брашей на крестик в 2д виде

Ничего не понял. Какой крестик? Какое управление дорожным движением?
Цитата:
Yo Den писал:
как насчёт рендера неба как в игре?

Это не нужно.

Добавлено 16-05-2015 в 11:47:

Цитата:
Yo Den писал:
Джек зачем-то испоганил текстурные координаты.

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

__________________

xaerox on Vivino


Временная зона GMT. Текущее время 08:21. Страницы (90): « Первая ... « 9 10 11 12 [13] 14 15 16 17 » ... Последняя »
Показать все 1349 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024