HLFX.Ru Forum
Показать все 109 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Телевизор в ХЛ (https://hlfx.ru/forum/showthread.php?threadid=1040)


Отправлено Ku2zoff 03-12-2007 в 08:34:

Arrow Телевизор в ХЛ

Недавно я узнал про AviKit. Эта вещь позволяет воспроизводить avi-файлы внутри игр. Есть даже мод для ХЛ, телик работает по принципу монитора в Xash. Но сорцев мода нету. Я прошу всех заинтересованных помочь в разработке исходников. [Или XaeroX'a выложить то, что он по этому поводу делал ]

Здесь можно скачать мини-мод и исходники демок авикита:
http://randomnine.wootfu.com/project.php?p=18


Отправлено FiEctro 04-12-2007 в 10:04:

>> принципу монитора в Xash

Нифига не по принципу мониторов ...
Т.к. ксаш рисует на текстуру , авкит же рисует просто плоскость .... Но впринципе можно сделать и для текстуры , сделайте в движке "второй монтор" и заставьте на него проецировать ролик ...
Кстати там демокарта глючная ... Юзайте мою ...

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


Отправлено Ku2zoff 05-12-2007 в 08:13:

Итак, вопрос: как сделать, чтобы энтитя считывалась непосредственно клиентской длл и все её параметры тоже?(естественно, на сервере она уже закреплена за классом)


Отправлено PoD-Stas 09-12-2007 в 12:40:

Я считаю так же как в спирите спрайты на поверхности брашей ?! Это можна присобачить впринципе, но. Есть пару "но"


Отправлено Ku2zoff 17-03-2008 в 16:45:

Вот, поднял старую тему, не плюсуйте плз, мне нужно несколько советов:

1. откуда лучше вызывать загрузку видеоролика?
(Предполагаю, что это Hud_Init)

2. откуда вызвать обновление видеотекстуры(смена кадров) и что за переменную можно использовать в качестве времени воспроизведения?(Hud_Redraw, Hud_Think, CalcRefdef)

3. И есть ли способ не использовать fmod для воспроизведения звука? Или лучше можно ли подгрузить уже загруженную дллку фмода от MP3 плеера, чтобы музыка не остановилась и был звук из ролика?


Отправлено Дядя Миша 17-03-2008 в 17:11:

-CJ- ну хватит уже с умным видом нести фигню
Ну эксперты кругом, куда ни плюнь!
Ku2zoff делай по принципу видеотекстур в ку3.
и вся недолга.

Добавлено 17-03-2008 в 20:11:

1. видеоролики грузить не нужно, они потоком проигрываются, можешь выполнять инициализацию по мессаге.
2. Обновлять из калкрефдеф
3. Вряд ли


Отправлено Ku2zoff 17-03-2008 в 17:20:

Дядя Миша по принципу видеотекстур из ку3? Я исходники глянул, чуть голову не сломал, решил больше в них не возвращаться(пока не закончу мод для ХЛ) Но всё-таки гляну как там сделано. Вообще я за основу взял монитор из ксаша. Я на него проецировал произвольные текстуры, вообще от фонаря взятые. Например детальную текстуру(но как в паранойе у меня всё равно не получилось )...
Придётся ещё качать статик либы фмода...


Отправлено Дядя Миша 17-03-2008 в 17:36:

>>Придётся ещё качать статик либы фмода...
да ты его динамически подключи, в чем проблема-то?
а в кутри очень просто сделано и очень разумно, просто чтобы разобраться нужно время, загляни в cl_video.c


Отправлено FiEctro 17-03-2008 в 18:35:

Дядя Миша Ты дату поста смотрел ?
хотя насчет плоскости всеже вохзможно я прав , т.к. в хамере даже задаётся его разрешение ....

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


Отправлено Дядя Миша 17-03-2008 в 19:17:

-CJ- у глупости, равно как и у правды не выходит срок (С)
а если ты не понимаешь что такое плоскость и как она образована - это не моя вина.


Отправлено Ku2zoff 17-03-2008 в 20:29:

Цитата:
Дядя Миша писал:
загляни в cl_video.c


Я нашёл тока ui_video.c Может версии исходников разные? У меня Quake v3-1.32b
В общем в авиките всё просто, надо только это правильно распихать по клиентской дллке ХЛ. И ещё найти способ создать область в которой и будет рисоваться текстура(можно отправить через мессагу индекс энтити и прилепить к её координатам и направлению + имя видеоролика и проч.).


Отправлено Дядя Миша 17-03-2008 в 21:02:

А сорьки, не cl_video.c а cl_cin.c

code:
void Draw_StretchRaw (int x, int y, int w, int h, int cols, int rows, byte *data, bool dirty) { int i, j; qglFinish(); GL_Bind(0); qglTexImage2D (GL_TEXTURE_2D, 0, gl_tex_solid_format, cols, rows, 0, GL_RGBA, GL_UNSIGNED_BYTE, data ); qglTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, gl_filter_max); qglTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gl_filter_max); R_SetGL2D(); qglColor4fv(gl_state.draw_color); qglBegin(GL_QUADS); qglTexCoord2f( 0.5f / cols, 0.5f / rows ); qglVertex2f (x, y); qglTexCoord2f((cols - 0.5f) / cols , 0.5f / rows ); qglVertex2f (x+w, y); qglTexCoord2f((cols - 0.5f) / cols, (rows - 0.5f) / rows ); qglVertex2f (x+w, y+h); qglTexCoord2f(0.5f / cols, ( rows - 0.5f )/rows ); qglVertex2f (x, y+h); qglEnd(); }

