I have a similar problem as described here: [Dynamic vertices attribute update - #7 by wangyulin1029]
I build GAS’es which are all within one IAS.
I only refit the GAS.
Code:
OptixAccelBuildOptions accel_options = {}; if (hasRefit) accel_options.buildFlags = OPTIX_BUILD_FLAG_ALLOW_UPDATE; else accel_options.buildFlags = OPTIX_BUILD_FLAG_ALLOW_COMPACTION; if (do_refit) // is only true if also "hasRefit" is true accel_options.operation = OPTIX_BUILD_OPERATION_UPDATE; else accel_options.operation = OPTIX_BUILD_OPERATION_BUILD;
and optixAccelBuild() succeeds (of course without compaction on refit)
But the object disappears when starting refitting.
gas_buffer_sizes.tempSizeInBytes=9f80h // remains constant
gas_buffer_sizes.outputSizeInBytes=1cc2ch // remains constant
triangle_gas_handle correctly built and used in IAS. This works for case of
OPTIX_BUILD_OPERATION_BUILD; but not on update.
optix_instances[index].transform:
1.000000 0.000000 0.000000 0.000000
0.000000 1.000000 0.000000 0.000000
0.000000 0.000000 1.000000 0.000000
IAS optixAccelBuild also succeeds.
pipeline was always re-created; but after skipping this re-creation the problem of disappearing still exists.
no AABB provided; always triangle primitives used (no custom intersection)
no motion blur / morphing yet
What could be wrong?
Thank you!
My System: OptiX 7.0.0 SDK CUDA 10.1.243 GTX 1050 2GB Win10PRO 64bit (version 1809; build 17763.107)
device driver: 445.75 VS2019 v16.5.3 (toolkit v140 of VS2015) MDL SDK 2019.2