HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > [Тутор] Кастомный фов для вьюмодели
как в хл2
Страницы (3): « 1 2 [3]   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

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

Рейтинг



PLut да все по прежнему, я от своих слов не отказуюсь.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 09-01-2010 21:25
-
PLut
Creator

Дата регистрации: Jun 2009
Проживает: Санкт-Петербург
Сообщений: 1220
Возраст: 30

Рейтинг



Exclamation

Прошу прощения за поднятие старой темы, но я исправил неприятный баг со сдвигом аттачментов во время движения, либо когда осматриваешься. На самом деле всё просто: заменил оригин и углы из класса CStudioModelRenderer на глобальные вектора v_origin, v_angles.

Надо в StudioModelRenderer.cpp заменить всю функцию StudioFormatAttachment.

Код ниже. Я немного перелопатил его в ходе выяснения причины бага, смотрел как в хл2бета сделано.

C++ Source Code:
1
extern vec3_t v_origin, v_angles;
2
 
3
void CStudioModelRenderer::StudioFormatAttachment( int nAttachment, bool bInverse )
4
{
5
  float worldx = tan( (float)gHUD.m_iFOV * M_PI / 360.0 );
6
  float viewx = tan( m_flViewmodelFov * M_PI / 360.0 );
7
 
8
  // aspect ratio cancels out, so only need one factor
9
  // the difference between the screen coordinates of the 2 systems is the ratio
10
  // of the coefficients of the projection matrices (tan (fov/2) is that coefficient)
11
  float factor = worldx / viewx;
12
 
13
  vec3_t vForward, vRight, vUp;
14
  AngleVectors( v_angles, vForward, vRight, vUp );
15
 
16
  // Get the coordinates in the viewer's space.
17
  Vector tmp = m_pCurrentEntity->attachment[nAttachment] - v_origin;
18
  Vector vTransformed( DotProduct( vRight, tmp ), DotProduct( vUp, tmp ), DotProduct( vForward, tmp ) );
19
 
20
  // Now squash X and Y.
21
  if ( bInverse )
22
  {
23
    if ( factor != 0 )
24
    {
25
      vTransformed.x /= factor;
26
      vTransformed.y /= factor;
27
    }
28
    else
29
    {
30
      vTransformed.x = 0.0f;
31
      vTransformed.y = 0.0f;
32
    }
33
  }
34
  else
35
  {
36
    vTransformed.x *= factor;
37
    vTransformed.y *= factor;
38
  }
39
 
40
  // Transform back to world space.
41
  Vector vOut = (vRight * vTransformed.x) + (vUp * vTransformed.y) + (vForward * vTransformed.z);
42
  m_pCurrentEntity->attachment[nAttachment] = v_origin + vOut;
43
}


Надеюсь, что помог кому-нибудь

__________________
Base Defense on Steam, ModDB

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

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

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

Рейтинг



Цитата:
PLut писал:
Прошу прощения за поднятие старой темы

если пишешь по делу - извиняться не надо. А наоборот молодец.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 10-12-2010 15:26
-
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 09:14. Новая тема    Ответить
Страницы (3): « 1 2 [3]   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > [Тутор] Кастомный фов для вьюмодели
как в хл2
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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