Смысл в чем - грузим наш кадр в видеопамять, тут же его биндим и рисуем. Поскольку кадров в секунду получается штук 15-20, а размер кадра от силы 200х160 (мы же маленький телевизор делаем, верно?) то на общей производительности это никак не скажется.
Код в данном случае предназначен для отрисовки видео в полный экран, но никто нам не запретит скормить ему координаты какого-нибудь полигона на карте (ессно R_SetGl2D надо убрать и glFinish тоже).

Добавлено 18-03-2008 в 00:02:

Про область - все элементарно, смотри как подобная текстура для монитора находится в Xash. Нам понадобится текстура с ключевым именем, типа "video", новый флаг SURF_VIDEO (по аналогии с SURF_PORTAL и SURF_MIRROR) ну и все остальное можно тупо скопипастить из кода камеры.
Единственная разница - это то, что вместо
code:
void R_NewScreenRenderPass( void ) { if (m_pCurrentScreen) { glBindTexture(GL_TEXTURE_2D, m_pCurrentScreen->texture); if(m_pCurrentScreen->color == 0 && !g_HardwareShaderCapable)//support for old video cards glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE8, 0, ScreenHeight - VIEWPORT_SIZE, VIEWPORT_SIZE, VIEWPORT_SIZE, 0); else glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, ScreenHeight - VIEWPORT_SIZE, VIEWPORT_SIZE, VIEWPORT_SIZE, 0); } }

Нам нужно будет грузить новый кадр из авишки. И естественно убрать проход в CalcRefDef, поскольку телевизор не требует отдельного прохода.
Как-то так.


Отправлено XaeroX 18-03-2008 в 04:10:

Дядя Миша ты хочешь сказать, что они вызывают glTexImage2D для загрузки кадра текстуры? Кармак что, с перепоя этот код писал? Для кого glTexSubImage2D придумали...
А фмод - он и так загрузится один раз, и все глобальные параметры будут общие. Если ты конечно его как дллку грузишь (динамически или статически - не важно, главное что не либу).

__________________

xaerox on Vivino


Отправлено Дядя Миша 18-03-2008 в 06:50:

XaeroX знаешь у меня на 9800 порою glBegin\glEnd работает быстрее чем VBO, поэтому я промолчу про glTexSubImage.


Отправлено Ku2zoff 18-03-2008 в 06:57:

>>поскольку телевизор не требует отдельного прохода

??? я не знал. Вообще хорошо бы чтоб и монитор не требовал, а зеркало только осталось. fmod я загружу динамически, без статик либов, чтоб кашу в коде не делать. Я ещё не смотрел можно ли ставить ролик на паузу. Хотя если там за время ролика считается время аудиопотока, то логично будет рассудить, что если аудио на паузе, то и кадр остановится.

Проблема в размере видеороликов. Если делать их со сжатием, то придётся вместе с модом устанавливать видеокодек.


Отправлено Дядя Миша 18-03-2008 в 15:24:

>>Вообще хорошо бы чтоб и монитор не требовал
ну а как ты будешь рисовать два разных места за один проход?
Телевизор - другое дело, тебе надо всего лишь отрисовать содержание авишки.


Отправлено Ku2zoff 18-03-2008 в 16:01:

Итак, бродя по просторам инета, я наткнулся на код. Это код для ХЛ, код прорисовки видеотекстуры, в нём использован авикит. Но это только отрывок. Вот он:

C++ Source Code:
1
// Only setup the avi if it's actually a video screen
2
 
3
if (isVideoScreen && replacement[0] != '\0') {
4
  char *error_msg = NULL;
5
  long xres = 0;
6
  long yres = 0;
7
  float duration = 0.0f;
8
 
9
  movie = new AVIKit( absolute_replacement, false );
10
  if (movie->getError( &error_msg ) != AVIKIT_NOERROR) {
11
    gEngfuncs.Con_DPrintf( "SetupAvisFromEntities: Error opening %s: %s\n", absolute_replacement, error_msg );
12
    delete movie;
13
    break;
14
  }
15
  movie->getVideoInfo( &xres, &yres, &duration );
16
  gEngfuncs.Con_DPrintf( "SetupAvisFromEntities: Opened %s: %ld x %ld (%f secs)\n", replacement, xres, yres, duration );
17
  gEngfuncs.Con_DPrintf( "Video screen at (%d %d %d), with extents (%d %d %d)\n",
18
  (int)origin[0], (int)origin[1], (int)origin[2],
19
  (int)extents[0], (int)extents[1], (int)extents[2] );
20
 
21
  // Create the OpenGL texture
22
  GLuint texnum;
23
  glGenTextures( 1, &texnum );
24
 
25
  if (!AddComplexAvi( movie, texnum, origin, angles, extents, &error_msg )) {
26
    gEngfuncs.Con_DPrintf( "SetupAvisFromEntities: Error adding movie: %s\n", error_msg );
27
    delete movie;
28
  }
29
} else if (isVideoScreen) {
30
  gEngfuncs.Con_DPrintf( "SetupAvisFromEntities: Video screen didn't have a movie specified!\n" );
31
}
32
 
33
//Setting up the texture:
34
 
35
movie->getVideoInfo( &data->width, &data->height, &data->total_length );
36
glEnable( GL_TEXTURE_2D );
37
glBindTexture( GL_TEXTURE_2D, data->texture_index );
38
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
39
glTexImage2D( GL_TEXTURE_2D, 0, 3, data->width, data->height, 0, GL_RGB, GL_UNSIGNED_BYTE, tmpbuffer );
40
 
41
//Updating the texture each frame:
42
 
43
// Calculate the frame needed
44
int frame = i->movie->getVideoFrameNumber( i->current_time );
45
 
46
// If the frame has changed, re-upload it
47
if (frame != i->current_frame) {
48
  i->current_frame = frame;
49
  i->movie->getVideoFrame( (char*)i->buffer, frame );
50
 
51
  // If the video isn't a power of two on all sides, we need to resize it... <img src="images/smilies/frown.gif" border="0" alt="">
52
  if (i->resized_buffer) {
53
    gluScaleImage( GL_RGB, i->realwidth, i->realheight, GL_UNSIGNED_BYTE, i->buffer, i->width, i->height, GL_UNSIGNED_BYTE, i->resized_buffer );
54
    // ... and update the OpenGL texture ...
55
    glEnable(GL_TEXTURE_2D);
56
    glBindTexture( GL_TEXTURE_2D, i->texture_index );
57
    glTexSubImage2D( GL_TEXTURE_2D, 0, 0, 0, i->width, i->height, GL_RGB, GL_UNSIGNED_BYTE, i->resized_buffer );
58
  } else {
59
    // ... and update the OpenGL texture ...
60
    glEnable(GL_TEXTURE_2D);
61
    glBindTexture( GL_TEXTURE_2D, i->texture_index );
62
    glTexSubImage2D( GL_TEXTURE_2D, 0, 0, 0, i->width, i->height, GL_RGB, GL_UNSIGNED_BYTE, i->buffer );
63
  }
64
}
65
 
66
// If this is a complex movie, draw the polygons
67
if (i->texture_type == AVI_TEXTURE_USER) {
68
 
69
  glEnable( GL_TEXTURE_2D );
70
  glBindTexture( GL_TEXTURE_2D, i->texture_index );
71
  glDisable( GL_BLEND );
72
  glBegin( GL_QUADS );
73
 
74
  // Top left
75
  glColor3f( 1.0f, 1.0f, 1.0f );
76
  glTexCoord2f( 0.0f, 1.0f );
77
  glVertex3f( i->vertexes[0].x, i->vertexes[0].y, i->vertexes[0].z );
78
 
79
  // Bottom left
80
  glColor3f( 1.0f, 1.0f, 1.0f );
81
  glTexCoord2f( 0.0f, 0.0f );
82
  glVertex3f( i->vertexes[1].x, i->vertexes[1].y, i->vertexes[1].z );
83
 
84
  // Bottom right
85
  glColor3f( 1.0f, 1.0f, 1.0f );
86
  glTexCoord2f( 1.0f, 0.0f );
87
  glVertex3f( i->vertexes[2].x, i->vertexes[2].y, i->vertexes[2].z );
88
 
89
  // Top right
90
  glColor3f( 1.0f, 1.0f, 1.0f );
91
  glTexCoord2f( 1.0f, 1.0f );
92
  glVertex3f( i->vertexes[3].x, i->vertexes[3].y, i->vertexes[3].z );
93
 
94
  glEnd();
95
}

Имея этот код и исходники демок авикита можно написать видеоплеер для ХЛ. Тут меня тормозит недостаток знаний C++ и OpenGL, а также недостаточное знание структуры клиентской дллки ХЛ(С сервером я намного дружнее). Но я буду думать, постараюсь сделать, тем более что есть образцы мониторов в Xash.


>>ну а как ты будешь рисовать два разных места за один проход?

А если мне надо нарисовать две разных авишки на одной карте? (Маловероятно, но чего в жизни не бывает )
Значит и у монитора можно ограничиться одним проходом, но лимит мониторов на карте будет более чем скромный: не более одного. Или не более одного в поле зрения игрока?


Отправлено Дядя Миша 18-03-2008 в 16:06:

>>А если мне надо нарисовать две разных авишки на одной карте?
да хоть сто! ты ведь берешь картинку из видеофайла.
>>Значит и у монитора можно ограничиться одним проходом
Xash сам регулирует кол-во проходов в зависимости от кол-ва мониторов в непосредственной видимости игрока.
Например на карте Breakable Demo при непосредственной видимости 3х мониторов делается 4 прохода.


Отправлено Ku2zoff 18-03-2008 в 16:10:

>>да хоть сто! ты ведь берешь картинку из видеофайла.

Точно! Что же я несу! Проходы нужны для извлечения картинки из игрового экрана, а в видеофайле кадр уже есть.


Отправлено Дядя Миша 18-03-2008 в 17:34:

Ku2zoff не в игровом экране дело.
Представь себе ДВА места, которые никоим образом не видны друг из друга. Как же их можно нарисовать иначе, если не за два раза?


Отправлено Ku2zoff 19-03-2008 в 21:31:

Итак, сегодня я полночи провозился с авикитом. В результате при инициализации рендера(в самом конце загрузки) игра повисает и завершается только диспетчером задач. Но прогресс уже есть: играется звук из ролика, чего раньше не было. Вызвал я это дело из V_CalcRefdef. Может надо инициализировать авишку чуть пораньше, например из Худ_ВидИнит, а обновление вызывать из КалкРефдеф? А то я всё из Рефдефа вызвал.


Отправлено Дядя Миша 20-03-2008 в 06:12:

Ku2zoff да забрось ты этот глючный авикит, лучше с нуля написать декомпрессор или использовать виндовый.


Отправлено Ku2zoff 20-03-2008 в 11:07:

Дядя Миша с нуля у меня написать не получится, если использовать виндовый, то мне надо найти исходники... Ещё немного подумаю, не хочется всё бросать, ведь только начал понимать как авикит работает(и как фмод работает)

Добавлено 20-03-2008 в 17:07:

Итак, прогресс налицо. Ролик нормально открывается, воспроизводится и ставится на паузу(если это можно назвать паузой). Но слышен только звук - ОпенГЛ текстура не генерируется. Но думаю с этим можно разобраться.


Отправлено Дядя Миша 20-03-2008 в 15:57:

ну значит нарисовал неверна!
я к чему говорил-то: авикит дллка, да плюс sdl, да еще fmod а ни дохрена ли мусора ради проигрывания видео?


Отправлено Ku2zoff 20-03-2008 в 18:25:

Дядя Миша а sdl обязательно надо? Мож из-за того, что я его отцепил ничё и не работает?


Отправлено Дядя Миша 21-03-2008 в 07:46:

Ku2zoff я уже и не помню. Посмотри мод для хл - есть он там или нету?


Отправлено Ku2zoff 21-03-2008 в 10:34:

Дядя Миша sdl в моде нет, как я понял, он нужен для создания окна и управления сценой - движения камеры и т.п.


Отправлено Дядя Миша 21-03-2008 в 15:37:

Ku2zoff ну значит что-то неверно сделал. Может вертексы у тебя не в том порядке обходятся.


Отправлено Ku2zoff 21-03-2008 в 17:19:

>>я к чему говорил-то: авикит дллка, да плюс sdl, да еще fmod а ни дохрена ли мусора ради проигрывания видео?

Дядя Миша я решил авикит не использовать. Т.К. он действительно глючный. Нашёл статью некоего Джеффа Молофи(Jeff Molofee aka NeHe) Всё тоже самое, тока мусора нету. Используется виндовый видео декомпрессор. Правда, в примере нет проигрования звука, но это не суть важно, его можно воспроизводить через фмод, который уже подключен к спириту Killar'oм.


Отправлено Дядя Миша 21-03-2008 в 19:21:

Ku2zoff что-ни день - удивительные открытия у тебя
совет тебе дам добрый - не юзай асм из этой статьи, GL_BGR будет вполне достаточно, просто тутору уже лет 6-7.


Отправлено fire64 09-08-2010 в 12:23:

Есть какие-либо новости по этому делу ?

А то мне очень бы пригодилась возможность проигрывать видео на весь экран при загрузке игры, при загрузке карты или при вызове из энтити.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 09-08-2010 в 13:03:

fire64 да бери вон в ксаше есть поддержка видеотекстур.

__________________
My Projects: download page

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

Цитата:

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


Отправлено fire64 09-08-2010 в 13:05:

Цитата:
Дядя Миша писал:
fire64 да бери вон в ксаше есть поддержка видеотекстур.

Ок, сейчас гляну.

А где конкретно ?

Что-то я в xash sdk0.7 ничего похожего не нашел.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено GSen 09-08-2010 в 15:48:

Цитата:
Дядя Миша писал:
fire64 да бери вон в ксаше есть поддержка видеотекстур.


поподробнее пожалуйста) Как заюзать и т.п.?


Отправлено Дядя Миша 09-08-2010 в 16:20:

для начала надо создать видео в формате roq.
Потом создаем шойдер кутришный для нашего видио:
какой-нить файлик с именем .shader (впрочем можно добавить в те, что уже лежат в папке scripts, это без разницы).
Сам шойдер будет выглядеть примерно вот так:

C++ Source Code:
1
DRKMTL_SCRN3//это имя нашей текстурки на карте
2
{
3
  {
4
    videoMap		video01.roq // видеофайл с таким
5
    // названием следует положить в папку media
6
  }
7
}

Собствено всё. Ставим на карту браш с текстуркой DRKMTL_SCRN3, компилим, запускаем и ога.

__________________
My Projects: download page

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

Цитата:

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


Отправлено fire64 09-08-2010 в 16:40:

Мда.
Это совсем не то, ладно попытаюсь сам реализовать то, что мне надо.

Мне просто нужно проигрывание видео не на "телевизоре", а в самой игре.

То Есть как в конце Episode I, но все равно спасибо.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено GSen 09-08-2010 в 16:44:

fire64 сделай камеру чётко по центру чтобы нельзя было бошкой вертеть и воспроизводи видео


Отправлено fire64 09-08-2010 в 16:45:

Угу, только еще ведь надо думать как имплементировать q3 шейдеры в клиент half-Life

гм
А как же звук ?

Или мне его отдельным файлом загружать ?

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 09-08-2010 в 18:17:

Цитата:
fire64 писал:
Мне просто нужно проигрывание видео не на "телевизоре", а в самой игре.

То Есть как в конце Episode I, но все равно спасибо.

дык набери в консоли movie (имя видео из папки media) будет полноэкранное видео со звуком.
Но это только для ксаша конечно

__________________
My Projects: download page

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

Цитата:

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


Отправлено fire64 09-08-2010 в 20:01:

Завтра продолжу мучить AviKit.
Эх, вот бы еще добыть поддерживаемый им Avi файл.

Пока нашел один с поддержкой видео, о звуке речь и не идет.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Jackass 10-08-2010 в 07:39:

Хм.. AviKit... Дек он вроде в Arrangement реализован. И в исходниках валяется. Гляньте в них, может там есть ответы на все вопросы.

__________________
Не оружие убивает людей... А С++


Отправлено PLut 10-08-2010 в 07:42:

Jackass То что валяется в исходниках - не значит что реализован.

__________________
Base Defense on Steam, ModDB


Отправлено Jackass 10-08-2010 в 07:44:

Плут.. я же код аранджемента не смотрел досконально. Может быть там это реализовано... не знаю...

__________________
Не оружие убивает людей... А С++


Отправлено fire64 10-08-2010 в 10:40:

Цитата:
Jackass писал:
Плут.. я же код аранджемента не смотрел досконально. Может быть там это реализовано... не знаю...


Там действительно лежит AviKit, однако он не имплементироован в сам мод.
Просто лежит в отдельной папке и все.

Добавлено 10-08-2010 в 14:40:

Мда. что-то рендер не работает, да и вообще, что-то не то.
Набросал небольшой код.

В
C++ Source Code:
void CHud :: VidInit( void )


добавил

C++ Source Code:
m_pVideoRen = new CVideo( "\\media\\Valve.avi" );


в V_CalcRefdef

добавил

C++ Source Code:
m_pVideoRen->DrawVideo( );


Результат следующий, звук воспроизводится, но криво ( хз может видео кривое ).

Видео не рендерится.

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

При выходе из приложения, ошибка "Память не может быть read ).


Код прилагаю.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено fire64 10-08-2010 в 15:26:

Подправил код, а толку 0, не рендерит

Добавлено 10-08-2010 в 19:26:

Нашел OpenSource движок с поддержкой видео
http://sigelengine.googlecode.com/svn/trunk/Video.cpp

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено CrazyRussian 10-08-2010 в 16:26:

тем временем СразуРашшен уже расковырял авикит и смотрит в своем убийце кризиса онемэ:
http://pix.academ.org/img/2010/08/1...d32eb72fbde.jpg
осталось только прикрутить звук и разобраться с тормозами.

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов


Отправлено fire64 10-08-2010 в 16:55:

CrazyRussian, поделишься с общественностью кодом ?

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 10-08-2010 в 20:52:

Цитата:
CrazyRussian писал:
тем временем СразуРашшен уже расковырял авикит и смотрит в своем убийце кризиса онемэ:
http://pix.academ.org/img/2010/08/1...d32eb72fbde.jpg

я когда-то (когда avikit только появился) глядел его на PIII-600 и GeForce2 MX. Я тогда сразу подумал - блин. неплохая ведь фишка, но моя машинка её явно не тянет - всего 15 фпс. CrazyRussian убедительно доказал, что даже на 8600GTS этот код способен выдавать ненамногим больше )
Хотя разница в производительности у этих карточек - несколько порядков.

