Динамически измеренный массив Optix в полезной нагрузке
Есть ли способ объявить полезную нагрузку динамически изменяемого массива в optix? Я погуглил и прочитал документацию по Optix, но обнаружил, что Optix не позволяет использовать malloc. Есть ли способ, которым я мог бы сделать что-то вроде следующего?
struct PerRayData_radiance
{
float3 result;
float importance;
int depth;
float stuff[N];
};
Разве я изменил размер массива до размера N в зависимости от некоторых пользовательских параметров.
Я пытался найти в прошлых вопросах на форумах NVIDIA, но похоже, что он был закрыт из-за некоторых проблем безопасности.
1 ответ
Ты не можешь Я задал именно этот вопрос на форумах NVIDIA OptiX, когда они были рядом, так как я хотел сделать это для своего приложения (хотелось бы дать вам указатель http). К сожалению, одно ограничение для файлов, генерируемых ptx, используемых OptiX, заключается в том, что у вас не может быть такого динамического распределения в лучах излучения, которые вы проходите.
Для нашего приложения мы должны вместо этого использовать массив с максимальным размером и указанием длины для текущего цикла. Это память расточительна, я знаю, но я не вижу никакого способа обойти это.
Возможно, вы захотите поиграть с максимальными размерами для вашего приложения и оборудования, потому что в этой ситуации размер стека, скорее всего, будет увеличен.