В параное по другому устроено, если вы неспособны из кода понять, в каком пространстве осуществляются те или иные операции, это еще не повод бездумно копипастить в надежде, что заработает.
Aynekko сделай именно так, как я сказал. Вот почему-то уверен, что ты опустил какую-то часть операций по принципу - если станет лучше, то доделаю. А может у тебя кэши шейдеров не обновились (редко, но бывает).
Дядя Миша писал: И вот здесь еще попробуй заменить на m_plightmatrix.
Так все ломается. Свой скейл из шейдера убрал - тоже.
Цитата:
Дядя Миша писал: С инверсным скейлом.
Да, в предыдущем посте внизу перечислил все изменения.
Цитата:
Дядя Миша писал: И после всего сделанного ты утверждаешь
Ну где же я утверждаю? Я наоборот сказал, что очень помогло. Просто после твоих изменений по матрицам я дополнительно дописал скейл в шейдер, в этот вектор. Результат всего вот этого вот показал на скринах.
По сути осталось разобраться с тенями от точечного. Но т.к. я их сам притащил, мог где-то ошибиться... Но проблема исключительно на моделях. Трава, браши - норм.
Дядя Миша писал: Странно. Если позиция лайта уже в локальном пространстве с учётом скейла, то ничего этого просто не нужно. А она именно что с учётом.
Затухание обратно пропорционально квадрату расстояния в мировом пространстве. Если переводить лайт в локальное пространство модели, разве расстояние получится равным мировому?
ncuxonaT писал: Если переводить лайт в локальное пространство модели, разве расстояние получится равным мировому?
с учётом того, что мы инвертировали скейл - да, должно получиться тоже самое расстояние.
Но тут дело в другом. Надо радиус перевести в локальное пространство модели и пересчитать фаллофф заново. Это всё усложняет, теряется смысл.
Надо вспомнить, почему свет считается именно в локальном пространстве, для начала. Потому что изначально в P2 он считался в мировом, а тут я его переделал на локальное. Вот надо вспомнить почему.
Сейчас кое-что понял насчет теней от динлайта. Т.к. проекция не учитывает angles, я пытался нарыть хоть что-то и обнаружил вот такую прямую зависимость (см. аттач). Со скейлом проблем нет, только angles.
Координаты проекции теней берутся из (-pl->projectionMatrix[2][2], pl->projectionMatrix[3][2]), я стал крутить ее и так и сяк, но нужного результата не получил. Как мне ее повернуть на angles модели? Или что-то еще сделать, чтобы она это учитывала?
Я пробовал делать так
Метод тыка можно использовать, когда у тебя 2-3 варианта. В остальных случаях надо понимать что ты делаешь.
Добавлено 22-12-2021 в 20:02:
Хотя. Вот я сейчас пытаюсь побороть лайт-лики от радиосити на всратой геометрии. Мне известна причина их появления, мне известен способ борьбы, он уже дал положительный результат, ну а толку? Сижу и всё равно тыкаю, смотрю как будет лучше.
Ну вот я уже понял, что мне надо повернуть эту pl->projectionmatrix. Наверное. Пробую еще вариант. Уже полез читать про матрицы и вроде это то что нужно, но не работает. Есть какие-то идеи?
Что в эту матрицу пишется? И сколько элементов в массиве? Тема матриц чисто математически не такая уж и сложная, мне сложнее дались пределы и дифференцирование функций. Но, чтобы знать, какие операции и как можно проводить с матрицами, для начала желательно научиться считать детерминанты. И поупражняться на бумаге в транспонировании, расчёте обратных матриц и разных преобразованиях. Можно конечно ничего не учить, а просто нагуглить необходимые операции.
Тут fov x, fov y, ближняя и дальняя дистанции. Проблема еще в том, что я пока не до конца уверен, на правильном ли я пути вообще. Но факт в том, что данные из этой матрицы засылаются в шейдер для проецирования теней на модель. Я сделал копию этой матрицы (matrix4x4 OmniShadowMatrix = pl->projectionMatrix) и теперь пытаюсь ее как-то изменить, чтобы заслать в шейдер. Но все без толку пока.
Вот еще скрин прикрепил. У моделей за спиной у нпс angles 0 0 0 и разный скейл. Все идеально. А по бокам дичь…потому что angles нестандартный. Хрен пойми как ее повернуть.
Добавлено 22-12-2021 в 22:14:
Цитата:
Ku2zoff писал: Можно конечно ничего не учить, а просто нагуглить необходимые операции.
Хех, да было дело в далеком в 2009 году, когда я учился этому и даже что-то соображал. Уже забыл абсолютно все, за ненадобностью. Кто ж знал, что это сейчас пригодится. Я и в кодинг не лез никогда до прошлого года-то.