Динамически измеренный массив 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, заключается в том, что у вас не может быть такого динамического распределения в лучах излучения, которые вы проходите.

Для нашего приложения мы должны вместо этого использовать массив с максимальным размером и указанием длины для текущего цикла. Это память расточительна, я знаю, но я не вижу никакого способа обойти это.

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

Другие вопросы по тегам