Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug when importing USD file with BasisCurves prim included #423

Open
guiqi134 opened this issue Mar 5, 2024 · 0 comments
Open

Bug when importing USD file with BasisCurves prim included #423

guiqi134 opened this issue Mar 5, 2024 · 0 comments

Comments

@guiqi134
Copy link

guiqi134 commented Mar 5, 2024

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).

bug1

Some additional tests I have done:

  • The two_curves.pyscene can only be successfully loaded using SceneDebugger.py
  • Without using render component in the render graph (like only using VBufferRT pass), the curve can also be loaded.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant