--------------- Released version 1.0 beta1 --------------- 1. Bug Fix: vpCreateMinMaxOctree caused a segmentation fault for volume sizes that were not a power of two. 2. Debug Feature: Added debugging code for compositing calculation. 3. Debug Feature: Added intermediate image coordinates to vpTracePixel output. 4. Bug Fix: Added a check in vpRamp for non-increasing x coordinates to prevent a divide-by-zero error. 5. Bug Fix: Added a version of the compositing routine (vp_compAn.m4) that does not have unrolled loops, since some compilers have trouble with the unrolled version (too many basic blocks to run the optimizer in a reasonable amount of time). The unrolled version is now in vp_compAu.m4 instead of vp_compA.m4. The Makefile can be modified to choose one or the other version. 6. Feature: Added complete man pages for all library routines. 7. Bug Fix: In vpSetCallback, revert to default behavior if the function argument is NULL (instead of causing a NULL dereference later on). 8. Feature: Added vpStoreContext and vpLoadContext to save and restore rendering contexts (and to make it easier to reproduce bugs). 9. Feature: Changed vpLoadRawVolume to memory-map the file if requested 10. Bug Fix: Fixed missing and incorrect function prototypes. 11. Feature: Changed makefile and headers to use GNU autoconf. --------------- Released version 1.0 beta2 --------------- 12. Bug Fix: Fixed minus-sign error in formula for depth cueing factor. This eliminates the brightness changes that occurred when rotating a volume past a 45 degree point with depth cueing enabled. 13. Debug Feature: Added code to collect rendering statistics for performance analysis. 14. Debug Feature: Allow negative opacity threshold (to experiment with disabling the benefit of spatial data structures). 15. Bug Fix: Fixed the result of vpGeti with the VP_VIEW_Y_SIZE or VP_VIEW_Z_SIZE options. 16. Reorganization and renaming of compositing functions to make it easier to conditionally compile in just some of the special-case versions. Also merged code for unrolled loops with code for non-unrolled loops into one M4 source file. 17. Feature: Added experimental "index volume" code for faster early-ray termination. 18. Debug Feature: Added define flags to conditionally remove early-ray termination and resampling loops for performance analysis runs. 19. Feature: Added experimental brute-force raycaster for performance comparisons. 20. Feature: Implemented shadows. 21. Bug Fix: Added missing return value in vpDestroyClassifiedVolume. 22. Feature: Implemented resampling filters for scaling volume data (vpSetFilter(), vpResample(), vpBoxFilter(), vpLinearFilter(), vpBicubicFilter(), vpGaussianFilter()). 23. Feature: Added capability to produce images with a variety of pixel formats, including an optional alpha channel. *** INCOMPATIBLE CHANGE TO vpSetImage *** 24. Feature: Changed vpGetImage to produce images with the same pixel formats supported by vpSetImage, and to allow reading back the shadow buffer. *** INCOMPATIBLE CHANGE TO vpGetImage *** 25. Reorganized macros in vp_compA.m4 and vp_warpA.m4. 26. Bug Fix: Refactor view if shadows are turned on. 27. Feature: The callback functions for VP_LOG_ALLOC_FUNC, VP_LOG_FREE_FUNC and VP_STATUS_FUNC now get one additional argument, the client_data pointer associated with the context. 28. Bug Fix: Check if intermediate image buffer must be resized even if view has not changed (since number of color channels may be different). 29. Feature: Allow clamping to be disabled when computing shading lookup table (vpShadeTable). 30. Debug Feature: Added options to override default compositing direction and to retrieve compositing order. 31. Bug Fix: Check for invalid voxel field sizes when using lookup table shading. 32. Bug Fix: Don't destroy classified volume when raw voxel array is set to NULL pointer. 33. Bug Fix: Fixed error in vpNormalIndex (also affecting vpScanlineNormals and vpVolumeNormals) that resulted in incorrect calculation of isolated surface normals due to a roundoff error. This sometimes also resulted in index values greater than the maximum permissible value.