__________________
My Projects: download page

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

Цитата:

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


Отправлено CrazyRussian 10-08-2010 в 21:40:

Осталось для чистоты протестировать видео с размерами степени двойки.

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов


Отправлено fire64 11-08-2010 в 07:41:

CrazyRussian, с общественность кодом делиться не собираешься ?

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено CrazyRussian 11-08-2010 в 09:26:

Цитата:
fire64 писал:
CrazyRussian, с общественность кодом делиться не собираешься ?

о господи, ну выложу, а общественность осилит в нем разобраться?
Код до ума не доведен, так что попрошу не кричать что у меня руки не из плеч.

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов


Отправлено fire64 11-08-2010 в 10:07:

CrazyRussian, правильно ли я понял ?

code:
model_t *world = gEngfuncs.GetEntityByIndex(0)->model; texture_t* tex = (texture_t*)world->textures; for (int i = 0; i < world->numtextures; i++) { LoadAviForTexture( tex[i] ); }

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено GSen 11-08-2010 в 10:28:

доводите до конца)


Отправлено CrazyRussian 11-08-2010 в 10:29:

Угу, потом каждый кадр надо вызывать RefreshBspAvis. Текстуры называть avi@xxxxxxxx где 8 символов после avi@(прям как в dos) - название авишки.
И вот это ололо:

C++ Source Code:
//glGenTextures(1,(GLuint*)&tex->gl_texturenum);
tex->gl_texturenum=1;

можно убрать

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов


Отправлено XaeroX 11-08-2010 в 10:33:

Дядя Миша
Не знаю, у меня ничего не тормозило.
Я, правда, использовал не сам ави-кит, а свой код написал на его основе, но тем не менее. Хотя не помню - это ж 6 лет прошло, не меньше.

__________________

xaerox on Vivino


Отправлено FiEctro 11-08-2010 в 10:37:

XaeroX
Выложил бы народу. А то как видишь, тормозит у всех.

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


Отправлено fire64 11-08-2010 в 10:38:

Ок, теперь такой вопрос.

Можно ли вместо Z_Malloc использовать обычный malloc ?
Или же придется использовать код из кваки ?

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено CrazyRussian 11-08-2010 в 10:45:

Цитата:
fire64 писал:
Можно ли вместо Z_Malloc

можно, тока надо еще освобождение ресурсов дописать.
Цитата:
CrazyRussian писал:
Осталось для чистоты протестировать видео с размерами степени двойки.

И фпс вырастет примерно в 8 раз.
пруфпик - http://pix.academ.org/img/2010/08/1...e8f2b4b4908.jpg

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов


Отправлено fire64 11-08-2010 в 11:32:

Скинь нормальный CPP файл, потому, что в том, что ты прилепил вообще части кода не хватает.

Приведу пример:

C++ Source Code:
1
for(int i=0;i
2
{
3
  avi_tex->audio_buff[i]=(byte*)Z_Malloc(sample_rate*channels* bps*is16bit ? 2:1);
4
  avi_tex->timeoffsets[i]=0;
5
}


я там написал
C++ Source Code:
for(int i=0; i < avi_tex->num_channels; i++ )


но не уверен, что верно, и так во многих местах.


Короче, что я сделал.
в avikit.h добавил:

C++ Source Code:
long NumVideoFrames( ) { return video_frames; };


в view.cpp в функцию V_CalcRefdef добавил RefreshBspAvis();

в tri.cpp в функцию HUD_DrawNormalTriangles добавил:

C++ Source Code:
1
model_t *world = gEngfuncs.GetEntityByIndex(0)->model;
2
 
3
texture_t** tex = (texture_t**)world->textures;
4
 
5
for (int i = 0; i < world->numtextures; i++)
6
{
7
  LoadAviForTexture( tex[i] );
8
}


И еще, что такое R_FrameTime ?

я написал

C++ Source Code:
1
int R_FrameTime()
2
{
3
  return 1;
4
}


п.с.
ошибки в консоли:
http://a.imageshack.us/img836/8922/errorplay.jpg

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 11-08-2010 в 11:44:

Если видео не со степенями двойки, то на многих старых видюхах будет белый экран, а на некоторых новых - ощутимые тормоза. Надо либо рескейлить текстуру на лету (это медленно!), либо использовать rectange texture (это православно), либо выводить лишь фрагмент текстуры со степенями двойки, а фрагмент этот обновлять через glTexSubImage2D (это максимально совместимо).

__________________

xaerox on Vivino


Отправлено CrazyRussian 11-08-2010 в 12:03:

Цитата:
fire64 писал:
в tri.cpp в функцию HUD_DrawNormalTriangles добавил:

Ага, и каждый кадр грузишь видео, когда надо один раз (из CHud::VidInit наверное)

Цитата:
fire64 писал:
И еще, что такое R_FrameTime ?

Время за которое у нас кадр отрисовался, как я помню, в халфе можно взять его из pparams->frametime.
Цитата:
fire64 писал:
ошибки в консоли:

файл с видео не найден, очевидно же, все потому что он грузиться из папки data а не из папки мода.
C++ Source Code:
avi_tex->Avi=new AVIKit(VA("data/textures/video/%s.avi",vidname));

data надо заменить на название папки мода, а еще лучше заменить вот так:
C++ Source Code:
avi_tex->Avi=new AVIKit(VA("%s/textures/video/%s.avi",gEngfunc.pfnGetGameDirectory(),vidname));


Цитата:
fire64 писал:
что в том, что ты прилепил вообще части кода не хватает.

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

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов


Отправлено fire64 11-08-2010 в 13:38:

CrazyRussian, вот, это уже совсем другое дело.

Ладно, с этим разобрался.
В консоли теперь при загрузке карты сообщение:

Loading avi valve/media/valve.avi - 361 frames,Audio: 44100 Hz 4 bps 2 channels 16bit

но рендерить не хочет

Короче пока сделал так:

в tri.cpp в начале файла добавил

C++ Source Code:
bool g_blReplaceTexture = true;


потом в HUD_DrawTransparentTriangles добавил

C++ Source Code:
1
if( g_blReplaceTexture )
2
{
3
  model_t *world = gEngfuncs.GetEntityByIndex(0)->model;
4
 
5
  texture_t** tex = (texture_t**)world->textures;
6
 
7
  for (int i = 0; i < world->numtextures; i++)
8
  {
9
    LoadAviForTexture( tex[i] );
10
  }
11
 
12
  g_blReplaceTexture = false;
13
}


в файле view.cpp в функцию V_CalcRefdef добавил RefreshBspAvis()

гм
походу проблема в RefreshBspAvis

int f = tex->Avi->getVideoFrameNumber(tex->frame/25);

возвращает 0, хотя ( tex->frame/25 ) правильное, то есть секунды входящие в видео.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 11-08-2010 в 13:42:

видео должно играться со скоростью 25 кадров в секунду.
А ресемплинг на лету - не такой уж и медленный, если видео не сильно большого разрешния, например 320х200

__________________
My Projects: download page

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

Цитата:

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


Отправлено fire64 11-08-2010 в 14:17:

Ок. ну тогда скиньте мне что ли валидный Avi файл, так как valve.avi из HL2DM похоже не подходит.

Добавлено 11-08-2010 в 18:17:

Нет. видео файл нормальный, я уже хз в чем дело, но видео не работает.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено CrazyRussian 11-08-2010 в 14:19:

fire64
Лови, кусочек онемешки которой я тестировал код - http://rghost.ru/2319781

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов


Отправлено fire64 11-08-2010 в 14:33:

CrazyRussian, ок теперь вижу результат.

Правда несколько отрицательный.

Экран стал белого цвета, при использовании моих файлов он оставался черным

int f = tex->Avi->getVideoFrameNumber(tex->frame/25);

по прежнему возвращает 0.

очень странно.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено CrazyRussian 11-08-2010 в 14:41:

fire64 дай угадаю, R_FrameTime написал вот так:

C++ Source Code:
1
int R_FrameTime()
2
{
3
  return pparams->frametime;
4
}

?

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов


Отправлено fire64 11-08-2010 в 14:58:

хм
Так вот, эксперименты показали следующее.

если в функции LoadAviForTexture, перед glTexImage2D поставить return;

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

Если же не использовать return и дать запустить glTexImage2D. то экран становится белым.

есть подозрения на карту.

Добавлено 11-08-2010 в 18:58:

Добавил в код

C++ Source Code:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);


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

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено CrazyRussian 11-08-2010 в 15:11:

Цитата:
fire64 писал:
теперь работает, хотя опять же не все гладко, изображении двоится, хотя это возможно просто копирование текстур в самом движке.

Текстуру надо растянуть на весь браш, и перевернуть.

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов


Отправлено Дядя Миша 11-08-2010 в 15:17:

fire64 откуда ты запускаешь рендеринг видео?
не из HUD_Redraw ли?

__________________
My Projects: download page

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

Цитата:

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


Отправлено fire64 11-08-2010 в 15:25:

Дядя Миша, я обновляю кадр из V_CalcRefdef

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 11-08-2010 в 15:40:

Цитата:
fire64 писал:
Дядя Миша, я обновляю кадр из V_CalcRefdef

так делать нельзя ни в коем случае. Додумался.

__________________
My Projects: download page

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

Цитата:

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


Отправлено PLut 11-08-2010 в 15:48:

Дядя Миша А как будет по-хорошему?

__________________
Base Defense on Steam, ModDB


Отправлено Дядя Миша 11-08-2010 в 15:58:

из HUD_Redraw, я жы написал выше.
Ну вы же на весь экран видио рисуете или нет?

__________________
My Projects: download page

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

Цитата:

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


Отправлено CrazyRussian 11-08-2010 в 16:00:

Цитата:
Дядя Миша писал:
Ну вы же на весь экран видио рисуете или нет?

не знаю как там fire64 сделал, но в моей реализации предполагается что видео рисуется на брашах.

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов


Отправлено Дядя Миша 11-08-2010 в 16:04:

Давайте уже определимся. Если мы рисуем видео на весь экран - какой же это телевизор? Это просто интро-ролик.

__________________
My Projects: download page

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

Цитата:

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


Отправлено fire64 11-08-2010 в 16:08:

Так я пока и использовал код CrazyRussian, так что у меня тоже на брашах.
Завтра FMOD буду приделывать.

Что касается Intro ролика, то либо потом сам код переделаю, либо же сделаю так что бы камера была направленна на браш с видео.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 11-08-2010 в 16:10:

уфф. Если надо видио на брашах - вон в ксаше есть. я жы писал.
Хватить халфу мучать )

__________________
My Projects: download page

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

Цитата:

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


Отправлено fire64 11-08-2010 в 17:31:

Такой вопрос, что лучше использовать для воспроизведения звука ?
FMOD или SDL ?

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено CrazyRussian 11-08-2010 в 17:40:

как мне кажется - лучше ставить ambient_generic и делать синхронизацию с видео,а со всякими фмодами гемороя over 9000.

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов


Отправлено Дядя Миша 11-08-2010 в 17:59:

fire64 использование двух дллок для вопроизведения звука в одном приложении - это всегда нехорошо.
А SDL - он вообще не для того был писан.

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 11-08-2010 в 18:12:

Цитата:
CrazyRussian писал:
лучше ставить ambient_generic и делать синхронизацию с видео

Ахаха, а не получится!
А почему - сами скоро поймете.

__________________

xaerox on Vivino


Отправлено Дядя Миша 11-08-2010 в 18:20:

Цитата:
XaeroX писал:
Ахаха, а не получится!
А почему - сами скоро поймете.

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 11-08-2010 в 18:24:

Дядя Миша
Ну это понятно. Я, собсна, так и делал.
А вот чтобы с синхронизацией - это не так уж просто.

__________________

xaerox on Vivino


Отправлено fire64 11-08-2010 в 18:35:

Немного переделал код CrazyRussian, убрал кастомные функции, добавил воспроизведение звука через FMOD.

Синхронизация не работает

п.с.
CrazyRussian, не используй статичные пути для видео, используй gEngfuncs.pfnGetGameDirectory().

п.п.с.
Надеюсь никому не надо объяснять как подключать код, хотя в теме это и так было несколько раз описано.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено FiEctro 12-08-2010 в 05:02:

fire64
Лучше, когда допишите, оформите в виде тутора.

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


Отправлено fire64 12-08-2010 в 07:42:

Какие кодеки понимает AviKit ?

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 12-08-2010 в 09:23:

fire64
Любые.
Главное, чтобы они были правильно установлены в винде.

__________________

xaerox on Vivino


Отправлено fire64 12-08-2010 в 09:33:

Цитата:
XaeroX писал:
fire64
Любые.
Главное, чтобы они были правильно установлены в винде.


XaeroX, ошибаешься.
Вот, что писал Дядя Миша на хл.ру

Цитата:

2. Мпег4 и обычные авишки читаются на ура (правда у мпег4 почему-то нету звука ), а вот ДВД и ВМВ не читаються вообще,
так же не читаються обычные Мп3, вав и прочие форматы
3. Читаються только файлы с соотношением сторон 4:3 и 16:9, квадратные и прямоугольные файлы не читаются вообще - игруха вылетает с ошибкой.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 12-08-2010 в 09:58:

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено fire64 12-08-2010 в 10:56:

Divx кодек он точно не держит.

Добавлено 12-08-2010 в 14:56:

Поправка, все нормально, просто в настройках конвертера было установлено неправильное расширение.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 12-08-2010 в 11:02:

fire64 ну вот видишь. Старые истины порой нуждаются в перепроверке. А вообще я с вас удивляюсь - ну скока можно этот дибилизер писать?

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 12-08-2010 в 11:17:

Цитата:
fire64 писал:
XaeroX, ошибаешься.

Хорошо, скажу иначе - любые кодеки, подходящие для компрессии видео в формате перекрытого аудио-видео (т.е. AVI). DivX в их числе.

__________________

xaerox on Vivino


Отправлено fire64 12-08-2010 в 12:21:

Удалил код обновления CrazyRussian.
Вернул код из примеров, синхронизация видео и звука исправно работает.
Добавил закрытие FMOD'а.

Теперь код полностью рабочий ( кажется ).

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено GSen 12-08-2010 в 12:27:

Тутор о интеграции и юзабельности для нубаков напишите?


Отправлено fire64 12-08-2010 в 13:21:

Цитата:
GSen писал:
Тутор о интеграции и юзабельности для нубаков напишите?

Сделано.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено fire64 13-08-2010 в 17:26:

Немного оффтоп, но мне пришла мысль, а можно ли добавить поддержку VTF текстур ?

Я думаю, что да.

За основу можно взять все тот же код для AviKitа.
Короче грузим vtf файл, потом в VTFLib конвертируем изображение в bitmap и рендерим его вместо кадра из видео.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 13-08-2010 в 18:35:

fire64 а у тебя есть описалово VTF формата?

__________________
My Projects: download page

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

Цитата:

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


Отправлено fire64 13-08-2010 в 18:39:

Цитата:
Дядя Миша писал:
fire64 а у тебя есть описалово VTF формата?


Мне его знать и не нужно, для этого есть VTFLib
Нужно загрузить VTF файл через VTFLib,
а потом полученный bitmap массив отрендерить тем же методом, что и avi файл.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 13-08-2010 в 18:56:

Цитата:
fire64 писал:
Мне его знать и не нужно, для этого есть VTFLib

мда...

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 13-08-2010 в 18:57:

fire64
Зачем тебе VTF, если есть TGA/JPG/PNG/etc?

__________________

xaerox on Vivino


Отправлено fire64 13-08-2010 в 19:03:

Цитата:
XaeroX писал:
Зачем тебе VTF, если есть TGA/JPG/PNG/etc?

Просто CrazyRussian в теме на КСМ написал

Цитата:

Даю идею попроще - прикрутите .vtf к первохалфе.

Ну вот я и подумал, а можно ли это сделать на базе кода видеотекстур.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено CrazyRussian 13-08-2010 в 19:04:

Я подал идею как подружить сорцовский хаммер с первой халфой - если народ не может прикрутить туда подержку вадов, пусть прикрутят .vtf в халфу и радуются.

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов


Отправлено XaeroX 13-08-2010 в 19:10:

fire64 это можно БЫЛО сделать на базе хлфх, но просто я и представить себе не мог, что кого-то заинтересует этот сомнительный узкоспециализированный формат. А конвертеров VTX->чтототамщё навалом.

__________________

xaerox on Vivino


Отправлено Дядя Миша 13-08-2010 в 19:10:

Цитата:
CrazyRussian писал:
пусть прикрутят .vtf в халфу и радуются.

ну в ксаше уже есть поддержка vtf. В.т.ч и анимированных.

__________________
My Projects: download page

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

Цитата:

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


Отправлено fire64 13-08-2010 в 19:18:

Цитата:
Дядя Миша писал:
ну в ксаше уже есть поддержка vtf. В.т.ч и анимированных.

Дядя Миша, вот какую идею не придумаешь, а она всегда уже в ксаше реализована

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 13-08-2010 в 19:27:

ну так зря я что ли три года возился и.т.д.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 15-08-2010 в 06:10:

.vtf прикрутить еще пол беды, а вот материал систем - %).

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


Отправлено sania_3 15-08-2010 в 08:12:

Ну в первой хл тоже есть свой материал систем. =)

__________________
Владелец восьмиструнного монстра Schecter Omen-8 Vintage White (VWHT)
Бывал на концертах этих групп: Rashamba, 7000$, Louna, Molecul, Project Revolution, Headsource, Digimortal и многих других. Куча автографов.
Я член возлагаю на сраный геймдев.


Временная зона GMT. Текущее время 20:38.
Показать все 109 сообщений этой темы на одной странице

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