HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashXT > XashXT/3D [Вопросы и ответы] 2 голосов
Страницы (52): « Первая ... « 46 47 48 49 [50] 51 52 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1008
Возраст: 31

Рейтинг



Цитата:
ncuxonaT писал:
переводи всё в мировое пространство

Ох если бы я знал как это сделать почему и стал тогда из паранои копипастить.

__________________
Мой мод на Xash

Сообщить модератору | | IP: Записан
Сообщение: 206193

Старое сообщение 22-12-2021 20:21
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



ncuxonaT ты сам пробовал так бороться или только другим советуешь?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 206194

Старое сообщение 22-12-2021 20:22
-
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1008
Возраст: 31

Рейтинг



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

C++ Source Code:
ShadowOmni(-var_LightVec, u_ShadowParams);

Я попробовал повернуть вектор. Нашел формулу, правда она для 2д (для 3д матрицы что ли надо юзать?) и поигрался с числами:
C++ Source Code:
1
vec3 ang = u_MeshAngles;
2
float xx = u_test; // gl_test консольное значение
3
vec3 rot = vec3( -var_LightVec.x*cos(-ang.y + xx) + var_LightVec.y * sin(-ang.y+xx), -var_LightVec.x*sin(-ang.y + xx) - var_LightVec.y*cos(-ang.y + xx), var_LightVec.z);
4
shadow = ShadowOmni( -rot, u_ShadowParams);

Повторюсь, это просто тест и попытка повернуть вектор хотя бы в 2д. Выяснилось, что при определенных значениях gl_test шадоумапа ложится идеально на конкретную модель (которая повернута). Только почему идет прибавка к углу angles я пока не понимаю.

TL: DR нужно в shadowomni повернуть вектор var_LightVec в зависимости от angles модели. Вот только как это сделать я пока не разобрался. Есть идеи у кого-нибудь?

Добавлено 23-12-2021 в 13:49:

Нашел прямую зависимость. Горизонтальный поворот шадоумапы для всех моделей адекватный. Остался вертикальный.
C++ Source Code:
1
vec3 ang = u_MeshAngles;
2
vec3 rot = vec3( -var_LightVec.x*cos(ang.y * 0.0175 + M_PI) + var_LightVec.y * sin(ang.y * 0.0175 + M_PI), -var_LightVec.x*sin(ang.y * 0.0175 + M_PI) - var_LightVec.y*cos(ang.y * 0.0175 + M_PI), var_LightVec.z);
3
4
4
shadow = ShadowOmni( -rot, u_ShadowParams);

Вот чую, уже совсем близко подобрался...

__________________
Мой мод на Xash

Сообщить модератору | | IP: Записан
Сообщение: 206204

Старое сообщение 23-12-2021 10:49
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12901
Возраст: 32

Рейтинг



А в чём прикол теней и света в локальном пространстве, зачем оно вообще используется?

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Сообщить модератору | | IP: Записан
Сообщение: 206207

Старое сообщение 23-12-2021 11:08
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
FiEctro писал:
А в чём прикол теней и света в локальном пространстве, зачем оно вообще используется?

Вот это я и пытаюсь воспомнить.

Добавлено 23-12-2021 в 15:56:

Скорее всего это как-то связано с хромом.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 206210

Старое сообщение 23-12-2021 12:56
-
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1008
Возраст: 31

Рейтинг



Продолжение эпопеи с тенями
Вот то что выше писал, переписал как матрицу, уже начинаю что-то подозревать. Это в шейдере.

C++ Source Code:
1
vec3 ang = u_MeshAngles;
2
 
3
mat3 m;
4
m[0][0] = -var_LightVec.x*cos(ang.y * 0.0175 + M_PI);
5
m[1][0] = var_LightVec.y * sin(ang.y * 0.0175 + M_PI);
6
m[2][0] = 0;
7
m[0][1] = -var_LightVec.x*sin(ang.y * 0.0175 + M_PI);
8
m[1][1] = -var_LightVec.y*cos(ang.y * 0.0175 + M_PI);
9
m[2][1] = 0;
10
m[0][2] = 0;
11
m[1][2] = 0;
12
m[2][2] = var_LightVec.z;
13
 
14
vec3 ShadowVec = m * vec3(1.0);
15
 
16
shadow = ShadowOmni( -ShadowVec, u_ShadowParams);

Как результат, тени ложатся всегда идеально на модели в горизонтальном повороте. А вот дальше я пока не совсем понимаю. Сейчас я сделал поворот шадоумапы по одной из осей. Мне нужно получается сделать еще 2 матрицы, а в конце записать так:
vec3 ShadowVec = m * m1 * m2 * vec3(1.0);

Я хоть на правильном пути? Подскажите.

Добавлено 23-12-2021 в 21:58:

