Bug when importing USD file with BasisCurves prim included
Opened this issue · 0 comments
guiqi134 commented
I'm importing some curve primitive from .usda file into the Falcor for hair rendering. At first, I'm getting the following error in debug mode when loading built-in scenes under \media\test_scenes\curves\two_curves.pyscene
for Falcor 6.0. The render graph I use is VBufferRT
+ PathTracer
.
Then, I find the following bug also exists in the public Falcor 7.0.
(Info) Importing scene: C:\packman-repo\chk\falcor_media\71658858\test_scenes\curves\two_curves.pyscene
(Info) Importing scene: two_curves.usda
(Info) processMesh() called.
(Error) Unknown vertex interpolation mode 'none'.
(Info) No material bound to '/Root/tri0'. Using a default material.
(Warning) The mesh '/Root/tri0' is missing the element texture coordinates. This is not an error, the element will be filled with zeros which may result in incorrect rendering.
(Warning) Can't generate tangent space. The mesh '/Root/tri0' doesn't have positions/normals/texCrd/indices.
(Warning) The mesh '/Root/tri0' has zero-length normals/tangents at 3 vertices. Please fix the asset.
(Info) strandCount = 1, vertexCount = 5, usdCurveWidths.size = 5, subdivPerSegment = 1, keepOneEveryXStrands = 1, keepOneEveryXVerticesPerStrand = 1
(Warning) Curve '/Root/curve0' has no texture coordinates.
(Info) No material bound to '/Root/curve0'. Using a default material.
(Info) Didn't find pre-stored defualt material, create new default HairMaterial for curve
(Warning) The curve '/Root/curve0' is missing the element texture coordinates. This is not an error, the element will be filled with zeros which may result in incorrect rendering.
(Info) timeCodes.size() = 1, primName = /Root/curve0, processFirstKeyframeMesh = false
(Info) Open stage: 0.048446 s
(Info) Load scene settings: 0.163402 s
(Info) Traverse prims: 0.000855 s
(Info) Process meshes: 0.001722 s
(Info) Process curves: 0.000972 s
(Info) Create curve instances: 0.000038 s
(Info) Create instances: 0.000021 s
(Info) Pre-transformed 1 static meshes to world space.
(Info) Optimized scene graph by removing 2 internal static nodes.
(Info) Optimized scene graph by merging 1 identical static nodes.
(Info) Found 2 static non-instanced meshes, arranged in 1 mesh group.
(Info) Found 0 displaced non-instanced meshes, arranged in 1 mesh group.
(Info) Found 0 dynamic non-instanced meshes, arranged in 0 mesh groups.
(Info) Found 1 instanced meshes, arranged in 1 mesh groups.
(Info) prev vertex count = 0
(Info) HitInfo: Total size is 128 bits (type: 3 bits, instanceID: 3 bits, primitiveIndex: 11 bits)
(Info) Post processing geometry: 0.002825 s
(Info) Optimizing materials: 0.000032 s
(Info) Creating resources: 0.258120 s
(Info) Loading scene (total): 0.552727 s
(Warning) Duplicate program entry points 'curveIntersection' of type 'intersection'.
(Info) VBuffer recreatePrograms() called
(Info) VBufferRT::execute() called
(Info) Initiating BLAS build for 3 mesh groups
(Info) BLAS build split into 1 groups
(Info) BLAS build result buffer size: 138.25 kB
(Info) BLAS build scratch buffer size: 35.25 kB
(Info) BLAS group 0 final size: 57.50 kB
(Warning) GFX Warning: IDevice::getAccelerationStructurePrebuildInfo: IAccelerationStructure::BuildInputs::instanceDescs is null when creating a top-level acceleration structure.
(Info) MinimalPathTracer::execute called
(Info) VBufferRT::execute() called
(Info) MinimalPathTracer::execute called
The thread 0xa9bc has exited with code 0 (0x0).
(Info) VBufferRT::execute() called
(Info) MinimalPathTracer::execute called
D3D12: Removing Device.
D3D12 ERROR: ID3D12Device::RemoveDevice: Device removal has been triggered for the following reason (DXGI_ERROR_DEVICE_HUNG: The Device took an unreasonable amount of time to execute its commands, or the hardware crashed/hung. As a result, the TDR (Timeout Detection and Recovery) mechanism has been triggered. The current Device Context was executing commands when the hang occurred. The application may want to respawn and fallback to less aggressive use of the display hardware). [ EXECUTION ERROR #232: DEVICE_REMOVAL_PROCESS_AT_FAULT]
D3D12: **BREAK** enabled for the previous message, which was: [ ERROR EXECUTION #232: DEVICE_REMOVAL_PROCESS_AT_FAULT ]
Exception thrown at 0x00007FF90B33CF19 (KernelBase.dll) in Mogwai.exe: 0x0000087A (parameters: 0x0000000000000001, 0x000000807B1735F0, 0x000000807B1743C0).
Unhandled exception at 0x00007FF90B33CF19 (KernelBase.dll) in Mogwai.exe: 0x0000087A (parameters: 0x0000000000000001, 0x000000807B1735F0, 0x000000807B1743C0).
Some additional tests I have done:
- The
two_curves.pyscene
can only be successfully loaded usingSceneDebugger.py
- Without using render component in the render graph (like only using
VBufferRT
pass), the curve can also be loaded.