| 2383 |  | the sun is not visible above the horizon. | 
| 2384 |  |  | 
| 2385 |  | ========================= | 
| 2386 | < | Version 5.4 | 
| 2386 | > | Version 5.4 (Released November 5, 2023) | 
| 2387 |  |  | 
| 2388 |  | Added rcollate -c option to force operation to continue even if it | 
| 2389 |  | seems unnecessary.  Made tool more robust. | 
| 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 (Released July 23, 2025) | 
| 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.  Added support for | 
| 2676 | + | new WGMDfunc type as well, which is considerably more flexible | 
| 2677 | + | at supporting different spectral components. | 
| 2678 | + |  | 
| 2679 | + | Added handling of spectral pictures (HSR) to rcode2bmp script. | 
| 2680 | + |  | 
| 2681 | + | Minor change to rcollate to allow explicit byte records to | 
| 2682 | + | be any specified length without checks against header input. | 
| 2683 | + |  | 
| 2684 | + | Added new hemisphere type to rfluxmtx, "h=cie" for CIE sky | 
| 2685 | + | scanner positions.  These are 145 patches with identical | 
| 2686 | + | row counts to Tregenza, but starting from a different | 
| 2687 | + | azimuth and reversing row directions at adjacent altitudes. | 
| 2688 | + |  | 
| 2689 | + | Added optimization for long argument lists and arrays in | 
| 2690 | + | the calcomp routines used for rendering and in rcalc, etc. | 
| 2691 | + |  | 
| 2692 | + | Added error estimate spreading to ambient super-sampling | 
| 2693 | + | algorithm (-as) to improve performance especially in | 
| 2694 | + | scenes with sharp cut-offs. | 
| 2695 | + |  | 
| 2696 | + | Added -i option to gendaymtx to match -i option of gendaylit. | 
| 2697 | + | Thanks to Yongqing for initial implementation. | 
| 2698 | + |  | 
| 2699 | + | Changed rcrop so negative #rows or #cols counts back from end. | 
| 2700 | + |  | 
| 2701 | + | Added rcomb -n option for multi-processing of very large matrices. | 
| 2702 | + |  | 
| 2703 | + | Made it so rsplit and rlam can handle any number of input files | 
| 2704 | + | up to active open file descriptor limit. | 
| 2705 | + |  | 
| 2706 | + | Taoning Wang added genssky tool for generating spectral sky | 
| 2707 | + | descriptions. | 
| 2708 | + |  | 
| 2709 | + | Taoning added gensdaymtx utility based on gendaymtx, and | 
| 2710 | + | added epw2wea -a option to include required information. | 
| 2711 | + |  | 
| 2712 | + | Fixed bug introduced in Auguest 2022 (5.4 release) in distant | 
| 2713 | + | light source sampling, which caused aiming failures.  (Thanks | 
| 2714 | + | to Mike DiPompeo of LightStanza for reporting the issue.) | 
| 2715 | + |  | 
| 2716 | + | Added rxpict rendering tool based on C++ RpictSimulManager class. | 
| 2717 | + | Multi-processing and spectral output are supported. | 
| 2718 | + |  | 
| 2719 | + | Wrote rxpiece tool that will render pictures using tiling and | 
| 2720 | + | can handle different output formats and hyperspectral pictures. | 
| 2721 | + | Only runs on a single machine, however -- no NFS locking on | 
| 2722 | + | shared volumes.  Mainly a demonstration tool for RpictSimulManager | 
| 2723 | + | C++ class, but later added to standard Rmakefile targets. | 
| 2724 | + |  | 
| 2725 | + | Fixed a bug in BSDF sampling of sources pointed out by | 
| 2726 | + | David Geisler-Moroder, which tended to overestimate specular | 
| 2727 | + | contributions for some BSDFs. | 
| 2728 | + |  | 
| 2729 | + | Added crude ability to read and convert spectra to RGB in ximage, | 
| 2730 | + | ra_bmp, ra_ps, and ra_rgbe programs.  Also updated fast tone-mapping | 
| 2731 | + | library to handle spectral HSR inputs at the same time.  HSR | 
| 2732 | + | input handling was added in a similar fashion to pcond and pvalue | 
| 2733 | + | for convenience. | 
| 2734 | + |  | 
| 2735 | + | Added handling of hyperspectral images to normtiff, a handy program | 
| 2736 | + | for quickly tone-mapping Radiance RGBE, XYZE, and now hyperspectral | 
| 2737 | + | pictures, as well as IEEE float or LogLuv TIFFs. | 
| 2738 | + |  | 
| 2739 | + | Added handling of hyperspectral pictures to pextrem, though | 
| 2740 | + | results are still reported in RGB. | 
| 2741 | + |  | 
| 2742 | + | Added accurate conversion of hyperspectral pictures to ra_xyze. | 
| 2743 | + |  | 
| 2744 | + | Added hyperspectral picture conversion to ra_tiff, with accurate | 
| 2745 | + | color when targeting 16-bit/comp., LogLuv, and float output, | 
| 2746 | + | and the approximate method for 24-bit RGB. | 
| 2747 | + |  | 
| 2748 | + | Taoning added genssky -L option to specify global and diffuse | 
| 2749 | + | illuminance values for output calibration. | 
| 2750 | + |  | 
| 2751 | + | Created C++ class for rcontrib and example tool rxcontrib, which | 
| 2752 | + | is an optional compile in the src/rt directory.  The output | 
| 2753 | + | model is more general in some respects and the operations more | 
| 2754 | + | efficient, but standard output is not supported, nor is ASCII | 
| 2755 | + | results data. | 
| 2756 | + |  | 
| 2757 | + | Added strnstr.c compatibility module in ray/src/common, since | 
| 2758 | + | it isn't present on Linux derivatives. | 
| 2759 | + |  | 
| 2760 | + | Added WGMDfunc material type with programmable roughness and | 
| 2761 | + | separate modifier paths for the different components. | 
| 2762 | + |  | 
| 2763 | + | Added gensurf -i option at the request of Peter Apian-Bennewitz | 
| 2764 | + | to reverse surface normals, mostly for data input, when it is | 
| 2765 | + | a bit more difficult to adjust. | 
| 2766 | + |  | 
| 2767 | + | Added rad -N option to rholo call for multiprocessing when | 
| 2768 | + | mkillum and/or mkpmap are involved in octree prep. | 
| 2769 | + |  | 
| 2770 | + | Added ability of gendaymtx to read EPW as well as WEA files. | 
| 2771 | + | When EPW input is provided, the 3-hour average dew point is | 
| 2772 | + | used to compute a more accurate precipitable water content | 
| 2773 | + | value.  It currently does not use these data directly from | 
| 2774 | + | the EPW input, relying instead on a dew-point-to-W calculation. | 
| 2775 | + | This follows the request and recommendations of David G-M. | 
| 2776 | + |  | 
| 2777 | + | Removed limitation in rfluxmtx, which was disallowing distant | 
| 2778 | + | and local receivers. Found this to be a perfectly valid approach | 
| 2779 | + | for some annual daylighting scenarios. | 
| 2780 | + |  | 
| 2781 | + | Wrote new pvsum tool to handle cases dctimestep can't, like | 
| 2782 | + | spectral input pictures.  It also adds a -N option for multi- | 
| 2783 | + | processing on Unix machines, which utilizes memory-mapped | 
| 2784 | + | inputs for efficient i/o sharing. | 
| 2785 | + |  | 
| 2786 | + | Made it so genBSDF can use spectral rendering for a | 
| 2787 | + | more accurate photometric result. | 
| 2788 | + |  | 
| 2789 | + | Changed default matrix representation to float rather than | 
| 2790 | + | double, which uses less RAM and supports faster operations | 
| 2791 | + | in general.  Build with compiler flag: | 
| 2792 | + | -DDTnativeDTrmx_native=DTdouble | 
| 2793 | + | to get back higher precision representation. | 
| 2794 | + |  | 
| 2795 | + | Taoning Wang updated genssky and gensdaymtx to provide illuminance | 
| 2796 | + | calibration and accept EPW files directly as input. | 
| 2797 | + |  | 
| 2798 | + | Added -e expr and -f file.cal options to all rendering tools, not | 
| 2799 | + | just rcontrib/rxcontrib.  Feature request from Peter A-B. | 
| 2800 | + |  | 
| 2801 | + | Fixed slight bias in indirect calculation caused by ambient | 
| 2802 | + | collision detection, pointed out by Jon Sargent.  New code | 
| 2803 | + | keeps track of rejected samples and sells them back to | 
| 2804 | + | later calls to get something closer to a true Poisson | 
| 2805 | + | sampling method. | 
| 2806 | + |  | 
| 2807 | + | Altered rvu "origin" command to take shift amounts forward, | 
| 2808 | + | right, and up rather than taking an explicit origin, which | 
| 2809 | + | can be done easily enough with the "view" command.  Peter A-B | 
| 2810 | + | requested (sort of). | 
| 2811 | + |  | 
| 2812 | + | Added genglaze tool created by Taoning Wang to generate | 
| 2813 | + | spectral glazing materials based on CGDB data and models. | 
| 2814 | + |  | 
| 2815 | + | Fixed bug that caused inf and nan errors with -cw setting | 
| 2816 | + | where longer wavelength was substantially less than limits | 
| 2817 | + | of specified spectra. | 
| 2818 | + |  | 
| 2819 | + | Created bsdfpeaks utility to identify and report full-width, | 
| 2820 | + | half-maximum sizes of peaks in SIR and XML inputs. | 
| 2821 | + |  | 
| 2822 | + | Changed default super-sampling in bsdf2ttree from 256 to 64, | 
| 2823 | + | since there doesn't seem to be much benefit to the higher | 
| 2824 | + | sampling rate for most BSDFs. | 
| 2825 | + |  | 
| 2826 | + | Fixed problem with "mirror" primitive, which was not permitting | 
| 2827 | + | indirect rays to transmit through alternate material type. | 
| 2828 | + | Thanks to Jon Sargent for finding problem and help resolving it. | 
| 2829 | + |  | 
| 2830 | + | Added experimental C++ based rxpiece tool to default installation | 
| 2831 | + | in makeall/Rmakefile. | 
| 2832 | + |  | 
| 2833 | + | Added rcomb -mt option to transpose concatenation matrix. | 
| 2834 | + |  | 
| 2835 | + | ==================== | 
| 2836 | + | Version 6.1 (Released July 24, 2025) | 
| 2837 | + |  | 
| 2838 | + | Fixed array limit bug in EPW file loader. | 
| 2839 | + |  | 
| 2840 | + | Fixed bug in rcomb, rmtxop -c and -C option not accepting file paths | 
| 2841 | + | starting with '.' | 
| 2842 | + |  | 
| 2843 | + | Fixed ordering of spectral data in gensdaymtx output. | 
| 2844 | + |  | 
| 2845 | + | Fixed crash in new Poisson sampling routines for large settings of -ad. | 
| 2846 | + |  | 
| 2847 | + | Fixed reversal of direct and diffuse values in EPW files.  (Thanks to | 
| 2848 | + | Taoning Wang for spotting the error.) | 
| 2849 | + |  | 
| 2850 | + | Fixed issue with zero radiation values in gensdaymtx (TW). | 
| 2851 | + |  | 
| 2852 | + | (The above fixes were released as official patch 6.0.1) | 
| 2853 | + |  | 
| 2854 | + | Fixed issues with rtpict running under Windows.  Thanks to Mehlika | 
| 2855 | + | Inanici for help finding problems and testing. |