Перейти к контенту

Редактирование движка X-Ray


Rolan

Рекомендуемые сообщения

По напридумывали сложностей, разделы делать, сжимать :russian_ru:

 

  Показать

 

 

*И так во всех проектах, которые будут что-то просить из DX.

** Можно и полные пути указывать (C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include)

Поделиться этим сообщением


Ссылка на сообщение

Есть тут адепты метапрограммирования? У меня хитрый вопрос, а то и правда разговоры тут последнее время не уровня амк :D

 

Я, потренировавшись на компиляторе, решил потихоньку пилить многопоточность в игре... Суть такая  - разбить всё, что можно делать параллельно, на кусочки, "работы".

Решил начать с создания класса "работа" ну и менеджера "работ". Работать(уже работает  ;) ) должно так

 

  Показать

 

В результате данная "работа" будет поставлена в очередь и выполнена одним из потоков "воркеров".

 

Пропыхтев над механизмом сохранения аргументов, с последующим вызовом функтора с ними,  сделал через tuple + рекурсивный вызов - жесть полная, но работает. :D
Кто-то скажет "Работает ? Ну и всё!" Но так же не интереЦно :D

 

Внимание вопрос, как хранить аргументы более изящным способом и более изящно вызывать с ними функтор.

 

  Показать

 

Изменено пользователем -StalkMen-

Поделиться этим сообщением


Ссылка на сообщение

@abramcumner,

 

 

  abramcumner писал(а):
Изучил?

По тому и делаю, что там ГГ какое то, два основных потока, которые, по большому счёту, работают друг за другом.

 

 

 

  abramcumner писал(а):
вызывающем коде дождаться завершения

Я не хочу так делать, это скорей к компилю... Вызывающий код добавляет работу в очередь и идёт дальше.

		volatile long iterator = 0;
		MultiThread::MultiThreadWork2([&](volatile float& prog)
		{
			float	p_cost = 1.0f / float(mu_models().size());
			Interlocked_for(pos, iterator, mu_models().size())
			{
				calc_ogf(*mu_models()[pos]);
				export_geometry(*mu_models()[pos]);
				prog = pos*p_cost;
			}
		});

Я не про такое говорю (когда надо ждать завершения).

 

 

  abramcumner писал(а):
Есть классический кондовый вариант:

У меня и так сделано подобным образом.

Я же не спросил, как мне ВСЁ это сделать, я уже сделал, но стало любопытно как сделать лучше.

 

 

 

  abramcumner писал(а):
TBB

OpenMP ещё, смотрел уже. Но там нигде нет кнопки "Автоматически распараллелить на 100% без добавления жуков" :D

Поделиться этим сообщением


Ссылка на сообщение

@Tron,

Любопытно, "свой" аллокатор для каждого потока. Я тоже про это думал. Надо будет по изучать...

И всё равно не в ту степь :russian_ru:

Ответа на мой вопрос там нет...

 

Попробую описать обобщённо и отделить половину задачи.

Итак,

foo<int,float,bool>   ggg(123, 123.f, true); //Сие должно "разворачиваться" в такое ->


//типо template<typename...Args>
class foo
{
int arg_1;
float arg_2;
bool arg_3;

foo(int _arg_1, float _arg_2, bool _arg_3) : arg_1(_arg_1), arg_2(_arg_2), arg_3(_arg_3){};
};
  и я не про то (Показать)
Изменено пользователем -StalkMen-

Поделиться этим сообщением


Ссылка на сообщение

 

 

  HESH писал(а):
упаси хоспаде!

Собственно, а почему нет? Что не так? 

Поделиться этим сообщением


Ссылка на сообщение
LINK : warning LNK4044: эхЁрёяючэрээ√щ ярЁрьхЄЁ "/INCREMENTAL:NO"; шуэюЁшЁєхЄё

Что с таким делать (кракозябры) ?

*(vs 2013)

Поделиться этим сообщением


Ссылка на сообщение

@HESH,

Телодвижения с "Набор символов" ни на что не влияют. Разве что на количество ошибок :D

Поделиться этим сообщением


Ссылка на сообщение

,

И чего же там мифического? Я уже частично впилил PhysX в xrLC - есть прирост.

 

Я бы пока не ковырялся с этим, но у нас слишком большая карта. На коллизию уходит слишком много памяти (половина от всей используемой, это только на 1/4 карты)

Начал пилить чанки, но понял, что с физикой слишком много заморочек...

 

 

  Shadows писал(а):
Никто не будет

Никто кроме нас не пилит агроменную карту.
Никто кроме нас не пилит кооп.

Если мы запилим PhysX, то мы и будем под него всё настраивать ©логика

 

 

 

  Forser писал(а):
бунте AMD'шников

PhysX запилин в A3, но где там бунты? Я не видел.

Поделиться этим сообщением


Ссылка на сообщение

,

Ой ну всё :)

Я не говорил, и не считаю нас ultimate кодерами.

Лично я про PhysX знаю мало, и уж тем более я не имею опыта создания/интеграции физ. движков.

С чего бы мне спрашивать мнения знающих...

Поделиться этим сообщением


Ссылка на сообщение

@Дизель,

И ничего не сломалось?

Почему не сделать проверку типа

if (что-то пошло не так) return;

??

Поделиться этим сообщением


Ссылка на сообщение

 

 

  Дизель писал(а):
атач - детач кроме авто

Станковое оружие.

Но причём тут это??? Если трогался класс, работающий с коллизией физикой и тп.  :blink: 

Поделиться этим сообщением


Ссылка на сообщение
  Tron писал(а):

нет, не используется
Вроде как окошечки компилей используют MFC.

  Tron писал(а):

нет
А на чём тогда? Изменено пользователем Dennis_Chikin
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...