Ticket #33 (closed defect: fixed)
Opened 2007-03-19T10:45:11-05:00
Last modified 2007-04-23T12:16:24-05:00
16-bit images do not display properly
Reported by: | curtis | Owned by: | curtis |
---|---|---|---|
Priority: | critical | Milestone: |
|
Component: | visbio | Severity: | |
Keywords: | Cc: | ||
Blocked By: | Blocking: |
Description (last modified by curtis)
Since switching VisBio over to the ImageFlatField logic, 16-bit images do not display properly.
It is not totally clear what is going on, but the problem seems to be an incompatibility between 16-bit BufferedImage objects and VisAD displays. Whether it is Java3D-specific, or also affects Java2D, is not yet tested due to other VisBio Java2D bugs (see ticket #32).
VisAD needs some retooling to work as efficiently as possible with 8-bit data, especially in certain configurations, in conjunction with Java3D texturing by reference. Various data configurations should be transformed as few times as possible to avoid excessive CPU usage, and 16-bit data is no exception.
More substantial improvements to VisBio's core logic would probably make this bug obsolete (see tickets #34 and #35 for more details).
Change History
comment:4 Changed 2007-04-23T12:16:24-05:00 by curtis
- Status changed from new to closed
- Resolution set to fixed
Fixed in r2654. The problem was that grabBytes really is inappropriate to use with non-8-bit data. Using the default case, 16-bit images display properly now, but may still be inefficient, due to calls to unpackFloats. Adding explicit support for shorts to ImageFlatField and visad.bom.ShadowImageFunctionTypeJ3D in the future should address this issue.