Skip to content
New issue

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

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

Already on GitHub? # to your account

Bug in HdResampleRawTimeSamples() #1549

Closed
GrangerFX opened this issue Jun 30, 2021 · 2 comments
Closed

Bug in HdResampleRawTimeSamples() #1549

GrangerFX opened this issue Jun 30, 2021 · 2 comments

Comments

@GrangerFX
Copy link

Description of Issue

There is a bug in the templated function HdResampleRawTimeSamples that causes errors in motion blur streaks.
HdResampleRawTimeSamples() is called from HdTimeSampleArray::Resample().
The functions are in pxr\imaging\hd\timeSampleArray.h
The bug is in this line:
// Linear blend of neighboring samples.
float alpha = (us[i]-u) / (us[i]-us[i-1]);

Alpha is used to interpolate between vs[i-1] and vs[i] in the next line:
return HdResampleNeighbors(alpha, vs[i-1], vs[i]);

As u gets closer to us[i], alpha gets closer to zero. As u gets closer to us[i-1], alpha gets closer to 1.
This is backwards. Alpha should get closer to 1 as u gets closer to us[i] and closer to 0 as u gets closer to us[i-1].

The fix is as follows:
// Linear blend of neighboring samples.
float alpha = (u-us[i-1]) / (us[i]-us[i-1]);

Steps to Reproduce

Any use of HdTimeSampleArray::Resample() with a different number of samples than count will show an error in the resulting time sample values.

System Information (OS, Hardware)

Any/NA

Package Versions

USD v21.05

Build Flags

Any/NA

@jilliene
Copy link

jilliene commented Jul 7, 2021

Filed as internal issue #USD-6776

@blevin
Copy link
Member

blevin commented Jul 15, 2021

Thanks for calling this out. We checked in a fix to our internal tree today and it should be on the the github dev branch soon after the USD 21.08 release.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants