Наше комьюнити:   OpenGL Shader Lab  •  Half-Life FX  •  Форум  
HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Помогите в написании функции TraceHull принимающей аргументы mins & maxs
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Immortal*BLG
Новичок

Дата регистрации: Jun 2008
Проживает: (void)
Сообщений: 13
Возраст: 26

Рейтинг



Exclamation Помогите в написании функции TraceHull принимающей аргументы mins & maxs

Собственно сабж.
Мне нужна функция как из ХЛ2, но только принимающая не 3D mins и maxs а 2D. Я тут написал уже и это работает, но очень медленно, да и как мне кажеться не правильно....

C++ Source Code:
inline void TraceHull (const Math::Vector3D &source, const Math::Vector3D &destination, const Math::Vector2D &mins, const Math::Vector2D &maxs, const HalfLifeEngine::SDK::Constants::TraceIgnore_t traceIgnore, HalfLifeEngine::SDK::Classes::Edict *const entityToSkip, HalfLifeEngine::SDK::Structures::TraceResult_t &traceResult)
{
    HalfLifeEngine::SDK::Structures::TraceResult_t tempTraceResult;
    float fraction = 1.0f;
    Math::Vector2D offset;
    bool isStartSolid = false, isAllSolid = false;
    
    for (offset.x = mins.x; offset.x < maxs.x; ++offset.x)
        for (offset.y = mins.y; offset.y < maxs.y; ++offset.y)
    {
        HalfLifeEngine::Globals::g_halfLifeEngine->TraceLine (source + offset, destination + offset, traceIgnore, entityToSkip, tempTraceResult);
        
        if (tempTraceResult.isStartSolid)
            isStartSolid = true;
        
        if (tempTraceResult.isAllSolid)
            isAllSolid = true;
        
        if (tempTraceResult.fraction < fraction)
        {
            traceResult = tempTraceResult;
            fraction = tempTraceResult.fraction;
        }
    }
    
    traceResult.isStartSolid = isStartSolid;
    traceResult.isAllSolid = isAllSolid;
}

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

Старое сообщение 26-08-2009 04:21
- За что?
 Дядя Миша
who said meow?

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

Рейтинг



Immortal*BLG еще раз русским языком объясни что тебе нужно?
Трасить 2D объекты в hl2 или в своем движке или ты какой-то AMX-Mod пишешь?

__________________
В действительности всё может оказаться иначе, чем оно есть на самом деле

My Projects: download page

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

Старое сообщение 26-08-2009 07:36
-
Immortal*BLG
Новичок

Дата регистрации: Jun 2008
Проживает: (void)
Сообщений: 13
Возраст: 26

Рейтинг



Мне нужно сделать быструю фнкцию TraceHull как в HL2, тока на базе движка HL1, которая заместо аргумента int hullNumber будет принимать 2 аргумента Vector mins, Vector maxs и работать с ними.
Пишу я не на amxx, разве выше упомянутый код похож на pawn?
(ПРОШУ НЕ ПИСАТЬ: "А ПОЧЕМУ ТЕБЕ ИМЕННО ТАК НАДО, ЮЗАЙ СТАНДАРТНЫЙ ТРЕЙС ХУЛЛ")
И еще одно - ты написал

Цитата:
Трасить 2D объекты
- мне надо трейсить 3D объекты, просто я опускаю z компонент векторов mins & maxs.
C++ Source Code:
TraceHull (source, destination, Vector (-16, -16), Vector (16, 16), /*other arguments....*/)
- это тоже самое, что и
C++ Source Code:
TraceHull (source, destination, Vector (-16, -16, 0), Vector (16, 16, 0), /*other arguments....*/)

но мне нужно первое.

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

Старое сообщение 26-08-2009 08:07
- За что?
 Дядя Миша
who said meow?

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

Рейтинг



Immortal*BLG ну так ты вместо Z подставь ноль и будет тебе трасинг в 2D.

__________________
В действительности всё может оказаться иначе, чем оно есть на самом деле

My Projects: download page

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

Старое сообщение 26-08-2009 09:54
-
Immortal*BLG
Новичок

Дата регистрации: Jun 2008
Проживает: (void)
Сообщений: 13
Возраст: 26

Рейтинг



