| 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 -- now 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 experimental source-skipping method to rpict for scenes | 
| 2756 | 
+ | 
with large number of light sources.  Currently works with | 
| 2757 | 
+ | 
rcontrib and separate srcsamp image-processing tool.  Controlling | 
| 2758 | 
+ | 
rpict options are -dS for skip bitmap specification and -dC | 
| 2759 | 
+ | 
for correction coefficient image.  Compile using -DSSKIPOPT | 
| 2760 | 
+ | 
to include this option. | 
| 2761 | 
+ | 
 | 
| 2762 | 
+ | 
Added strnstr.c compatibility module in ray/src/common, since | 
| 2763 | 
+ | 
it isn't present on Linux-derivatives. | 
| 2764 | 
+ | 
 | 
| 2765 | 
+ | 
Added WGMDfunc material type with programmable roughness and | 
| 2766 | 
+ | 
separate modifier paths for the different components. | 
| 2767 | 
+ | 
 | 
| 2768 | 
+ | 
Added gensurf -i option at the request of Peter Apian-Bennewitz | 
| 2769 | 
+ | 
to reverse surface normals, mostly for data input when it is | 
| 2770 | 
+ | 
a bit more difficult to adjust. | 
| 2771 | 
+ | 
 | 
| 2772 | 
+ | 
Simplified synchronization between processes sharing indirect | 
| 2773 | 
+ | 
irradiance values via an ambient file. Removed file locking | 
| 2774 | 
+ | 
operations in favor of simpler operation relying on O_APPEND flag. | 
| 2775 | 
+ | 
Not sure if this will have any affect on shared filesystems, but | 
| 2776 | 
+ | 
it should reduce overhead for massively parallel machines. | 
| 2777 | 
+ | 
 | 
| 2778 | 
+ | 
Added rad -N option to rholo run for multiprocessing when | 
| 2779 | 
+ | 
mkillum and/or mkpmap are involved in octree prep. |