ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/doc/notes/ReleaseNotes
(Generate patch)

Comparing ray/doc/notes/ReleaseNotes (file contents):
Revision 1.396 by greg, Thu Nov 18 19:38:20 2021 UTC vs.
Revision 1.479 by greg, Thu Mar 27 01:26:55 2025 UTC

# Line 2459 | Line 2459 | rise caused by adding its own estimate back into the a
2459   It ended up being simple enough to derate the final average by the factor
2460   corresponding to average surface absorpition, thus removing the average
2461   from the final bounce estimate.
2462 +
2463 + Introduced ies2rad upgrades by Randolph Fritz.  Randolph says it
2464 + fixes the following problems:
2465 +
2466 +        1. Generates correct Radiance geometry for spheres in 1995, 2002,
2467 +        and 2019 IES files.
2468 +
2469 +        2. Generates correct Radiance geometry for vertical cylinders that
2470 +        are taller than they are wide.
2471 +
2472 +        3. Ignores the file source ("File Generation Type") field in the
2473 +        2019 version of the file, which would otherwise be incorrectly used
2474 +        as an output multiplier.
2475 +
2476 +    It also offers the following enhancements:
2477 +
2478 +        1. Shape information is included in the .rad file comments.
2479 +
2480 +        2. 1995, 2002, and 2019-version luminous opening geometry is
2481 +        accounted for.
2482 +
2483 +        3. The 2002 and 2019 IES file versions are recognized and
2484 +        processed appropriately.
2485 +
2486 +        4. I have made an attempt to do something intelligent with less
2487 +        common "luminous opening" shapes in the 1995, 2002, and 2019 versions
2488 +        of the standard, though I have not implemented any support for new
2489 +        geometry; approximations are substituted and warning messages issued.
2490 +        Unfortunately, this code is not tested, since I don't have any IES
2491 +        files that use these shapes.
2492 +
2493 + Added support for depth-of-field blurring in vwrays using -pd option.
2494 + Also, made -c count work with vwrays -i, producing multiple samples
2495 + per indicated pixel position.  At the same time, support for the -pd
2496 + option was added to rtpict, which calls on vwrays for its samples.
2497 +
2498 + Fixed issue with BSDFs that didn't obey reciprocity, where direct
2499 + sampling wasn't following exactly with indirect sampling.  This was
2500 + discovered and reported by Jon Sargent.
2501 +
2502 + Created checkBSDF tool to test XML BSDF reciprocity and perform similar
2503 + sanity checks.
2504 +
2505 + Added -O option to pvalue and pextrem to report watts/sr/m^2 even if
2506 + picture is XYZE.
2507 +
2508 + Made subtle changes to header i/o routines to preserve alignment in
2509 + binary file formats to enable memory-mapping.  Implemented memory-mapped
2510 + matrix loading in rmtxop for binary double files.
2511 +
2512 + Removed ambient value sorting, which was written when ambient caches
2513 + could overwhelm available memory.  This is rarely the case these days,
2514 + and the added code complexity and updating of cache values with LRU
2515 + counts dirties pages that would otherwise remain clean, so it was
2516 + often a loss even when VM was an issue.
2517 +
2518 + Added iso2klems script to compute a Klems BSDF based on specular
2519 + and diffuse measurements as a function of incident angle.
2520 +
2521 + Fixed issue with over-counting diffuse component during aBSDF
2522 + peak extraction.
2523 +
2524 + Added dctimestep -x and -y options to specify image dimensions
2525 + for multiple outputs corresponding to result vectors.
2526 +
2527 + Added -P option to rcalc to pass formatted input when cond is <= 0.
2528 +
2529 + Created rcrop utility for cropping matrices and pictures more
2530 + conveniently, correcting view information.  Expect it to be handy
2531 + for extracting rows and columns from matrices, mostly.
2532 +
2533 + Changed pcomb so -o option elides original exposure values
2534 + from indented source headers.
2535 +
2536 + Added getinfo -r option, which is similar to -a except it will
2537 + replace indicated lines with new ones.
2538 +
2539 + Slight change to vwrays -d option to not spit out "-ld-", and to
2540 + produce "-ld+" without requiring input picture as argument.
2541 +
2542 + Added automatic overture calculation to rtpict with -n > 1 if
2543 + ambient cache is on and file is named.  If straight image output
2544 + is requested, we randomize all samples and avoid cache collisions.
2545 +
2546 + Added cnt -s option to shuffle output.
2547 +
2548 + Fixed issue with divide-by-zero errors in the ambient super-sampling
2549 + routine discovered by Jon Sargent of Solemma.  This affected regions
2550 + that had zero radiance, such as black backgrounds or unlit areas
2551 + with -av 0 0 0, when super-sampling was effectively disabled, causing
2552 + some loss in accuracy of the results.
2553 +
2554 + Updated Klems Half- and Quarter-bases to match angles currently used
2555 + in WINDOW.
2556 +
2557 + Eliminated most aiming failures for triangular light sources, at the
2558 + expense of conservative sampling near the centroid.  Thanks to
2559 + David Geisler-Moroder for his help on this.
2560 +
2561 + Increased maximum set size to 8191 to avoid set overflow errors.
2562 +
2563 + Added source obstruction test to statistics being kept on which
2564 + sources were visible in adaptive shadow testing code.  Previous
2565 + behavior was likely over-estimating source contributions.
2566 +
2567 + Added diffuse components into maximum directional hemispherical
2568 + reported by checkBSDF, so comparing to 100% is easier for each
2569 + component.
2570 +
2571 + Fixed incorrect calculations in iso2klems script, thanks to
2572 + help from Jacob Jonnson.
2573 +
2574 + Updated official copyright and license according to new wording
2575 + provided by Jean Haemmerle at the LBNL Intellectual Property Office.
2576 + Both were copied verbatim from e-mail I received from Taoning Wang
2577 + on 8/20/2022.
2578 +
2579 + Added -features option to rpict, rtrace, and rcontrib to check
2580 + which features are present or look for specific feature support.
2581 + This addition was suggested by Peter Apian-Bennewitz as an easier
2582 + way to determine which version of Radiance is installed and what
2583 + it supports, and is timely as we begin our refactoring of the
2584 + rendering code.  There are no current plans to add this to rvu.
2585 +
2586 + Added falsecolor -odim, -orct, and -c0 options to overlay grid of
2587 + values on image.  This was requested by Rob Shakespeare.
2588 +
2589 + Added -i* and -o* options in rhcopy for reading rays from the
2590 + standard input and writing rays from holodeck to standard output.
2591 + This will hopefully be useful in combining rholo with rcontrib.
2592 +
2593 + Added further checking for coincident (overlapping) flat surfaces,
2594 + preferring front sides to back sides in the ray intersection
2595 + calculation.  This only applies to rings and faces, as the other
2596 + surface types would have required additional calculations to
2597 + make them work.  Material transparency is still the primary
2598 + consideration, now followed by ray hit side, followed by
2599 + modifier definition order in the input.
2600 +
2601 + Increased octree and object limits to allow scenes with billions
2602 + of primitives.
2603 +
2604 + Made reciprocity averaging default to "off" in bsdf2ttree, as it seems
2605 + to create more problems than it solves.
2606 +
2607 + ====================
2608 + Version 6.0
2609 +
2610 + Extensive changes to enable spectral rendering, which defaults to "off"
2611 + to maintain backwards-compatibility with previous versions, with the
2612 + exception of the ambient file format, which is changed.  The MAXCSAMP
2613 + macro, which defaults to 24, sets the maximum number of spectral samples.
2614 + The actual number of samples is set by the "-cs" option, which defaults
2615 + to 3 for rpict, rtrace, and rcontrib.  The latter two programs support
2616 + straight spectral output, but rpict is initially restricted to
2617 + tristimulus output pictures.  New pattern primitives "spectrum",
2618 + "specfile", and "specfunc" have been added as a means to specify
2619 + spectral reflectance, emittance, etc. to materials that still have
2620 + only 3 color channels.  Those RGB channels will still affect the
2621 + spectrum if used.  Unfortunately photon-mapping is currently broken when
2622 + spectral sampling is enabled, but we will fix this as soon as possible.
2623 + Calculation overhead appears to be approximately 10-15% for RGB
2624 + renderings compared to version 5.4a.
2625 +
2626 + Added spectral rendering to rvu as well, and made -cs and -cw
2627 + options standard across the rendering library.  I also brought
2628 + mkillum, ranimove, rsensor, and mksource into the fold.  These
2629 + tools were broken in the initial release.  (Hopefully, they are
2630 + working now, but none have been tested as yet.)
2631 + There was also an indexing bug in the spectral->RGB conversions
2632 + that made reds into blues and vice versa, which has been fixed.
2633 +
2634 + Added i/o for spectral pictures to rmtxop, the first program that can
2635 + ingest them.  (Only rtrace, rcontrib, and rfluxmtx can render them.)
2636 + New symbolic rmtxop -c options, such as RGB, XYZ, S (for scotopic)
2637 + and M (for melanopic) make color conversions simpler.  Alternatively,
2638 + a reference matrix or picture may be given and the color space of
2639 + that file will be used.  The -C option takes either a symbolic
2640 + color space or reference file and is "sticky," so it applies to
2641 + all subsequent input files that do not have their own -c right ahead
2642 + of them.
2643 +
2644 + Added spectral picture support to rcrop and radcompare.
2645 +
2646 + Added new utility, rcomb, which is something like a combination
2647 + of rmtxop and pcomb, it works with all the inputs and
2648 + outputs that rmtxop handles, but allows for general expressions
2649 + like those in pcomb for putting matrices together, working on
2650 + an element at a time.  (No resizing of matrices or accessing
2651 + neighboring elements, as permitted in pcomb.)  It saves memory
2652 + over rmtxop by operating on a row at a time, so can handle
2653 + input and output matrices with any number of rows.  It does
2654 + provide for a single matrix-multiplication operation at the end,
2655 + which only requires memory for that final matrix.
2656 +
2657 + Added support for filtering hyperspectral images to pfilt.
2658 +
2659 + Added support for 1- and 3-component float matrix i/o to
2660 + pcomb to allow for better interoperability.
2661 +
2662 + Added support for -co+ option to rtpict, so it can directly
2663 + produce hyperspectral images.
2664 +
2665 + Added new "specdata" and "specpict" primitives to support
2666 + interpolated spectral data files and hyperspectral images
2667 + as patterns.
2668 +
2669 + Added support for multispectal sampling in rsensor, which will
2670 + put out as many color channels as specified in any -cs option
2671 + (default is 3 for RGB).
2672 +
2673 + Added ability of mgf2rad to convert spectral data at least
2674 + for light, glow, plastic, and metal primitive types.  Need
2675 + to use new '-s' option to get new output.
2676 +
2677 + Added handling of spectral images to rcode2bmp script.
2678 +
2679 + Minor change to rcollate to allow explicit byte records to
2680 + be any specified length without checks against header input.
2681 +
2682 + Added new hemisphere type to rfluxmtx, "h=cie" for CIE sky
2683 + scanner positions.  These are 145 patches with identical
2684 + row counts to Tregenza, but starting from a different
2685 + azimuth and reversing row directions at adjacent altitudes.
2686 +
2687 + Added optimization for long argument lists and arrays in
2688 + the calcomp routines used for rendering and in rcalc, etc.
2689 +
2690 + Added error estimate spreading to ambient super-sampling
2691 + algorithm (-as) to improve performance especially in
2692 + scenes with sharp cut-offs.
2693 +
2694 + Added -i option to gendaymtx to match -i option of gendaylit.
2695 + Thanks to Yongqing for initial implementation.
2696 +
2697 + Changed rcrop so negative #rows or #cols counts back from end.
2698 +
2699 + Added rcomb -n option for multi-processing of very large matrices.
2700 +
2701 + Made it so rsplit and rlam can handle any number of input files
2702 + up to active open file descriptor limit.
2703 +
2704 + Taoning Wang added genssky tool for generating spectral sky
2705 + descriptions.
2706 +
2707 + Taoning added gensdaymtx utility based on gendaymtx, and
2708 + added epw2wea -a option to include required information.
2709 +
2710 + Fixed bug introduced in Auguest 2022 (5.4 release) in distant
2711 + light source sampling, which caused aiming failures.  (Thanks
2712 + to Mike DiPompeo of LightStanza for reporting the issue.)
2713 +
2714 + Added rxpict rendering tool based on C++ RpictSimulManager class.
2715 + Multi-processing and spectral output are supported.
2716 +
2717 + Wrote rxpiece tool that will render pictures using tiling and
2718 + can handle different output formats and hyperspectral pictures.
2719 + Only runs on a single machine, however -- no NFS locking on
2720 + shared volumes.  Mainly a demonstration tool for RpictSimulManager
2721 + C++ class, but may have its uses.
2722 +
2723 + Fixed a bug in BSDF sampling of sources pointed out by
2724 + David Geisler-Moroder, which tended to overestimate specular
2725 + contributions for some BSDFs.
2726 +
2727 + Added crude ability to read and convert spectra to RGB in ximage,
2728 + ra_bmp, ra_ps, and ra_rgbe programs.  Also updated fast tone-mapping
2729 + library to handle spectral HSR inputs at the same time.  HSR
2730 + input handling was added in a similar fashion to pcond and pvalue
2731 + for convenience.
2732 +
2733 + Added handling of hyperspectral images to normtiff, a handy program
2734 + for quickly tone-mapping Radiance RGBE, XYZE, and now hyperspectral
2735 + pictures, as well as IEEE float or LogLuv TIFFs.
2736 +
2737 + Added handling of hyperspectral pictures to pextrem, though
2738 + results are still reported in RGB.
2739 +
2740 + Added accurate conversion of hyperspectral pictures to ra_xyze.
2741 +
2742 + Added hyperspectral picture conversion to ra_tiff, with accurate
2743 + color when targeting 16-bit/comp., LogLuv, and float utput,
2744 + and the approximate method for 24-bit RGB.
2745 +
2746 + Taoning added genssky -L option to specify global and diffuse
2747 + illuminance values for output calibration.
2748 +
2749 + Created C++ class for rcontrib and example tool rxcontrib, which
2750 + is an optional compile in the src/rt directory.  The output
2751 + model is more general in some respects and the operations more
2752 + efficient, but standard output is not supported, nor is ASCII
2753 + results data.
2754 +
2755 + Added strnstr.c compatibility module in ray/src/common, since
2756 + it isn't present on Linux derivatives.
2757 +
2758 + Added WGMDfunc material type with programmable roughness and
2759 + separate modifier paths for the different components.
2760 +
2761 + Added gensurf -i option at the request of Peter Apian-Bennewitz
2762 + to reverse surface normals, mostly for data input, when it is
2763 + a bit more difficult to adjust.
2764 +
2765 + Added rad -N option to rholo call for multiprocessing when
2766 + mkillum and/or mkpmap are involved in octree prep.
2767 +
2768 + Added ability of gendaymtx to read EPW as well as WEA files.
2769 + When EPW input is provided, the 3-hour average dew point is
2770 + used to compute a more accurate precipitable water content
2771 + value.  It currently does not use these data directly from
2772 + the EPW input, relying instead on a dew-point-to-W calculation.
2773 + This follows the request and recommendations of David G-M.
2774 +
2775 + Removed limitation in rfluxmtx, which was disallowing distant
2776 + and local receivers. Found this to be a perfectly valid approach
2777 + for some annual daylighting scenarios.
2778 +
2779 + Wrote new pvsum tool to handle cases dctimestep can't, like
2780 + spectral input pictures.  It also adds a -N option for multi-
2781 + processing on Unix machines, which utilizes memory-mapped
2782 + inputs for efficient i/o sharing.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines