0xc0de
> Погугли, он как раз решает твою проблему.
ок, спасибо
slava_mib
> я просто натравливаю потоки куллинга на эти блоки
Что за потоки куллинга?
Fantom09
Я на директиксе сижу
zavod3D
> ок, спасибо
>Я на директиксе сижу
нужно наверное сюда копать: ID3D11DeviceContext::DrawIndexedInstancedIndirect, или у тебя еще D3D9 ? :)
>Ну это вряд ли, емкость буфера ограничена 16 битным беззнаковым целым
> > Индексы могут задаваться и как unsigned int.
> Если позволяет видеокарта
Забудь про это. Все OpenGL ES 3.0 мобильные чипы держать uint32 через gl_oes_element_index_uint, если про десктоп то это уж очень старые видюхи уровня Direct3D3D9 SM 2.0 и то это встроенные intel.
>Что за потоки куллинга?
Наверное имелось в виду отсечение распараллелено по потокам.
Andrey
> нужно наверное сюда копать: ID3D11DeviceContext::DrawIndexedInstancedIndirect,
> или у тебя еще D3D9 ? :)
Пока не пересел, но в ближайшем будущем планирую
> Забудь про это. Все OpenGL ES 3.0 мобильные чипы держать uint32...
Да пора пересаживаться на DX11.
> Наверное имелось в виду отсечение распараллелено по потокам.
Типа использование Openmp и подобных?
zavod3D
> Типа использование Openmp и подобных?
Врядли, Openmp это по большей части директивы компиляции, к примеру для распараллелиания циклов по потокам.
barnes
> Парни, вы его запутаете только) Короче BSP это формат уровней квейка. Просто и понятно.
Вряд ли речь выше шла об формате квейковских уровней или по крайней мере не только он нём :) иначе бы я таких глупых вопросов не задавал.
> что такое non- local data, почему это снижает производительность и т.д.
zavod3D, в доках вендоров (и CPU и GPU) есть инфа.
Если на пальцах объяснять, то примерно так: каждый раз когда проц обращается к памяти - она либо есть в кэше, либо нет. Если нет, то процсс её "подсасывания" из ОЗУ в кэш - он долгий и дорогой. Потому лучше, когда данные лежат в одном общем линейном участке памяти, чем когда беспорядочно по ней разбросаны (т.к. много много кэш-промахов возникает).
Но у локальность данных есть и обратный эффект: если твои потоки пишут в один и тот же участок памяти - то ядрам проца приходится постоянно синхронизировать между собой и своими кэшами этот участок памяти.
Потому, опять же, очень упрощённо - лучше всего когда каждый поток занимается своей задачей над своим ОТДЕЛЬНЫМ, линейно хранящим сразу весь исходный массив данных, но при этом НЕБОЛЬШИМ (от нескольких десятков килобайт до максимум мегабайта примерно) участком памяти.
По-настоящему хорошо это удаётся заоптимизировать лишь настоящим спецам... к каковым я себя не отношу и потому на этом заканчиваю )
давно уже нужно создать FAQ и сразу посылать
innuendo
> давно уже нужно создать FAQ и сразу посылать
Кстати давно можно было бы такое дело по часто задаваемым вопросам сделать :) с примерами проработанного обществом форума кода.
slava_mib
> Если на пальцах объяснять, то примерно так: каждый раз когда проц обращается к
> памяти - она либо есть в кэше, либо нет.
А. Ты про кэш имел ввиду.
> zavod3D, в доках вендоров (и CPU и GPU) есть инфа.
Спасибо. Дальше разберусь.
Andrey
> Openmp это по большей части директивы компиляции, к примеру для
> распараллелиания циклов по потокам.
Я применял его один раз как раз для распараллеливания цикла, поэтому и спросил.
> Врядли,
Судя по последнему ответу slava_mib, openmp как раз подходит - указал каждому потоку свою часть грида и расположился с чашечкой кофе в кресле, наблюдая за fps-ом
Вообщем я пойду почитаю умные пейперы, может я что-то не допонимаю.
innuendo
> давно уже нужно создать FAQ и сразу посылать
Daniil Petrov
> Кстати давно можно было бы такое дело по часто задаваемым вопросам сделать :) с
> примерами проработанного обществом форума кода.
Внезапно: FAQ http://www.gamedev.ru/faq/
А еще есть Термины http://www.gamedev.ru/terms/
И там: Binary Space Partitioning (Бинарное разделение пространства) http://www.gamedev.ru/code/terms/BSP
А оттуда по ссылке переходим сюда: Введение в BSP деревья или BSP для самых «маленьких». Часть первая, теоретическая. http://www.gamedev.ru/articles/?id=30128
Так что послать есть куда, было бы желание (ну и поискать немного, да).
Раньше как было? Тема на форуме - это такой последний шанс, когда всё загуглил, всё прочитал, но не всё понял и задаёшь вопросы живым людям. Потому что совестно! А сейчас никто не гуглит, не читает, сразу на форум. Упадок нравов.
g-cont
> А сейчас никто не гуглит, не читает, сразу на форум. Упадок нравов.
причём ещё и хочет чтобы строчку с ошибкой указали в его кодопомойке :)
А у меня какая-то беда с отсечением сфер... точки отсекаются нормально (не вершины, а одиночная точка), сделал куб для проверки, тоже нормально отсекается, а вот сфера никак не хочет нормально отсекаться!
Хочу сделать, как slava_mib - сферами - не очень точно, но очень быстро, но чёт не прёт мне в них :)))
Daniil Petrov, отсечение сферы, по сути, мало чем отличается от отсечения точки... Скорее всего, где-то опечатался просто, либо, как писали выше - забыл отнормализовать...
Тема в архиве.