HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Зеркальное отражение
Оружия в руках у игрока
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
(_-=ZhekA=-_)
Житель форума

Дата регистрации: Jan 2006
Проживает: Москва
Сообщений: 3896
Возраст: 36

Рейтинг



Зеркальное отражение

Вот собственно вопрос, как сделать Зеркальное отражение оружия в руках у игрока ? Например в КС все изначально для левой руки, а в игру оно в правой

__________________
Kiss my ass if you don't like my Ford!
------------------------------------------
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

http://button.moddb.com/download/medium/125531.png

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

Старое сообщение 25-11-2008 20:38
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34547
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Я не пробовал, но наверное можно отразить m_protationmatrix по горизонтали в коде StudioModelRenderer.

__________________

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

Старое сообщение 25-11-2008 20:56
-
(_-=ZhekA=-_)
Житель форума

Дата регистрации: Jan 2006
Проживает: Москва
Сообщений: 3896
Возраст: 36

Рейтинг



XaeroX
По подробней бы

__________________
Kiss my ass if you don't like my Ford!
------------------------------------------
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

http://button.moddb.com/download/medium/125531.png

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

Старое сообщение 25-11-2008 21:10
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34547
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Поподробнее про что? Про отражение матриц? Нужно просто умножить ее на матрицу отражения, ее вид я точно не помню, но в инете найдешь без проблем.

__________________

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

Старое сообщение 25-11-2008 21:20
-
Flash
Житель форума

Группа: Опытный
Дата регистрации: Jul 2006
Проживает: Украина, Кривой Рог
Сообщений: 688

Рейтинг



Награды
 
[1 награда]


А не проще ли модельку отразить?
http://gamenet.com.ua/_ld/0/8_510_GFlip_v1.2.zip

__________________
Tiger! Tiger! burning bright
In the forests of the night,
What immortal hand or eye
Could frame thy fearful symmetry?

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

Старое сообщение 25-11-2008 21:58
- За что?
(_-=ZhekA=-_)
Житель форума

Дата регистрации: Jan 2006
Проживает: Москва
Сообщений: 3896
Возраст: 36

Рейтинг



Flash
Хз, с кодом у меня не получилось, а вообще я хотел бы заюзать модели из кс )

__________________
Kiss my ass if you don't like my Ford!
------------------------------------------
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

http://button.moddb.com/download/medium/125531.png

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

Старое сообщение 25-11-2008 22:47
- За что?
Scrama
СССР с интернетом и олигархами!

Дата регистрации: May 2006
Проживает: Прииртышье
Сообщений: 3737

Рейтинг



Награды
 
[1 награда]


Flash, имхо, гораздо проще )

__________________
"Злобным гениям не нужна харизма." © Shooter__Andy
"Making stuff for an "old ugly game" can be ten times more fun than grinding on a map for a dull, next-gen title." © Lunaran

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

Старое сообщение 26-11-2008 02:44
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



до рисования

code:
if (( m_pCurrentEntity->renderfx & RF_VIEWMODEL ) && ( r_lefthand->value == 1.0F )) { pglMatrixMode( GL_PROJECTION ); pglPushMatrix(); pglLoadIdentity(); pglScalef( -1, 1, 1 ); pglPerspective( r_newrefdef.fov_y, ( float ) r_newrefdef.rect.width / r_newrefdef.rect.height, 4, 131072 ); pglMatrixMode( GL_MODELVIEW ); pglCullFace( GL_BACK ); }

после рисования
code:
if (( m_pCurrentEntity->renderfx & RF_VIEWMODEL ) && ( r_lefthand->value == 1.0F )) { pglMatrixMode( GL_PROJECTION ); pglPopMatrix(); pglMatrixMode( GL_MODELVIEW ); pglCullFace( GL_FRONT ); }

Но можно, как сказал ксер тупо инвертировать m_protationmatrix[1]

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 02-12-2008 09:20
-
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Итак, поскольку Дядь Мишин вариант меня не устраивал, я покопался в StudioModelRenderer.cpp, посмотрел реализацию зеркала и kRenderFxReflection в спирите и написал код из нескольких строчек.

1. Создаём на клиенте квар cl_righthand, по умолчанию равный единице.
2. Находим функцию StudioDrawModel в StudioModelRenderer.cpp.
3. Втыкаем туда после строчки StudioSetUpTransform( 0 ); вот этот код:

C++ Source Code:
1
if(m_pCurrentEntity == gEngfuncs.GetViewModel() && !(cl_righthand->value))
2
{
3
  (*m_protationmatrix)[0][1] *= -1;
4
  (*m_protationmatrix)[1][1] *= -1;
5
  (*m_protationmatrix)[2][1] *= -1;
6
 
7
  gEngfuncs.pTriAPI->CullFace( TRI_NONE );
8
}

Вот и всё.

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

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

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

Рейтинг



Ku2zoff да ты бы мой код и не скомпилил
Нет такой функции glPerpsective ))))
PS. у тебя в коде ошибка - замени TRI_NONE на TRI_FRONT

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 07-01-2009 11:41
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34547
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
Дядя Миша писал:
у тебя в коде ошибка - замени TRI_NONE на TRI_FRONT

По идее, в этом случае будут рисоваться обратные полигоны модели. Поэтому в отраженных моделях меняют порядок обхода вершин (glFrontFace'ом) или режим кулла (glCull) на обратный. А так как TRI_BACK недоступен, он использует отключение кулла вообще.

__________________

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

Старое сообщение 07-01-2009 11:51
-
 Дядя Миша
racing for fish

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

Рейтинг



XaeroX блин, почему же я был уверен, что TRI_BACK есть. Забыл совсем.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 08-01-2009 11:55
-
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 17:18. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Зеркальное отражение
Оружия в руках у игрока
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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