Так, вот сделал все 3 матрицы. Для каждой из осей.
Та первая, вот еще две.
C++ Source Code:
1
mat3 m2;
2
m2[0][0] = -var_LightVec.x*cos(ang.x * 0.0175 + M_PI);
3
m2[1][0] = 0;
4
m2[2][0] = -var_LightVec.z * sin(ang.x * 0.0175 + M_PI);
5
m2[0][1] = 0;
6
m2[1][1] = var_LightVec.y;
7
m2[2][1] = 0;
8
m2[0][2] = var_LightVec.x * sin(ang.x * 0.0175 + M_PI);
9
m2[1][2] = 0;
10
m2[2][2] = -var_LightVec.z * cos(ang.x * 0.0175 + M_PI);
11
 
12
mat3 m3;
13
m3[0][0] = var_LightVec.x;
14
m3[1][0] = 0;
15
m3[2][0] = 0;
16
m3[0][1] = 0;
17
m3[1][1] = -var_LightVec.y * cos(ang.z * 0.0175 + M_PI);
18
m3[2][1] = var_LightVec.z * sin(ang.z * 0.0175 + M_PI);
19
m3[0][2] = 0;
20
m3[1][2] = -var_LightVec.y * sin(ang.z * 0.0175 + M_PI);
21
m3[2][2] = -var_LightVec.z * cos(ang.z * 0.0175 + M_PI);

Ну и финальный аккорд. Как их соединить?!
m * m2 * m3 * vec3(1.0) к сожалению не сработало

P.S. Все матрицы проверил. Если задать вектор как матрица * vec3(1.0) то тень ложится как надо на модель, повернутую в этой оси.

__________________
Мой мод на Xash

Отредактировано Aynekko 23-12-2021 в 19:02

Сообщить модератору | | IP: Записан
Сообщение: 206216

Старое сообщение 23-12-2021 18:58
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Aynekko перестань тратить время на ерунду

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 206223

Старое сообщение 24-12-2021 07:17
-
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1008
Возраст: 31

Рейтинг



Цитата:
Дядя Миша писал:
Aynekko перестань тратить время на ерунду

Знаю. Но уж очень интересно. Я уже почти дошел.

http://aynekko.pw/temp/test3.jpg

Я вчера ошибся в том, что каждую матрицу считал из изначального вектора. А надо было брать вектор, посчитанный предыдущей матрицей. Но есть проблема - модель может быть повернута только в одной плоскости, чтобы тень не съезжала. Кажется, я был прав, что для омни-теней нужно повернуть var_lightvec и загнать его в shadow.

__________________
Мой мод на Xash

Сообщить модератору | | IP: Записан
Сообщение: 206227

Старое сообщение 24-12-2021 08:03
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4423
Возраст: 34

Рейтинг



Цитата:
Дядя Миша писал:
Скорее всего это как-то связано с хромом.

На брашах?

Сообщить модератору | | IP: Записан
Сообщение: 206228

Старое сообщение 24-12-2021 08:04
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Aynekko писал:
Знаю. Но уж очень интересно. Я уже почти дошел.

У нас был один чудик, он три года углы Эйлера складывал. И ему тоже всё время казалось, что он "почти дошёл".

Цитата:
Crystallize писал:
На брашах?

на моделях

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 206229

Старое сообщение 24-12-2021 08:18
-
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1008
Возраст: 31

Рейтинг



Цитата:
Дядя Миша писал:
У нас был один чудик, он три года углы Эйлера складывал.

Я так и знал, что ты его упомянешь.

__________________
Мой мод на Xash

Сообщить модератору | | IP: Записан
Сообщение: 206230

Старое сообщение 24-12-2021 08:22
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Если ты понимаешь что делаешь - ты и знаешь, что ты получишь.
Если не понимаешь - у тебя миллионы вариантов перебора. Жизни не хватит.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 206231

Старое сообщение 24-12-2021 09:46
-
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1008
Возраст: 31

Рейтинг



Ну что, все пофикшено. Оказалось, нужно было просто матрицы записать в обратном порядке. Наконец-то проблема со светотенью полностью разрешилась. Правильно или нет - у меня уже нет ни сил, ни желания притрагиваться. Несколько месяцев попыток прошли не зря. Однако ж, без Дяди Миши и советом про матрицу с обратным скейлом я бы еще долго сидел.

[ Вложение ]
untitled.jpg

__________________
Мой мод на Xash

Сообщить модератору | | IP: Записан
Сообщение: 206232

Старое сообщение 24-12-2021 10:01
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Ну вообщем вернул обратно всё в мировое пространство?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 206234

Старое сообщение 24-12-2021 10:51
-
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1008
Возраст: 31

Рейтинг



Получается так? Но я сделал это в шейдере. Сделал копию var_LightVec перед тенями и повернул его в зависимости от angles модели. Я долго делал то же самое в коде, но почему-то ничего не получалось. Почем и решил взять уже вектор, который был трансформирован в вертексном шейдере. Не прогадал однакось!

__________________
Мой мод на Xash

Сообщить модератору | | IP: Записан
Сообщение: 206235

Старое сообщение 24-12-2021 10:54
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 06:32. Новая тема    Ответить
Страницы (52): « Первая ... « 46 47 48 49 [50] 51 52 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashXT > XashXT/3D [Вопросы и ответы] 2 голосов
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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