ДА УЖ ЭТО НАВЕРНО САМЫЙ УМНЫЙ ОТВЕТ НЕДЕЛИ!!!!!! - извини за нескромность.
1) МНЕ НУЖЕН 3D ТРЕЙСИНГ - я об этом уже писал выше.
2) Где ты видел функцию TraceHull в hl1 которая принимает mins & maxs? Я просто показал тебе, что мне не нужен компонент Z в этих аргументах, а source & destination - это 3D векторы, просто я сделал опечатку, написав во втором своем посте, что мне нужны 3д mins и maxs - там они должны быть 2D.

Отредактировано Immortal*BLG 26-08-2009 в 12:21

За это сообщение Immortal*BLG получил предупреждение за кэпслокинг

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

Старое сообщение 26-08-2009 12:15
- За что?
 XaeroX
Rainbow Dash

Дата регистрации: Oct 2005
Проживает: Новосибирск
Сообщений: 28007
Нанёс повреждений: 466 ед.
Возраст: 32

Рейтинг



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


Immortal*BLG
Да вроде бы нельзя в халфе трейсить кастомные халлы. Это ж тебе не ку3.
Но зато можно подменить стандартные халлы своими. Кури мануалы по ZHLT, pfnGetHullBounds и HUD_GetHullBounds.

__________________
So she began again: 'Où est ma chatte?' which was the first sentence in her French lesson-book. The Mouse gave a sudden leap out of the water, and seemed to quiver all over with fright. 'Oh, I beg your pardon!' cried Alice hastily, afraid that she had hurt the poor animal's feelings. 'I quite forgot you didn't like cats.'

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

Старое сообщение 26-08-2009 13:46
-
 Дядя Миша
who said meow?

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

Рейтинг



Цитата:
Где ты видел функцию TraceHull в hl1 которая принимает mins & maxs?

А с чего ты вообще взял, что в hl1 можно подставлять различные mins и maxs ? Там 4 хулла и они фиксированы.
Ты сам не знаешь чего хочешь, ты не понимаешь как оно работает и еще и огрызаешься.

__________________
В действительности всё может оказаться иначе, чем оно есть на самом деле

My Projects: download page

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

Старое сообщение 26-08-2009 14:57
-
Immortal*BLG
Новичок

Дата регистрации: Jun 2008
Проживает: (void)
Сообщений: 13
Возраст: 26

Рейтинг



Люди, вы разве слепые? Я же в первом посте выложил функцию, которая на основе TraceLine работает как TraceHull - так вот вопрос для профи, (хотя читая посты Дяди Мишы я уже сомневаюсь в этом) вобщем как эту функцию можно ускорить, переписать, может кто-то знает как точно вообще работает hl1 TraceHull - мало-ли.

XaeroX спасибо, проверю....

Добавлено 27-08-2009 в 13:43:

Не XaeroX, pfnGetHullBounds это мне не нужно....

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

Старое сообщение 27-08-2009 03:43
- За что?
 XaeroX
Rainbow Dash

Дата регистрации: Oct 2005
Проживает: Новосибирск
Сообщений: 28007
Нанёс повреждений: 466 ед.
Возраст: 32

Рейтинг



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


Мда... Клинический случай.

__________________
So she began again: 'Où est ma chatte?' which was the first sentence in her French lesson-book. The Mouse gave a sudden leap out of the water, and seemed to quiver all over with fright. 'Oh, I beg your pardon!' cried Alice hastily, afraid that she had hurt the poor animal's feelings. 'I quite forgot you didn't like cats.'

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

Старое сообщение 27-08-2009 05:35
-
 Дядя Миша
who said meow?

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

Рейтинг



Immortal*BLG это тебе кажется, что она так работает.
Ты даже не дал себе труда правильно скомбинировать результаты.
Флуд ни о чем, закрываю тему.

__________________
В действительности всё может оказаться иначе, чем оно есть на самом деле

My Projects: download page

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

Старое сообщение 27-08-2009 07:27
-
Тема закрыта Дядя Миша 27-08-2009 в 07:27
Временная зона GMT. Текущее время 22:09. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Помогите в написании функции TraceHull принимающей аргументы mins & maxs
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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

Рейтинг@Mail.ru