Version 3.13.1.11
January 5, 2016
Copyright 1986, 2016 NVIDIA ARC GmbH. All rights reserved.
These release notes list changes in mental ray since version 3.12.0.1.
Note: Version 3.13 and later versions of mental ray are binary incompatible with mental ray versions 3.12.x and prior. Partial compatibility with 3.12 and older versions is maintained.
Bug fixes:
mi_mem_allocate()
function
added unneeded 8-byte padding. In particular, memory blocks were not
16-byte aligned, which could cause a crash in 3rd party shader code if
shader was assuming 16-byte alignment.{_MI_REG_STEREO_EXR_MULTIVIEW}
registry to enable saving
multiple images to the same (OpenEXR) file was set._left/_right
specified added to the file name.
Handle the file name part behind the left-most dot as a suffix. This is
needed for OEM application workflow,
<name>.<framenumber>.<file_extension>
scheme
is used. The _left/_right
are now added to the name instead of
to the framenumberBug fixes:
"trace create motion vectors"
string option is set to
on
. This change introduces partial network rendering
incompatibility with older mental ray 3.13 versions:
"trace create motion vectors"
should
be disabled in order to achieve consistent image for all tiles,
independently on which host they are rendered.ccmesh
objects, fixed approximation level if region
splitting is disabled (with SDS_NO_REGIONS
environment
variable).RTLD_NOW
flag instead of RTLD_LAZY
. This fixes random crashes in the
beginning of rendering due to the luck of thread-safety in
dlopen()
/dlsym()
implementation of Mac OS X
system libraries if lazy symbol resolution is used.Shader changes:
Bug fixes:
-fb_virtual on
command line option. Note that
cached framebuffers are recommended for large resolutions,
-fb_virtual cache
command line option).Bug fixes:
libmdl.dll
), fixed possible race condition
crash (in particular, then multiple rendering threads initiate on-demand
complication of several MDL materials simultaneously).Feature improvements:
Bug fixes:
Shader changes:
mila_light
light
shader was used.Feature improvements:
mia_lens_bokeh
(blades, but not for arbitrary
bokeh texture mask) and OEM DOF camera lens shaders.Shader changes:
coreutil
mib_tiled_texture
shader, fixed
API warnings, errors and possible crashes if more than one shader instance
was referring the same texture files. Textures DB tags were re-created
during rendering, which could cause a crash if old references were in use
by other threads.Bug fixes:
libmdl.dll
):
int len(T[<N>] arr) [ return N;
}
).operator ?
:
base::blend_color_layers
. base::file_bump_texture
).Shader changes:
layering
shader, fixed possible tile artifacts, in
particular with glossy reflection mix.Feature improvements:
"deep merge threshold"
added
in 3.12.1.2 to "deep merge z threshold"
and added
"deep merge color threshold"
(both default to 0.01). These
options allow to specify sample depth and color tolerance to merge
similar samples together.Bug fixes:
libmdl.dll
):
state::object_id
used with
operator?
libmdl.dll
.worldToCamera
and worldToNDC
matrix
attributes to OpenEXR files.imf_copy
tool used to create deep scanline files,
removed improper tile description from the tile headers.Shader changes:
mode 1
) layer weights.coreutil
Alembic abcimport
shader, added
support for per-face material for subdivision surfaces.
Bug fixes:
libmdl.dll
), fixed critical compiler cache
corruption which may cause application crash after interactive work with
MDL shaders.Feature improvements:
"id"
(instead of "label"
in the older versions)
This follows OpenEXR channel name conventions."deep merge
threshold"
(default value 0.01). This option allows to specify
sample depth tolerance to merge similar depth samples together.Bug fixes:
state::transform_vector()
,
state::transform_normal()
and
state::animation_time()
methods.Shader changes:
mia_physicalsky
shader using Preetham
model (sky_illuminance_mode 0
) used at down / night time
(sun below horizon), added a smooth falloff from sunset
values to night color (black by default) when sun goes approximately 18
degrees below horizon. Standard Preetham model does not support night
illumination. Earlier versions of this shader provided slightly adjusted
illumination of the sunset even when sun was deep below horizon. By
coincidence, the night lighting before shader fix in version 3.13.0.15 was
looking acceptable because sunset luminance was computed wrong, many times
lower than in Preetham model.
Applied corresponding fix to iray rendering mode, MDL and MetaSL shaders.
coreutil
shader, default surface shader caused
missing shadows in segmented shadow mode. Fixed.apply
flags for mila_layer_hair
phenomenon declaration in order to allow layer appropriate classification
by OEM applications.Feature improvements:
Z
to
<framebuffername>.Z
). This is consistent with other
framebuffers and with output to multi-part OpenEXR files..r/.g/.b/.a
channels as color channels. Tools producing such files do not follow
OpenEXR conventions which require upper case channel names.imf_disp
and imf_info
tools, detect triples
of .X/.Y/.Z
or .x/.y/.z
channels in layers for
convenience. Tools producing such files do not follow OpenEXR conventions
which reserve .Y
channel for intensity.imf_info
tool, print tile size instead of obsolete
remapped resolutionBug fixes:
miOptions::trace
)
disabled.imf_disp
and imf_info
tools, fixed code
detecting additional channels in a layer with standard image channels
present. For example, Z depth is detected in single-part OpenEXR file with
R
, G
, B
, A
, and
Z
channels..mi
parser, fixed memory leaks of framebuffer string
attributes and traversal function name. Shader changes:
coreutil
Alembic abcimport
shader, added
support for per-face material for triangle-only objects (see version
3.13.1.0 for the parameters). For complex polygonal objects, fixed possible
issue in per face material support added in version 3.13.1.0.facesetmaterials
parameter is enabled
(default) and face set names are present on the object, mental ray would
these face set names as API names of the material to be assigned.tubeshade
by default.
Also change noise
parameter default to 0.mila_mix
shader.Feature improvements:
"samples improved pattern"
off
.Bug fixes:
imf_disp
and imf_info
tools, fixed
detection of layers using low case r/g/b/a suffixes for channels.mi_query()
's miQ_PRI_VERTICES_BUMPS_U
,
miQ_PRI_VERTICES_BUMPS_V
,
miQ_PRI_VERTEX_INFO_INDEX
, and
miQ_PRI_VERTEX_INFO
modes.state::object_id()
when
used inside varying MDL functions.Shader changes:
coreutil
Alembic abcimport
shader, added
support for per-face material for polygonal objects. If the new boolean
facesetmaterials
parameter is enabled (default) and face set
names are present on the object, mental ray would these face set names as
API names of the material to be assigned.mila_light
shader for physically correct area
lights:
declare shader color "mila_light" ( color "color", # energy from color, intensity, exposure scalar "intensity", scalar "cone", # inner solid cone for spotlight scalar "threshold",# accuracy threshold for opti. scalar "cos_exp" # cosine exponent (disc&rectangle) ) apply light end declare
"Le<R[GS]>E"
/"Le<R[SG]>E"
,
"<L'1'><R[GS]>E"
/"<L'1'><R[SG]>E"
,
"<L'2'><R[GS]>E"
/"<L'2'><R[SG]>E"
,
"<L'3'><R[GS]>E
"/"<L'3'><R[SG]>E"
,
and"<L'4'><R[GS]>E"
/"<L'4'><R[SG]>E"
LPE attributes).mila_layer_hair
phenomenon, added scalar
direct
and indirect
weight parameters.layering_phen.mi
phenomenon declaration file, do not
link layering.so/dll/dylib
.mib_illum_hair_x
basehair
shader, added
indirect illumination contribution.Bug fixes:
-texture_continue on
command
line option was dysfunctional, fixed.Bug fixes:
Bug fixes:
base::coordinate_source
).Shader changes:
mia_physicalsky
shader, fixed a typo for
sky_illuminance_mode 0
(Preetham model), causing sky to be too
dark with sun being low above horizon. Applied corresponding fix to
iray rendering mode and for MetaSL shaders.abcimport
shader in coreutil
library:
cure_approx
parameter to
subdivisions
. The renamed parameter is now applied as the
parametric approximation to NURBS object. Bug fixes:
GPU AO and GI plugins are switched to use Optix Prime 3.7.
Feature improvements:
Bug fixes:
raylib.dll
to run in the slave mode.Shader changes:
coreutil
Alembic shader, fixed motion blur support for
topology-changing objects.Feature improvements:
Bug fixes:
Shader changes:
coreutil
shader library added in version 3.13.0.9 is now
composed of uvtile, Alembic and Ptex shaders. The old individual libraries
are still provided for compatibility reason.coreutil
Alembic shader, fixed possible crash if user
data block was used.Feature improvements:
mi_api_*
tag by name lookup
functions are made functional on slave/satellite hosts. Known limitations
in this version: the name should be shorter than 1024 symbols.Bug fixes:
{_MI_REG_LIBRARY}
registry paths were not searched. mib_tiled_texture
.imf_disp
and imf_info
tools, single channel
layers with names containing dot were not properly detected in OpenEXR
single part files. In particular, depth component was missing in some
rendered multi-layer images. Fixed.builtin_object_light
marker shader was
created on slave/satellite hosts. Fixed.mi_rc_run_query()
function is moved from integration
to the shader interface.Shader changes:
mib_tiled_texture
shader, use utiles
parameter in arbitrary image dir case only (the value mode 3
).
In other cases, the value for the parameter is detected automatically.New features:
coreutil
.
In the initial version, this library contains a single new shader
mib_tiled_texture
which provides efficient UV Tile
implementation. The shader creates and loads tile textures on demand, only
actually accessed tiles are ever loaded into memory.
declare shader color texture "mib_tiled_texture" ( integer "mode" default 0, integer "utiles" default 10, scalar "filter", string "colorprofile", vector "uvCoord", string "texture_dir", array struct "texture_info" { string "filename", vector "tile_coord" } ) end declare
The "mode"
parameter specifies which file naming and layout
convention is used. The value 0
(default) is to be used for
UDIM, the value 1
for Mudbox, the value 2
for
Zbrush. Value 3
allows to specify the list of arbitrary image
file names in the "texture_info"
array.
In mode 0,1,2, the shader would parse the directory
"texture_dir"
looking for matching file names (such as uXX_vYY
for modes 1 and 2), and derive the number of tiles in v
dimension from that data. In mode 3, the array specifies a list of
arbitrary file names and the pair of u / v coordinates (integers in the
range from 0 to max u resp. max v), corresponding the the placement of the
tile. Parameter "utiles"
specifies the number of tiles in
u
dimension. Some tiles files are allowed to be omitted.
The "filter"
and "colorprofile"
parameters are
used for creating textures tile textures.
The "uvCoord" parameter x in [0, utiles
) and y in [0,
max_v), is passed to the shader to select the tile, and load the
corresponding texture if it has not been loaded before.
Known limitations: in multi-hosted rendering, textures need to be accessible from all machines on the file system. Textures are interpreted as color textures.
Feature improvements:
"ambient occlusion
gpu *
" string options. The new names are "ambient occlusion
pass devices"
, "ambient occlusion pass oversampling"
,
"ambient occlusion pass filter"
.imf_copy
tool, added a conversion (-s
command
line option) from tiled deep data to scanline deep data.Bug fixes:
Shader changes:
"LPE"
of the framebuffer (with values like
"L<RD>E"
or "direct_diffuse"
). This is the
primary and recommended way, though the string options set like "LPE:
L<RD>E"
pointing to the framebuffer name, as well as
framebuffer names like "direct_diffuse" are still supported for backwards
compatibility.
Fixed possible wrong assignment of LPE passes to framebuffers in the earlier version of the shader.
Added framebuffer LPE support for diffuse, glossy, and specular
reflection that is transmitted, named
"L.+<RD><TS>+E"
/"indirect_diffuse_transmitted"
,
"L.+<RG><TS>+E"
/"indirect_glossy_transmitted"
,
"L.+<RS><TS>+E"
/"indirect_specular_transmitted"
.
mip_matteshadow
shader. Red
channel of the ao_dark
parameter was used for green and blue
channels as well.abcimport
Alembic shader to library version 1.5.5.
In particular, this removed the limitation on the uniformity of knots for
hair support introduced in mental ray version 3.13.0.6.Bug fixes:
OptiX libraries are removed from the distribution tapes as current mental ray and its plugins utilize OptiX Prime only. The OptiX Prime libraries are still provided with the tapes.
New features:
A new type of shader, colorprofile
, is added, making fully
programmable color transformations possible. Third parties may implement
custom color profile / LUT conversions based on their needs.
.mi
syntax
changes. A color profile shader declaration and instancing
follows the common shader declaration rules.
A shader declaration can now contain apply colorprofile
flag.
A colorprofile may now specify a shader instance with the syntax:
colorprofile "profilename" ... shader <shader instance> ... end colorprofileThe raylib integrations, miColor_profile struct::shader member is added, and a shader instance tag can be assigned by translators.
miColor
in-out pointer, and the
shader is supposed to convert the color in the direction needed.
Two new "ray types" are added: miRAY_COLOR_TO_INTERNAL
and miRAY_COLOR_FROM_INTERNAL
. When a shader is called,
miState::type
is set to one of these values. The former
value is used when a texture or texture tile is loaded into memory. The
latter one is used for output images, such as framebuffers.
For optimization purposes, a colorprofile shader may implement
SIMD-style conversion. When a shader is called, its miColor* parameters
points to array of colors, and miState::count is initialized with the
number of elements in that array (at least one). A color profile may
decide to convert more than one. In that case, it return value should
be the number of element the shader has converted. In particular, a
shader not aware / not implementing this extension would convert a
single color and return miTRUE
. As miTRUE ==
1
, the kernel would interpret this as a single element
conversion. This SIMD optimization is only available for C/C++
shaders/shading trees, not for phenomena.
As textures may be loaded outside of frame rendering scope, color profile shaders should not access options or camera, which may be not available.
Feature improvements:
Rending speed of computing the AO buffer is significantly improved, and the GPU memory consumption is decreased.
Added new string options:
The syntax [local|filter[<value>]]* [color|scalar|vector]
texture <texture_name> [colorprofile <colorprofile_name>]
<file_name> <image_type>
is added (note the
<image_type>
addition). For example, an 8-bit
"rgb"
texture used with a color profile, "rgb_h"
(half) may be a good choice for the image type to be used.
raylib integration may call mi_api_texture_file_size(0, 0, 0,
image_type)
, where image_type is a result of calling of
mi_api_texture_type_identify(mi_mem_strdup("<
image type
string>"))
. Unlike for earlier versions of mental ray, the
mi_api_texture_file_size()
function would work on non-writable
textures.
"dwaa"
and
"dwab"
lossy compression modes. Note that these modes require
a quality parameter to specify the compression level / degree of lossyness.
As of now, the values recommended by OpenEXR developers are in the range or
45 (least lossy / largest file size/ highest image quality) to 2000 (most
lossy / smallest image size).mi_geoshader_echo_tag_file()
function to the
geometry shader interface:
miBoolean mi_geoshader_echo_tag_file( const char *file_name, /* file name */ miBoolean append, /* append or rewrite file */ const char *header, /* optional string to be written to file */ miTag tag, /* DB tag to echo */ miEchoOptions *options) /* echo options */
Unlike mi_geoshader_echo_tag()
function, it takes file name
and the file opening mode (append or overwrite). The file mode is only
relevant if the file already exists. Note that his function supports UTF8
file names, including WIndows platform.
mi_geoshader_echo_tag()
function is deprecated as one of
its arguments, the FILE*
pointer, should not be passed across
dynamic library boundaries. This may cause conflicts if different compiler
versions or compiler options were used.
Bug fixes:
parti_volume
shader.rgb_h
to
rgba_h
image type.b44a
compressor support in imf
tools.Shader changes:
abcimport
shader, added hair support (from
Alembic's ICurves
). Only linear segments and cubic with
uniform knot vector are supported in this version.mip_binaryproxy
shader is switched to use
mi_geoshader_echo_tag_file()
function, which adds UTF8
filename support.The MacOSX build is switch to use CUDA version 6.0 (same CUDA version as on Windows / Linux).
Known issue:
-assert_fatal
off
command line option for mental ray standalone, or call
mi_set_assertion_fatal(0)
in the application integrating
raylib and ignore the assert message. Non-debug build is not affected.Feature improvements:
mi_api_texture_callback_def_x()
,
mi_api_object_placeholder_callback_x()
, and
mi_api_data_callback_x(
) which take thee callback arguments.
The third optional callback function is called when assembly/object/data
block is deleted. Note that mental ray can re-create data multiple times,
which leads to zero, one or multiple create callback (#1) calls interleaved
by the flush callback (#2) calls. At the end of the frame or rendering, the
delete callback (#3) is called ones. Thus, the parameters to the callbacks
should be first released in that newly added delete callback.
Note that it was a common mistake for geometry shader writers to release the callback parameters in the flush callback (#2), which could lead to a crash if the create callback (#1) was called multiple times, or to a memory leak if the create (#1) and flush (#2) callbacks were not called at all.
miRCQ_CUDA_*
modes of
mi_rc_run_query()
it is not longer necessary to load iray
plugin. raylib and mental ray standalone executables are now linked with
CUDA static runtime library in order to provide querying functionality.Bug fixes:
dlclose()
,
leaving the shader dynamic library and symbols in the process tables. For
applications integrating raylib, it could also prevent mental ray plugin
from unloading.iray
, and a phenomenon was used as the environment shader.fg_copy
.imf_copy
, fixed collating multiple levels mode
(imf_copy -c
).Shader changes:
mib_illum_hair_x
shader, added parameters:
scalar "noise"
, default value 1.0
to
control the amount of noise. In particular, the value 0.0 to disables
the builtin noise,boolean "tubeshade"
, default true
. If set
to false
, the flat surface instead of tube shape shading
is used.This versions adds a mini-tutorial on using MDL shaders with mental ray.
Bug fixes:
mi_par_random()
random number
generator function was not done properly, fixed. For shaders using random
numbers and for rendered image dithering this change may result is slight
changes of the noise.Feature improvements:
Bug fixes:
Bug fixes:
mi_api_scope_begin()
function called with multi-level
scope. In particular, this allows multilevel scope specified by the .mi
namespace
syntax, and allows scopes on shader/phenomena
declarations.-echo callgeoshader
and -echo
callassembly
command line options).fine
modifier, removed the
limit of 1 Mio triangles. This solves possible under-tessellation
artifacts..mi
file to parse was passed
without .mi extension or if the file did not exist.Note: primary compiler build versions are changed to gcc 4.8 on Linux and Clang on Macosx.
New features:
Performance of iray rendering mode has been increased significantly, for many scenes dramatically, by utilizing new algorithms. Interface and options have not changed, existing scenes render very similar to earlier iray versions, with differences limited to noise distribution.
For OEM raylib integrations, raylib can be delivered in form of a dynamic library instead of static library. In that case, OEM would receive confidential information allowing integrating application to authenticate itself with raylib. The advantage of this approach is ability to update mental ray core without updating hosting application, avoid symbol/version conflicts for common libraries like zlib, use different compiler versions and options for building mental ray and applications. The size of tapes provided to OEM integrations is reduced as well.
If rasterizer is used for rendering, the rendering framebuffer is stored
to OpenEXR file, and the boolean attribute "deep"
is set to
true
on the framebuffer, the resulted image is saved in
DeepTile form of OpenEXR 2.0 file format, containing additional information
of the pixel colors along the Z axis. It is possible to save deep and
classic data into different framebuffers during the same rendering.
This version of mental ray does not support deep data for pure ray-tracing rendering without rasterizer, however adding this feature is planned in the future.
-echo callgeoshader
command line option, geometry
shaders are called and the generated content is echoed instead of the
reference to geoshader. This mode may be useful in analyzing assets, or
in removing dependencies on the geoshader components.-echo callassembly
command line option, callbacks
of procedural assemblies are evaluated, and the generated content is
exported to .mi
files (one file per assembly).mental ray 3.13 will support Material Definition Language (MDL), including rayiray rendering mode.
A new plugin (libmdl.dll/.so/.dylib) contains MDL compiler, which converts MDL materials to the platform-specific executable code (in memory). The compiler is self-contained, in particular it does not rely on external C/C++ compiler and linker.
.mi syntax has been extended with $mdl
statement, allowing
to embed MDL material directly to .mi file. It is also possible to include
.mdl files with $include
statement. mental ray API has been
extended with mi_api_mdl_load_module()
function which allows
to load specific MDL module. All MDL materials are accessible in mental ray
API database. For convenience reason, they are put into
"mdl::"
scope.
Limitations: In mental ray 3.13, MDL materials will not allow attaching mental ray C/C++/MetaSL shaders as parameters connected to MDL material inputs. Only surface materials will be supported.
MDL support in the current revision is not functional yet.
Feature improvements:
mi_api_tag_lookup()
on previously
accessed DB tags, for example to print meaningful info messages.Features affecting backwards compatibility:
miFunction_decl
structure no longer contains the name of
the shader or phenomenon declaration. Instead of
miFunction_decl::name
, geometry shaders and raylib
integrations should use mi_api_tag_lookup()
function called on
the declaration database tag."unified sampling subfilter"
string option
(-unified_sampling_subfilter
command line option) is enabled
by default. It has proven to deliver superior quality images, in particular
along high contrast edges.Bug fixes:
Shader changes:
layering_phen.mi
file, including mila_layer_hair
phenomenon for Marschner model. Added hair utility shaders.mia_ciesky
shader, fixed scale
parameter.Bug fixes:
Shader changes:
Feature improvements:
Bug fixes:
mi_api_tag_lookup()
function was called on
a null tag. Changed the function to return null pointer instead.Shader changes:
abcimport
shader, added support for geometry
property data. The data of types color3, color4, point, normal, float, int
is attached to the mental ray's trilist verticies. The following shader is
an example of how the data can be retrieved.
inline void bary_interpolate( miScalar * result, const miScalar * va, const miScalar * vb, const miScalar * vc, const miScalar bary[3], const miUint dim) { for (miUint i=0; i < dim; i++) { result[i] = bary[0] * va[i] + bary[1] * vb[i] + bary[2] * vc[i]; } } extern "C" DLLEXPORT miBoolean vertex_color(miColor * result, miState * state, void * p) { int nu = 0; result->r = 1; mi_query(miQ_NUM_USERS, state, 0, &nu); if (nu >= 1) { int num; mi_query(miQ_PRI_NUM_VERTEX_INFOS, state, 0, &num); for (int i=0; i < num; i++) { miApi_vertexinfo vi; if (mi_query(miQ_PRI_VERTEX_INFO_INDEX, state, 0, &vi, i)) { if (vi.kind == 'u' && vi.type == miAPI_VERTEXINFO_TYPE_COLOR && vi.name && !strcmp(vi.name, "bifrostVorticit const miScalar *a, *b, *c; mi_tri_vectors(state, '*', i, (const miVector**)&a, (const miVector**)&b, (const miVector**)&c); miScalar r[20]; bary_interpolate(r, a, b, c, state->bary, vi.dimension); for (int i=0; i < vi.dimension; i++) r[i] /= 255.f; result->r = r[0]; result->g = r[1]; result->b = r[2]; if (vi.dimension == 4) result->a = r[3]; else result->a = 1.f; } } } } return miTRUE; }
layering
shaders, fixed possible crash in MILA
subsurface scattering initialization.Feature improvements:
Bug fixes:
mi_trace_continue
was used on hair objects.Feature improvements:
shader.c
file to the
distributive. On Windows platforms, this file can be compiled (with plain
C) and used instead of shader.lib
for building shader
libraries with C/C++ compiler version and/or options not matching those
used for mental ray itself.Bug fixes:
mi_trace_continue
was called by a shader on a visible area
light hit.mi_sample_light
and passing null pointers to the
dir
or dot_nl
parameters. Scenes using
mia_photometric_light
and some OEM shaders may be
affected.rgbe
framebuffers (used in particular in the HDR image file format).ptex.so
shader library was
linked (new version of mental ray use mrptex.so
instead).Shader changes:
ptex
shader:
miState::bary
.layering
shaders, fixed too bright contribution of
user IBL environment shader in glossy components.Feature improvements:
Bug fixes:
scanline on
(deprecated) option was
used with scenes with assemblies and mental ray was low on memory."gpu gi border"
<int>
could be used to extend indirect illumination data
available in a tile rendering by the specified number of pixels. The
default value is 0
.Shader changes:
mip_matteshadow
shader, fixed possible
missing symbol crash on Linux and MacosX platforms.ptex
shader, fixed the wrong fallback into version 1 for
face index and barycentric parameters.Bug fixes:
"mi"
registry attribute did not trigger its value
.mi
file parsing when registry was evaluated by the
mi_api_eval_registry()
call. Fixed. Parsing of
.mi
/ rayrc
files was not affected by this
issue.mi_shaderstate_set()/get()
functions. In particular, some OEM
packages have state shader using those functions.miRENDER_DISPLAY_PROGR
render mode was used in combination
with progressive interactive (integrated framebuffers) rendering.{_MI_REG_OPENEXR_MULTI_PART}
registry
as a synonym to {_MI_OPENEXR_MULTI_PART}
.finalgather mode "force"
./usr/local/cuda/lib
to DYLD_LIBRARY_PATH and/or
LD_LIBRARY_PATH environment variables.imf_copy
tool.Shader changes:
Feature improvements:
"gi gpu devices" <integer>
string option (see 3.12.1.10
note).Bug fixes:
mi_inclusive/exclusive_lightlist()
calls were done by shaders,
fixed.ccmesh
objects with
Ptex displacement shaders.miRENDER_DISPLAY_PROGR
rendering mode bit.Shader changes:
mila_bump_flakes
distortion types. Feature improvements:
(lib)optix_prime.1.dll/so/dylib
are added to the release tapes.
GPU ray tracing performance is improved significantly.
"gi gpu
devices"
to 0. The fallback uses the same sampling and rendering
technic as GPU rendering, and delivers close to identical (modulo floating
point precision) images as the GPU rendering."gi gpu devices"
<integer>
. The default value -1 enables all available CUDA
devices. The value 0 enforces CPU rendering. Starting with the next version
(3.12.1.11), the value will be interpreted as a bitmask, where the set but
corresponds to the CUDA devices to be used for rendering."gi gpu cpu
threads"
. The default value is -1
. The number of
rendering threads is inherited from the number of rendered threads used by
mental ray core.Bug fixes:
"ambient occlusion gpu filter" 0
string option). Feature improvements:
mi_query()
mode
miQ_HAIR_RADIUS
. The queried value is the radius (float) of
the hair at the hit point. Bug fixes:
object_id
framebuffer in case when tags are
provided by the object instance.Shader changes:
mila_diffuse_reflection
's tint
parameter.Feature improvements:
imf_disp
tool liveview mode, display the primary
framebuffer by default, instead of the framebuffer with index 0. Switch the
the index zero framebuffer when the image file(s) content is displayed."primary"
command.
The reply is a single string (no empty new line after it) with primary
framebuffer index and name, if any.imf_disp
tool on Windows, interpret forward slashes
"/"
on the command line as part of the file names, not as a
synonym to the command line switch (dash, "-"
). This is
consistent with other mental ray tools and with imf_disp
on
other platforms."gpu gi xxx"
string options to "gi gpu
xxx"
.-finalgather_gpu S
command line option is renamed to
-gi_gpu S
. The old one is kept for compatibility reason.Bug fixes:
mi_inclusive/exclusive_lightlist
calls.material_id
framebuffer, fixed values for
visible light hit (no material is set in this case).material_id
framebuffer with tag values, not
indices.object_id
framebuffer with instance tag values,
not indices.diagnostic.exr
file by
default.Shader changes:
layering
shaders, fixed possible light intensity
issues if builtin IBL is used.Feature improvements:
"material_id"
or "object_id"
resp."irradiance
lpexpr=<LPE>"
. Irradiance framebuffer(s) cannot be
computed at the same time as "radiance" framebuffers, such as the main
(beauty) color framebuffer or color framebuffers with not-irradiance
light path expressions.{_MI_REG_SHARED_DISPLACEMENT}
registry is now
ignored on ccmesh
objects, the shared displacements (no cracks
after displacement) is always applies. Non-shared displacement is only
usable for modelling in polygonal / trilist objects. Bug fixes:
Note: GPU GI and GPU AO plugins may require a GPU driver update. The minimal version on Windows platform is 320.49.
Feature improvements:
cudartXXX.dll/so/dylib
) are no longer
needed and are removed from the tapes.Bug fixes:
"finalgather sampling version"
. The value
2
(default) corresponds to the new sampling mode introduced in
version 3.12.1.5. The value 1 allows to use old sampling in order to keep
rendered images identical to those rendered with earlier mental ray
version.Shader changes:
mila_material
shader, added
bump
parameter allowing to connect bumped normal. Note that
the layout of the arguments has changed, and the declaration file is not
compatible with layering.so/.dll
from earlier versions and
vice versa.mrptex.so/dylib
) and Alembic
(abcimport.so/dylib
) shaders.Feature improvements:
miRENDER_DISPLAY_PROGR
render mode bit. If that bit is set in progressive rendering, mental ray
will start liveview display by painting sparse images similar to the
liveview of finalgather precomputation. A user would experience the same
image refinement sequence with finalgather enabled or disabled.
The number of initial preview passes can be specified with the
"progressive passes"
string option. The default value is 3.
.mi
files, echo string options and framebuffer
attributes in alphabetic order.mib_lookup_background
shader backplates. Improved support for
OEM shaders.Bug fixes:
Shader changes:
layering
shaders, improved noise functions.Feature improvements:
A driver update on machines using Iray may be required.
CUDA runtime libraries (cudartXXX.dll/so/dylib
) are no longer
needed for Iray rendering mode, though they are still used by Optix-based
components of GPU AO/GPU GI plugins.
"gpu
gi"
. The following values are possible:
"on"/on
: GPU acceleration is enabled. Diffuse paths are
computed on the GPU, specular subpaths are computed on the CPU. The
performance gain compared to CPU rendering is moderate, however the
rendered images are of superior quality."diffuse"
: GPU acceleration is enabled, only diffuse
paths are computed. Performance gain is dramatic, however some scenes
may be darker or luck some illumination from light paths with specular
components."off"
: GPU acceleration is disabled.-finalgather on
with -fin
on
.-unified_sampling_subfilter on/off
, which allows to
enable/disable the new unified sampling scheme introduced in version
3.12.1.0. Note that with the command line parser improvement, it is still
possible to use shortcuts for -unified
command line
option.Bug fixes:
"finalgather precomp legacy"
off
string option) was not affected.miImg_file
structure used 32-bit integer to
contain image file size on disk. In order to allow image files larger than
4GB, it was expanded to 64-bit. A redundant field filesize0
was introduced for binary compatibility, which allows usage of old shaders
operating on image files smaller than 4GB without recompilation.Shader changes:
Bug fixes:
Feature improvements:
Application may register the callback with the new
mi_rc_progressive_set_callback()
function:
typedef miBoolean (*miRc_progressive_callback) ( void *data, /* callback data */ miUint subframe, /* subframe count */ miUint what); /* event type */ miBoolean mi_rc_progressive_set_callback( miRc_progressive_callback callback, void *callback_data);If registered, the callback is called as follows:
what
parameter value is
MI_RC_PROGRESSIVE_FG_PRECOMP_PASS_FINISHED
in that case.
The subframe value is the sequential number of the precomp pass (1, 2,
3).what
parameter value is
MI_RC_PROGRESSIVE_SUBFRAME_FINISHED
in that case. The
subframe number is the same as the one returned by the
mi_rc_progressive_get_update_count()
function.what
parameter value
MI_RC_PROGRESSIVE_RENDER_FINISHED
. It is essential that
integration application does not apply mi_api_
changes to
the scene before that callback is called. Failure to do so may cause
crashes on accessing non-existing database elements by mental ray
shaders still running.Bug fixes:
mi_rc_progressive_set_buffers()
before starting rendering.miState::bary
coordinates were not in the [0,1]
interval.apply
contour
flag.Shader changes:
layering
shaders, fixed apply
flags.
Adjusted roughness
parameter default for glossy reflections
and refractions.base_phen.mi
, some OEM application rely on it.Feature improvements:
Bug fixes:
mi_geoshader_tessellate()
function was called on a placeholder
object. In particular, this function is used by the
mip_binaryproxy
geometry shader.Feature improvements:
"unified sampling
subfilter" on
, or with the command line option -unified
subfilter
. New filtering requires more memory (proportional to
filter support size on x and y axis, number of pixels in the tile, number
of filtered framebuffers and number of running rendering threads). For a
typical scene (64x64 tile size, 8 CPU threads, filter size 5x5, single
color framebuffer) the memory overhead is in the ballpark of 20 MB.
In the current version, new scheme is not supported if min samples rate is less than one sample per pixel. The filtering would switch to the old scheme in that case.
Bug fixes:
Shader changes:
mia_physicalsun
shader, fixed tile artifacts with
mode
different from 0.layering
shaders, fixed possible crashes if
mila_layer
/mila_mix
were used outside of the
layering scope (like rendering of swatches). Replaced fatal calls with
errors.basehair
shader, fixed random seed initialization. Fixed
alpha value for no-hit transparency.Feature improvements:
The acceleration can be enabled with "finalgather gpu" on
string option or with -finalgather_gpu on
command line option.
In the current implementation, only diffuse bounces are supported. The
deprecated finalgather filter
option is disabled in that mode
(value set to 0).
Bug fixes:
Shader changes:
architectural
and MILA layering
shaders,
fixed possible tile artifacts on reflections.layering
shaders, improved message reporting.layering
shaders, fixed a memory leak.mia_photometric_light
shader, fixed light intensity for
lights instances with non-orthonormal (in particular, scale)
transformations.abcimport
shader fixed interpolation of motion
transform matrices.Feature improvements:
Bug fixes:
-message <module list> time
command line option). Changes affecting compatibility:
mi_rc_progressive_set_camera()
and
mi_rc_progressive_refine()
functions are removed from the
progressive interactive integration interface. mi_rc_progressive_update_buffer_first_subframe()
function is
removed form the progressive integration interface. This function was not
utilized by existing raylib integrations.Shader changes:
abcimport
shader, added support for motion
instance transformations in the .abc files.layering
shader, fixed possible NaN result in case
of strong bump mapping.Bug fixes:
ccmesh
SDS objects with displacement, fixed possible
crash if ptex
shader was used.mi_raylib_exit()
was not called.mi_mi_parse_assembly()
function was not exposed in
geometry shader interface, fixed. This function may be used from assembly
creation callbacks to parse .mi
file as part of the
assembly.mi_lib_registry_begin()/add()
from the integration
interface. Equivalent mi_api_*
functions should be used
instead.Shader changes:
abcimport
shader, added "fps"
parameter to specify number of frame per second. The default value is 24.
Fixed motion vector values create for motion scenes.Feature improvements:
mi_rc_progressive_update_single_buffer(size_t which)
. For
scenes with multiple framebuffers, calling this function on the framebuffer
currently displayed is more efficient than updating all framebuffers."light
importance sampling samples" <int> [<int>]
. If set, this
option is overwrites the per-light high/low sampling rates for lights used
with light importance sampling mechanism. If the second value is omitted,
the default value of 1 is used. Added corresponding command line option
"-light_is_samples <int> [<int>]"
."light importance sampling precomp"
to
"light importance sampling precomputed"
. The old options is
still supported for backwards compatibility.Bug fixes:
mi_api_int_strdup
function symbol (referenced by
mi_api_strdup
macro) has not been exposed in the raylib
integration library, fixed.Shader changes:
abcimport
shader to Alembic 1.5 (adding
Ogawa support). "mila compatibility mode"
. If the value is set to 1, shading
is computed using the mental ray 3.11 model. physical_light
shader used for light
instances with non-orthonormal light transformations, fixed the color
intensity for the visible hits.dielectric_material
shader, fixed possible
refraction artifacts if unified sampling was used.Feature improvements:
Added new function mi_rc_progressive_set_buffers()
which
allows to specify multiple output framebuffers.
Bug fixes:
mi_raylib_exit()
was not called..mi
files.Shader changes:
Feature improvements:
Bug fixes:
ccmesh
objects with displacement, fixed possible cracks
on the face boundaries.Shader changes:
ptex
shader, silence possible ray type warnings.Feature improvements:
miQ_PRI_TYPE
query code to allow direct query of the
type of primitive of state->pri
for shader writers.Bug fixes:
mi_point/vector/normal_to/from_camera()
functions were not
used correct transforms, causing artifacts for shaders using those
functions.miSTAGE_TILE
. Fixed.Shader changes:
mia_portal_light
shader and
mia_photometric_light
shaders, fixed possible abort of photon
emission.Feature improvements:
.mi
syntax to support (anonymous) shader struct
outputs containing (named) substructs.Bug fixes:
typedef
statement was parsed.Shader changes:
.mi
file are renamed from
ptex.dll
/ptex.mi
to
mrptex.dll
/mrptex.mi
resp. in order to avoid
possible DLL name conflict. In order to maintain compatibility with old
scenes, ptex.mi
file now forward includes to
mrptex.mi
. mental ray kernel's loaded recognizes an attempt to
load tex.dllptex.dll
and tries to load mrptex.dll
instead. If mrptex.dll
is not found, the ptex.dll
is loaded.abcimport
shader, fixed possible wrong motion
transforms.mila_bump_flakes
shader, renamed
"weight"
output to "visibility"
in order to
avoid input/output parameter name conflict in OEM applications.Feature improvements:
Bug fixes:
""
) part name for the primary color framebuffer. This assures
the match of the layer order with images rendered with mental ray 3.11 and
prior.imf_disp
tool used in the DISP (Liveview) mode, fixed
possible crash if the name of one of the rendering framebuffers is longer
than 32 characters.Shader changes:
Bug fixes:
Shader changes:
thin_walled
parameter from individual layers to
the mila_material
shader itself. Added
backface_shader
parameter.New features:
This new feature builds atop of the light importance sampling introduced in mental ray 3.11. It allows importance driven distributions of samples across multiple lights, which significantly reduces noise and/or rendering time for scenes with large number of lights. The light sample distribution is implemented in the kernel, no shader code changes are required.
Light importance sampling is enabled with the "light importance
sampling"
string option. Possible values are:
on
, "on"
: enable light importance sampling
across all area lights in the scene."all"
: enable light importance sampling across all area
and point/spot lights in the scene. This is useful for scenes with
large number of point lights. However, for scenes with one or few point
lights, the "on" value is recommended to use."local"
: importance sampling is applied to each light
individually, with no cross-balancing among the lights. This
corresponds to the light importance sampling in mental ray 3.11.off
, "off"
(default): light importance
sampling is disabled.User lights are excluded from importance sampling mechanism in all modes.
The string option "light importance sampling quality"
takes
one or two float numbers as arguments and uses those as multiplier(s) for
the total number of samples to generate over the set of lights. If two
values are given, the first one is the quality for primary rays and the
second for the secondary rays. If only one is given, it is taken for both
primary and secondary rays. The default value is 1.0
(i.e.,
the same number of samples as with light importance sampling disabled, but
with re-balancing). Note that the semantic of this option has changed since
mental ray 3.11.
The string option "light importance sampling precomp"
on/off
(default value off
) enables the
precomputed mode for lights. If enabled, the core does not execute the
light shaders but uses precomputed light emission values instead. This mode
assumes that lights are isotropic ( (emit at the same intensity in all
directions). If during the precomputation phase the kernel detects that
some of the lights are not isotropic, those lights are excluded from the
precomputation and processed with the light shader calls (but the light
importance sampling itself still applies to those lights). For textured
lights the precomp option produces much smoother images in less time, at
the expense of some possible loss in illumination details.
The string option "light importance sampling resolution"
(default value 1.0
) is used to control pre-sampling of area
lights. It should normally be changed only for lights with high variance
HDR textures attached to them. Higher option values correspond to finer
presampling.
Command line options -light_is
on/off/all/local
,-light_is_quality F [F]
, and
-light_is_precomp on/off
can be used to override corresponding
scene string options.
Known limitations in this version: moving lights are not supported. For light with IES profiles, especially with those with "blind spots", presampling may misestimate intensity leading to illumination artifacts and/or slow convergence rate.
Feature improvements:
By default, mental ray is now writes multiple layers into separate Parts. By convention, the names of OpenEXR Parts match the names of mental ray's framebuffers. Internally, imf tools prepend the channel/layer names with the name of the OpenEXR part (and "." if the Part name is not empty).
The new registry "{_MI_OPENEXR_MULTI_PART}"
(default:
"on"
) is added to control multi-part / vs. single part
multi-layer output. If the registry's value is set to "off"
,
mental ray would create a single-part multi-layer image file, which would
be compatible with OpenEXR 1.7 (unless other new OpenEXR 2.0 features are
used).
Note: multi-part OpenEXR files are not backwards compatible with tools based on OpenEXR 1.7 or earlier library. Unless the number of parts is equal to one, such tools would report error on attempt to open the image file. In particular, this applies to mental ray 3.11 and imf tools for mental ray 3.11 and earlier.
“iray
interactive mode” <bool>
). This mode is recommended
to be used for interactive rendering in OEM applications.-message all default,time
-- command line
option)."tag"
,
miIMG_TYPE_TAG
) natively (without conversion) into OpenEXR
files.Bug fixes:
scanline on
mode is used in combination with unified
sampling.Shader changes:
.abc
files.layering
(MILA) shader package has been significantly
refactored.OpenEXR is a flexible image format designed by Industrial Light & Magic, which has been integrated in mental ray 3.3.0.389 and later versions. OpenEXR comes with the following copyright, which applies only to the OpenEXR portion of mental ray:
Copyright � 2004, Industrial Light & Magic, a division of Lucasfilm Entertainment Company Ltd. Portions contributed and copyright held by others as indicated. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The ``Pxr24'' compression in OpenEXR comes with the following copyright, which apples only to parts of the OpenEXR portion of mental ray:
Copyright � 2004, Pixar Animation Studios
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Multi-View Images, Deep Compositing and other OpenEXR files come with the following copyright, which apples only to parts of the OpenEXR portion of mental ray:
Copyright � 2007, Weta Digital Ltd
Copyright � 2012, Weta Digital Ltd
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The ``DWA'' compression in OpenEXR comes with the following copyright, which apples only to parts of the OpenEXR portion of mental ray:
Copyright (c) 2009-2014 DreamWorks Animation LLC.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Ptex is a file format and library for per-face texture mapping designed by Walt Disney Animation Studios, which has been integrated in mental ray 3.10.0.1 and later versions. Ptex comes with the following copyright, which applies only to the Ptex portion of mental ray:
PTEX SOFTWARE Copyright 2009 Disney Enterprises, Inc. All rights reserved
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Disclaimer: THIS SOFTWARE IS PROVIDED BY WALT DISNEY PICTURES AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT AND TITLE ARE DISCLAIMED. IN NO EVENT SHALL WALT DISNEY PICTURES, THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND BASED ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Alembic is the computer graphics interchange format developed by Lucasfilm and Sony Imageworks. In mental ray 3.10, support is provided in geometry shader form. Alembic comes with the following copyright, which applies only to the Alembic portion of mental ray:
TM & � 2010-2011 Lucasfilm Entertainment Company Ltd. or Lucasfilm Ltd. All rights reserved.
Industrial Light & Magic, ILM and the Bulb and Gear design logo are all registered trademarks or service marks of Lucasfilm Ltd.
� 2010-2011 Sony Pictures Imageworks Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
ALEMBIC ATTACHMENT A — REQUIRED NOTICES FOR DISTRIBUTION
The Alembic Software is distributed along with certain third party components licensed under various open source software licenses ("Open Source Components"). In addition to the warranty disclaimers contained in the open source licenses found below, Industrial Light & Magic, a division of Lucasfilm Entertainment Company Ltd. ("ILM") makes the following disclaimers regarding the Open Source Components on behalf of itself, the copyright holders, contributors, and licensors of such Open
Source Components:
TO THE FULLEST EXTENT PERMITTED UNDER APPLICABLE LAW, THE OPEN SOURCE COMPONENTS ARE PROVIDED BY THE COPYRIGHT HOLDERS, CONTRIBUTORS, LICENSORS, AND ILM "AS IS" AND ANY REPRESENTATIONS OR WARRANTIES OF ANY KIND, WHETHER ORAL OR WRITTEN, WHETHER EXPRESS, IMPLIED, OR ARISING BY STATUTE, CUSTOM, COURSE OF DEALING, OR TRADE USAGE, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT WILL THE COPYRIGHT OWNER, CONTRIBUTORS, LICENSORS, OR ILM AND/OR ITS AFFILIATES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE OPEN SOURCE COMPONENTS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Boost C++ Libraries.
Boost Software License – Version 1.0 August 17th, 2003 Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following:
The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
MurmurHash3
The MIT License (MIT)
Copyright (c) <year> <copyright holders>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright Information
� 1986, 2016 NVIDIA ARC GmbH. All rights reserved.
This document is protected under copyright law. The contents of this document may not be translated, copied or duplicated in any form, in whole or in part, without the express written permission of NVIDIA ARC GmbH.
The information contained in this document is subject to change without notice. NVIDIA ARC GmbH and its employees shall not be responsible for incidental or consequential damages resulting from the use of this material or liable for technical or editorial omissions made herein.
NVIDIA and the NVIDIA logo are registered trademarks of NVIDIA Corporation. imatter, indeX, Iray, MDL, mental images, mental ray, and RealityServer are are trademarks and/or registered trademarks of NVIDIA ARC GmbH. Other product names mentioned in this document may be trademarks or registered trademarks of their respective companies and are hereby acknowledged.