Этот вопрос предназначен для начинающих пользователей NVIDIA OptiX (так же, как и я)
Что происходит
При работе с скомпилированными примерами OptiX (поставляется с установкой OptiX) я пытаюсь печатать на консоль из одного из ядер компьютера и получаю следующие ошибки:
error: cannot convert ‘optix::Context {aka optix::Handle<optix::ContextObj>}’ to ‘RTcontext’ for argument ‘1’ to ‘RTresult rtContextSetPrintEnabled(RTcontext, int)’
error: cannot convert ‘optix::Context {aka optix::Handle<optix::ContextObj>}’ to ‘RTcontext’ for argument ‘1’ to ‘RTresult rtContextSetPrintBufferSize(RTcontext, RTsize)’
Попытка решения
Внутри функции createContext()
, в которой создается контекст, я добавил строки кода, чтобы включить отладочную печать. Добавленные мной строки кода:
rtContextSetPrintEnabled(context, 1);
rtContextSetPrintBufferSize(context, 4096);
Это две строки, которые вызывают вышеуказанную ошибку. Я добавил эти строки кода после создания объекта контекста, предоставленного приведенным ниже кодом - из исходного примера nvidia:
context = Context::create();
context->setRayTypeCount( 2 );
context->setEntryPointCount( 1 );
context->setStackSize( 2800 );
Итак, полный код, который ломается, выглядит так:
// Set up context
context = Context::create();
context->setRayTypeCount( 2 );
context->setEntryPointCount( 1 );
context->setStackSize( 2800 );
// Setup debug printing
rtContextSetPrintEnabled(context, 1);
rtContextSetPrintBufferSize(context, 4096);
Некоторая справочная информация
Я пытаюсь изменить проект optixWhitted, работая на компьютере CentOS, используя версию Eclipse NSight.
Вопрос
При использовании кода optixWhitted и попытке сохранить стиль кода и использование уже выложенного объекта ... Как мне решить эту проблему?