HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Страницы (260): « Первая ... « 51 52 53 54 [55] 56 57 58 59 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Ребят, подскажите, в bsp какой паддинг у фрагментов лайтмапы? Один пиксель?

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

Старое сообщение 16-03-2017 15:24
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



да нет там не какова падденга. RGBRGBRGB.

Добавлено 16-03-2017 в 19:18:

PS. не надо выравнивать по трём, лайтмапа может оказаться монохромной, например в первокваке.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 16-03-2017 16:18
-
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Дядя Миша да не, я не об этом.
Вот когда рассчитываешь текстурные координаты фейса под лайтмапу, берешь обычные текстурные координаты и вписываешь их в квадрат (0,0) - (1,1). По краю делается какой-то "бортик"? Ну то есть вписывается в квадрат (0.1,0.1) - (0.9,0.9) или что-то такое?

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

Старое сообщение 16-03-2017 16:32
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
ncuxonaT писал:
берешь обычные текстурные координаты и вписываешь их в квадрат (0,0) - (1,1).

А зачем вписывать координаты в квадрат? Ты вообще изучал как в кваке сделано?
Для кажого фейса считаются экстентсы. Это высота и ширина в диффузки в пикселях. Далее, поделив их на кол-во пикселей на люксель мы узнаем экстентсы для самой лайтмапы, ну или проще говоря - её разрешение. Ну и прибавляем к получившемуся результату еденичку, в случае если получился нулевой размер лайтмапы по какому-то из измерений. Теперь, когда мы знаем размер лайтмапы - мы можем выделить под него новое место в атласе. А когда в атласе не останется места, загрузим его в видимопамять, а сами перейдем к следующей странице атласа. У нас остаются light_s и light_t - это смещения в пикселях относительно верхнева левого угла текущей страницы атласа (которая в lightmaptexturenum). Теперь, когда мы их знаем - мы можем легко расчитать текскорды длялайтмапы через DotProduct от текстурной матрицы.
C++ Source Code:
1
s = DotProduct( vec, fa->texinfo->vecs[0] ) + fa->texinfo->vecs[0][3];
2
s -= fa->texturemins[0];
3
s += fa->light_s * sample_size;
4
s += sample_size >> 1;
5
s /= BLOCK_SIZE * sample_size; //fa->texinfo->texture->width;
6
 
7
t = DotProduct( vec, fa->texinfo->vecs[1] ) + fa->texinfo->vecs[1][3];
8
t -= fa->texturemins[1];
9
t += fa->light_t * sample_size;
10
t += sample_size >> 1;
11
t /= BLOCK_SIZE * sample_size; //fa->texinfo->texture->height;

Если бы мы рассчитывали текскорды для обычных текстур нам было бы достаточно просто поделить s или t на высоту\ширину диффузки.
А для лайтмапы надо еще сделать ряд вычислений, с поправкой на то, что она находится в атласе. BLOCK_SIZE = это ширина и высота атласа (он квадратный). Но конечно никто не мешает делать прямоугольные атласы например.

Добавлено 16-03-2017 в 19:58:

А. texturemins это такая хрень, связанная с тем, что в кваке текстуры накладываются не из верхнего левого угла, а из правого нижнего или что-то в этом роде. Причём оно уже на уровне формата map, такая же въедливая гадость, как и Stupid Quake Bug и избавиться от нее удалось вроде бы как только в Quake3, даже в сорсе помоему оно осталось.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 16-03-2017 16:58
-
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Дядя Миша ну вот в атласе текстурные координаты фейса точно совпадают с его лайтмапой, или они чуть меньше? Потому что я распаковал эти фрагменты лайтмап, и у соседних кусков крайние ряды пикселей совпадают.

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

Старое сообщение 16-03-2017 17:24
- За что?
Garux
Частый гость

Дата регистрации: Mar 2015
Проживает: Металлострой
Сообщений: 98

Рейтинг



Я думаю там режим текстуры clamp_edge или типа того (nomipmaps тоже вероятно должно быть).
В к3 такая фигня с крайними пикселями, если лайтмапа внешняя задана шейдером; внутренние по-другому налаживаются, корректно.

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

Старое сообщение 16-03-2017 17:31
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Ну естественно там CLAMP_TO_EDGE, лайтмапа же уникальная для каждого фейса.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 16-03-2017 17:52
-
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Какой толк от CLAMP_TO_EDGE, если лайтмапа в атласе?
Если карта состоит из одного квадратного фейса, какие у него будут текстурные координаты лайтмапы? 0,0-1,1?

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

Старое сообщение 16-03-2017 17:59
- За что?
Garux
Частый гость

Дата регистрации: Mar 2015
Проживает: Металлострой
Сообщений: 98

Рейтинг



CLAMP_TO_EDGE это вроде clamp given texture region, don't tile, а не клапм текстуры целиком; во всяком случае практический толк очень даже толковый.

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

Старое сообщение 16-03-2017 18:52
- За что?
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Garux чо-т я такой инфы не нашел. Везде пишут, что клампятся текстурные координаты в отрезке 0-1 без каких-то регионов.

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

Старое сообщение 16-03-2017 20:16
- За что?
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Ну вот кроч. 2 куска из лайтмапы, соприкасающиеся пиксели у них совпадают, поэтому если их просто сложить рядом, получится такая ступенька. Но в игре такой ступеньки нет. Такое может быть, только если текстурные координаты сдвинуты от краев фрагмента. Так на сколько они всё-таки сдвигаются?

[ Вложение ]
lm_coords.png

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

Старое сообщение 17-03-2017 19:46
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 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: Записан
Сообщение: 165580

Старое сообщение 17-03-2017 21:02
-
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Дядя Миша где именно, в игре или вытаскивании кусков? По-моему, ни там ни там ошибок нет.

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

Старое сообщение 17-03-2017 21:10
- За что?
Crystallize
Житель форума

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

Рейтинг



Я беру у Trigger_Camera его yaw и передаю мессагой на клиент, прибавляю его ко viewangles игрока. Таким образом, утрируя, W и S всегда двигают игрока по оси камеры. Однако при стрейфе мы не движемся по ровному кругу вокруг камеры, как должны бы, а быстро уходим прочь по спирали. Чтобы идти по кругу, нужно повернуться к камере на лишние примерно 20 градусов. Это тот самый предиктинг виноват? Просто у камеры стоит SetNextThink ( 0 ), так что не похоже. Я пробовал менять cl_lc, cl_lw, безрезультатно. Попытался прикрутить для сглаживания углов функцию V_SmoothInterpolateAngles ( ) которая во view.cpp, но я вроде кормлю ей такие же vec3_t, а она выдаёт ошибку преобразования типов.

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

Старое сообщение 28-03-2017 16:47
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
Crystallize писал:
Я беру у Trigger_Camera его yaw и передаю мессагой на клиент, прибавляю его ко viewangles игрока.

Попробуй воду из одной проруби в другую переливать - тоже неплохое занятие.

Цитата:
Crystallize писал:
Это тот самый предиктинг виноват?

предиктинг никак не затрагивает углы.

Цитата:
Crystallize писал:
Однако при стрейфе мы не движемся по ровному кругу вокруг камеры

А должны? Тебе не YAW прибавлять надо, а делать VecToAngles, чтобы вьюанглесы всегда были нацелены на оригин камеры. И отключить ввод мышки.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 28-03-2017 17:16
-
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 10:04. Новая тема    Ответить
Страницы (260): « Первая ... « 51 52 53 54 [55] 56 57 58 59 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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