Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - DK

Страницы: [1] 2 3 ... 16
1
Цитировать
Я уж не настолько тупой
Из твоих постов как раз такое впечатление о тебе. Тем более, если ты "пробовал все флаги". Твой путь - сделать наугад и надеяться, что заработает.

Я попытался объяснить корень причины - неправильный порядок рендера обьектов. Какое объяснение у тебя? "Мистика, что-то в движке, альфа в txd...".

Если проблема наблюдается только при определённом положении камеры - возможно, в таком положении в сцену попадает больше обьектов, и список из обьектов переполняется. Или же компоненты позиции камеры при определённом положении обнуляются, и алгоритм, который делает сортировку обьектов, перестаёт правильно работать.
По факту - надо выводить на экран порядок рендера обьектов, список прозрачных обьектов и координаты камеры, и пытаться найти закономерность. А ещё лучше - отследить в exe заполнение списка прозрачных обьектов, и рендер этих обьектов.

Цитировать
Да и смысл мне что-то слушать от человека, который разбирается в SA, а не Вайсе
Я даже больше скажу - я никогда не занимался моделированием/маппингом для Vice City - т.е. не создавал модели и не вставлял их в игру. Но когда возникают такие проблемы, я знаю, где искать их причины, могу целый список составить - куда надо смотреть и что проверить. А ты предлагаешь на текстуру посмотреть в txd-workshop'е. Почему так?

2
Чтобы обьект-статика не "просвечивался" на фоне других обьеков - надо у обьекта с прозрачностью выставить флаг DRAW_LAST.
Если обьект-статика "просвечивается" на фоне себя же - надо отделять куски с прозрачностью и ставить им флаг DRAW_LAST. В случае с деревом надо отделить все ветки (каждую желательно в отдельный обьект). Каждый обьект надо нормально "отцентрировать" (выставить т.н. pivot в центр геометрии обьекта).


Ты, наверное, недоумеваешь от такой картины, а я тебе её очень просто обьясню: у тебя в сцене сначала рисуется трава (ландшафт), далее кусты и деревья, и далее дом.
И вот когда рисуется дом, и когда тексель из текстуры дома хочет залезть в пиксель, в который записана информация о цвете куста/дерева, буфер глубины ему отвечает: - "Тут занято". - "Но там же полупрозрачный пиксель?!". - "А мне пофигу, для меня вы все черно-белые".

3
100к полигонов? Ха. Моя машина с 8 процессорами и 3 видеокартами этого не почувствует.
Давай ещё докидывай соточку - и я подумаю над тем, чтобы скачать этот мод.
И вообще, будущие сборки на тесты кидай только мне - тут я решаю, что тормозит, а что нет.

4
Цитировать
Т.е идея заключается в том что-бы, объединить пачку моделей в один мэш и получить всего 1 вызов на эту самую пачку.
Только если все эти модели используют одну и ту же, одну текстуру, и один и тот же материал.

5
Скриптинг / Re: Прицепить звук к объекту.
« : Август 05, 2018, 03:08:28 am »
Вчера на сервере plugin-sdk обсуждали крепление партиклов к транспорту, вот такой код получился.
Код: C++
  1. #include "plugin.h"
  2. #include "CClumpModelInfo.h"
  3. #include "CParticle.h"
  4.  
  5. using namespace plugin;
  6.  
  7. class ParticleTest {
  8. public:
  9.     static void CreateParticleOnVehicleNode(CVehicle *vehicle, char const *nodeName) {
  10.         RwFrame *node = CClumpModelInfo::GetFrameFromName(vehicle->m_pRwClump, nodeName); // получить компонент по названию
  11.         if (node) {
  12.             RwMatrix *m = RwFrameGetLTM(node); // получить матрицу компонента в глобальном пространстве
  13.             CParticle::AddParticle(PARTICLE_FLYERS, CVector(m->pos.x, m->pos.y, m->pos.z), CVector(0, 0, 0), nullptr, 0.4f, 0, 0, 0, 0);
  14.         }
  15.     }
  16.  
  17.     ParticleTest() {
  18.         Events::gameProcessEvent += [] {
  19.             if (CPed *player = FindPlayerPed(); player && player->m_bInVehicle && player->m_pVehicle && player->m_pVehicle->m_fGasPedal > 0) {
  20.                 CreateParticleOnVehicleNode(player->m_pVehicle, "wheel_lb_dummy");
  21.                 CreateParticleOnVehicleNode(player->m_pVehicle, "wheel_rb_dummy");
  22.             }
  23.         };
  24.     }
  25. } particleTest;

6
Shagg_E, странно, я сам в упор не видел, что CFire уже есть в sdk для VC.
Ну зато теперь по огням всё разобрано и перепроверено до мелочей.

7
Вот что у меня получилось
Код: C++
  1. /* 0x00 */ bool     m_bActive            // существует (т.е. слот занят)
  2. /* 0x01 */ bool     m_bScriptFire        // ручное удаление ("заскриптованный" огонь)
  3. /* 0x02 */ bool     field_2              // возможно не используется, 0 - для огня после взрыва, 1 для всего остального
  4. /* 0x03 */ bool     m_bMakesNoise        // есть звук
  5. /* 0x04 */ CVector  m_vecPosition        // позиция
  6. /* 0x10 */ CEntity *m_pEntityTarget      // жертва
  7. /* 0x14 */ CEntity *m_pEntityCreator     // создатель
  8. /* 0x18 */ int      m_nEndLifeTime       // время затухания
  9. /* 0x1C */ int      field_1C             // какой-то таймер, возможно не используется, обнуляется каждые 400мс
  10. /* 0x20 */ int      m_nParticlesTimer    // таймер для создания партиклов
  11. /* 0x24 */ float    m_fSize              // размер
  12. /* 0x28 */ float    m_fStrength          // интенсивность (повышается при появлении огня и уменьшается при затухании)
  13. /* 0x2C */ bool     m_bBeingExtinguished // флаг "тушения" (водой) - используется, чтобы начать проигрывать какой-то звук, после выключается
  14. /* 0x2D */ char     _pad2D[3]

8
Общие вопросы / Re: Помощь с CLEO
« : Май 21, 2018, 12:31:16 am »
Вылет - из-за того, что ты попутал переменные 0@ и 1@.
И значение там float, а не int (форматировать как %f, и вместо 1065353216 - 1.0).
В общем, написание скриптов, особенно в SB, где у переменных нету названий - это то ещё мучение.

10
Общие вопросы / Re: Помощь с CLEO
« : Май 15, 2018, 11:44:14 pm »
В опкод 03CF нельзя передать указатель на строку.

11
Общие вопросы / Re: Помощь с CLEO
« : Март 16, 2018, 10:24:16 am »
У нас в англоязычном чате plugin-sdk больше 100 человек, я бы не сказал что это мало.
Люди есть, и интерес есть, и информация есть. Надо просто искать и найти.

12
Программирование / Re: Vice City Plugin SDK
« : Март 12, 2018, 10:28:22 pm »
Потому что выравнивание структур по умолчанию - 4 байта.
Можно проверить вот так:
Код: C++
  1. template<typename T1, typename T2, typename T3, typename T4, int S>
  2. struct message;
  3. struct Size;
  4. struct of;
  5. struct is;
  6. #define PRINT_SIZE(x) message<Size, of, x, is, sizeof(x)> _##x
  7.  
  8. struct A {
  9.     unsigned char field_0;
  10. };
  11.  
  12. struct B {
  13.     unsigned short field_0;
  14. };
  15.  
  16. struct C {
  17.     unsigned int field_0;
  18.     unsigned char field_4;
  19. };
  20.  
  21. PRINT_SIZE(A);
  22. PRINT_SIZE(B);
  23. PRINT_SIZE(C);

Код: C++
  1. error C2079: '_A' uses undefined struct 'message<Size,of,A,is,1>'
  2. error C2079: '_B' uses undefined struct 'message<Size,of,B,is,2>'
  3. error C2079: '_C' uses undefined struct 'message<Size,of,C,is,8>'

13
Создан русскоязычный чат в Discord:
https://discord.gg/QEesDGb

14
Программирование / Re: GTA VC. Базы данных.
« : Февраль 04, 2018, 03:32:30 pm »
В чат-сервере plugin-sdk в Discord публикуются актуальные базы для SA/VC/III (раздел gta-ida-idb).

15
Программирование / Re: Расширение классов
« : Январь 16, 2018, 07:54:31 am »
Цитировать
сразу выхватывает нужного

Страницы: [1] 2 3 ... 16