| 2395 |  |  | 
| 2396 |  | Modified bsdf2ttree to allow different parameters per input SIR file. | 
| 2397 |  |  | 
| 2398 | < | Fixed issues with very large matrix files (> 2GB) in dctimestep, rmtxop, and rcollate. | 
| 2398 | > | Fixed issues with very large matrix files (> 2GB) in dctimestep, rmtxop, | 
| 2399 | > | and rcollate. | 
| 2400 | > |  | 
| 2401 | > | Added -rf and -rb options to rmtxop to load front or back reflectance | 
| 2402 | > | matrix data from XML file rather than transmission.  (Lars Grobe suggested.) | 
| 2403 | > |  | 
| 2404 | > | Improved behavior for coincident surfaces with different materials. | 
| 2405 | > | Rather than returning one surface or the other based on floating-point | 
| 2406 | > | vagaries, opaque materials are now preferred over transparent ones. | 
| 2407 | > | If the materials are both transparent or both opaque, then whichever | 
| 2408 | > | surface appeared later in the scene description will be selected. | 
| 2409 | > | This came of a request for consistent behavior with legal CAD output | 
| 2410 | > | from Peter Apian-Bennewitz. | 
| 2411 | > |  | 
| 2412 | > | Added explicit tests for on-edge intersections with polygons.  This should | 
| 2413 | > | eliminate stray rays and tiny light leaks that often appear even in | 
| 2414 | > | well-constructed geometry. | 
| 2415 | > |  | 
| 2416 | > | Added "-s up" option to pabopto2bsdf to allow for 180 degree symmetry, | 
| 2417 | > | meaning that data repeats after 180 degree rotation (as distinguished | 
| 2418 | > | from "-s bilateral" whose data is mirrored about a vertical plane). | 
| 2419 | > | Thanks to Helen Rose Wilson for the suggestion and informing me that | 
| 2420 | > | such a thing exists. | 
| 2421 | > |  | 
| 2422 | > | Removed upper limit on number of modifiers in rcontrib. | 
| 2423 | > |  | 
| 2424 | > | Put cap on maximum ambient gradient to avoid over-extrapolation of | 
| 2425 | > | poorly computed irradiance cache values. | 
| 2426 | > |  | 
| 2427 | > | Added robjutil +T option to triangulate all faces in .OBJ description. | 
| 2428 | > |  | 
| 2429 | > | Altered BSDF library to have both front and back diffuse transmittance | 
| 2430 | > | values, which can be different.  This was necessary to avoid issues | 
| 2431 | > | caused by measurement and modeling discrepancies. | 
| 2432 | > |  | 
| 2433 | > | Added pabopto2bsdf -g option to cull near-grazing scattering to avoid | 
| 2434 | > | issues with noise and negative values. | 
| 2435 | > |  | 
| 2436 | > | Increased default dynamic range from 32 to 100 in pcond and normtiff. | 
| 2437 | > |  | 
| 2438 | > | Added -o and -n options to genbox to create .OBJ output and segment | 
| 2439 | > | edges and corners for transparent materials.  Also added -s option | 
| 2440 | > | to control smoothing for .OBJ and Radiance with segmented rounding. | 
| 2441 | > |  | 
| 2442 | > | Made it so robjutil with the +r option for Radiance output now | 
| 2443 | > | produces normal smoothing unless normals are removed with -n. | 
| 2444 | > |  | 
| 2445 | > | Added exposure preservation to pcompos when possible (i.e., when | 
| 2446 | > | there is only one input or inputs agree on exposure). | 
| 2447 | > |  | 
| 2448 | > | Added -DSHARP_RGB compile-time option to use sharp RGB color space | 
| 2449 | > | rather than historic default.  This can make for more accurate color | 
| 2450 | > | calculations, but requires that materials be recalibrated.  The | 
| 2451 | > | PRIMARIES= line is also produced on output from rpict or rvu with | 
| 2452 | > | the correct set of primaries based on how the system was compiled. | 
| 2453 | > |  | 
| 2454 | > | Added automatic flushing to the output of total, except when the -r | 
| 2455 | > | (running subtotals) option is used. | 
| 2456 | > |  | 
| 2457 | > | Improved behavior of little-used -aw option, so that it avoids sea-level | 
| 2458 | > | rise caused by adding its own estimate back into the ambient level remainder. | 
| 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 | > | Added crude ability to read and convert spectra to RGB in ximage, | 
| 2718 | > | ra_bmp, and ra_rgbe programs.  Also updated fast tone-mapping | 
| 2719 | > | library to handle spectral HSR inputs at the same time.  HSR | 
| 2720 | > | input handling was added in a similar fashion to pcond and pvalue. | 
| 2721 | > |  | 
| 2722 | > | Wrote rxpiece tool that will render pictures using tiling and | 
| 2723 | > | can handle different output formats and hyperspectral pictures. | 
| 2724 | > | Only runs on a single machine, however -- now NFS locking on | 
| 2725 | > | shared volumes.  Mainly a demonstration tool for RpictSimulManager | 
| 2726 | > | C++ class, but may have its uses. | 
| 2727 | > |  | 
| 2728 | > | Fixed a bug in BSDF sampling of sources pointed out by | 
| 2729 | > | David Geisler-Moroder, which tended to overestimate specular | 
| 2730 | > | contributions for some BSDFs. | 
| 2731 | > |  | 
| 2732 | > | Added handling of hyperspectral pictures to pextrem, though | 
| 2733 | > | results are still reported in RGB. | 
| 2734 | > |  | 
| 2735 | > | Added conversion of hyperspectral pictures to ra_xyze, although | 
| 2736 | > | it is even slower than rcomb for this process.  It is more | 
| 2737 | > | accurate than most of the other tools, at least. | 
| 2738 | > |  | 
| 2739 | > | Added handling of hyperspectral images to normtiff, a little-used | 
| 2740 | > | but handy program for quickly tone-mapping pictures and TIFFs. | 
| 2741 | > |  | 
| 2742 | > | Added conversion of hyperspectral pictures to ra_ps using | 
| 2743 | > | approximate color method. | 
| 2744 | > |  | 
| 2745 | > | Added hyperspectral picture conversion to ra_tiff, with accurate | 
| 2746 | > | color when targeting 16-bit/comp. or LogLuv output, and approximate | 
| 2747 | > | method for 24-bit RGB. |