renderman 13.5

GO TO ADMIN PANEL > ADD-ONS AND INSTALL VERTIFORO SIDEBAR TO SEE FORUMS AND SIDEBAR

jack_sparow

Membre très actif
#1
Je lance un petit thread sur le prochain renderman, pixar va bientot annoncer la sortie de la future version de son moteur phare qui innove pas mal et continu a introduire les futures directions nouvelles que prend renderman et les nombreuses possibilités qu'il va offrir.

pixar va presenter normalement au siggraph ses projets pour le futur du development renderman mais aussi renderman pour maya et pour max qui est en projet. l'abandon et donc la fin de RAT remplacé par renderman pro studio, qui risque de mettre du temp avant d'etre vraiment a maturité mais dont les possibilités semble bien plus abouttis dans labsolue que celles de rat. la version de studio pro sera donc normalement encore repoussée a dans quelques mois pour paufinement intensif. Rfm 2.0 sera présenté aussi avant tout car tres proche de sa version finale.

Ilm qui à utilisé exclusivement renderman sur ses dernieres grosses prods a savoir pirate 3 et transformer devrait presenter son recent outil de lightcaching temp reel, d'une qualité exeptionnelle pour lighter leur scene avec un rendu de qualité proche de la qualité finale actualisé instantanement a chaque modoficayion du ligthing ou des attributs des shaders. ils l'ont utilisé sur pirate 3 et transformer et ca semble tres efficace au dire de ceux qui m'en ont parlé et l'ont pratiqué la bas.

attendons donc le siggraph pour voir tout cela en image.
 

jack_sparow

Membre très actif
#2
ca y est il est enfin là et bien là, pixar a serieusement annoncé son virage de proposer un moteur de rendu derniere generation permetant d'explorer encore plus les dernieres recherches en 3d.

le gros feature est sans aucun doute le authoring shader et shader object, qui enfin elimine toutes les barrieres de description des shaders renderman et etend les possibilités tres loin. Maintenant par exemple on peut creer un shader de surface qui fait aussi du displacement ou des ligth ou tt en meme temp, lorsqu'il fallait creer uniquement un shader surface light ou displacement auparavant.

evidemment le multithreading est un enorme plus, il inclu les textures, le ptfilter et le network rendering, il ya donc un full multithreading desormais, ainsi que le stereo rendering permettant le rendu de plusieurs plans de camera en meme temp.

second feature tres novateur est le point based photon qui permet de rendre de la GI avec photon map , mais avec un plus la possibilité de gerer les shaders et les lumieres en grande quantité, cela reste aussi exploitable pour le subsurface scattering et tt effet pouvant profiter des photon maps. Pour le moment la technique est encore nouvelle et va demander quelques ajustement et surtout d'etre encore accelereret ameliorer mais c'est le seul rendu a proposer cette technologie qui est tout de meme plus precise que le path tracing en terme de transport de lumiere mais qui est aussi bien plus rapide a calculer. bref un peu comme le point based CB et occ le point based photon ajoute la touche de precision a l'approximation de la GI dans renderman ( evidemment ceci avant tout pour ameliorer les temps de rendu en production sur des grosses scenes complexes essentiellement et jusque la impossible a rendre.)

On peut aussi noter larriver des CSG qui support le raytrace et les ambient occlusion, un depth of field amelioré et plus rapide et une foule de petit ajout dans le code, nottamment concernant l'openGL, ou les languages GPU qui tendent a faire croire que pixar cherche a exploiter lavantage des derniere generation GPU pour concevoir aussi des systems de lighting temp reel comme le lightspeed dont je vous avez deja parlé precedement.

les amateurs de renderman pourront apprécier que Pixar reste toujours innovant et fait avancer renderman encore plus loin a chacune de ses releases.

 

jack_sparow

Membre très actif
#4
j'en ai parlé dans le post juste avant sur le lightspeed qui est un soft de relighting temp reel avec renderman qui utilise le GPU pour recalculer le rendu. C'est mieux que le Lpics de pixar car ca gere la transparence et la motion blur et aussi urtout ya pas besoin de recoder tous les shaders pour qu'ils fonctionnent en GPU.
Bon c'est pas encore sur mais pixar voulait ajouter un nouveau irma a renderman donc ils y pense , faudra voir ca dans l'avenir.

j'ajoute pour les amateurs de renderman qui veulent savoir exactement les features de cette nouvelle version 13.5 le release note. voila !


Welcome to RenderMan 13.5!

Once again, the latest release is a significant step forward on the evolutionary path of our world-renowned rendering technology. Here are the highlights of Release 13.5. Follow the hyperlinks to learn more details behind the new features.
New Features

* Shader Objects and Co-Shaders
o Shaders can now have member variables and multiple methods. For example, a surface shader can define displacement and opacity methods, and share state with them via member variables.
o Shaders can call methods and read member variables of other shaders. For example, an illuminance loop can be replaced by a for loop that calls a method in each light shader, and a light shader can call methods in the surface shader.
o Scene descriptions can now include co-shaders that allow custom shading pipelines to be expressed in the shading language itself. For example, layers of a surface appearance can be expressed as separate shader instances, which are combined by a shader that calls the displacement, opacity, and surface methods of each layer.
* Multi-Camera Rendering — you can now render a frame from multiple viewpoints simultaneously in a single pass, in far less time than it would take to render the frame in multiple passes.
* Arbitrary Bucket Orders — you can now choose different bucket rendering orders with: Option "bucket" "string order".
* Other New Shading Language Features — RSL now features resizable arrays, nested return statements, short-circuiting logical operators, and more.
* More flexible photon emission and scattering — photon emission and scattering can be controlled by point clouds, making photon mapping possible for more types of light sources and surfaces (for example textured surfaces).
* pixar.license — The 13.5 release makes use of a new licensing system, which includes a new license file format and a new PixarLicenseServer for floating licenses. Sites will need to install the new server in parallel with their old server if both 13.5 and older releases will be used simultaneously. License "host-IDs" are likely the same as before, with the exception of FlexLM dongle-based IDs, which cannot be supported by the new system. There may be Alfred or other queuing system integration implications when using PixarLicenseServer. Please see the licensing documentation for installation and other details.

Performance Enhancements

* The performance of multi-threaded rendering has been greatly improved. Acceleration of rendering is now less scene dependent (even scenes without much shading now take full advantage of multiple threads). Scalability to more than two processors has been significantly improved. PRMan now renders scenes more quickly in threaded mode than multi-process mode and uses signficantly less memory when doing so.
* Netrender is now multi-threaded — Netrender can now make use of multi-threaded rendering on prman-13.5 servers when the “-F” option is given. For example:

netrender -F -h salt -h pepper:2 -h salt frame1.rib

will launch a single 2-cpu prman process on the host “salt” and another on “pepper”. This is in contrast to the usual behavior in which each hostname instance results in a separate prman process on the named server (four total in this example). Processing time with the new coalesce-to-threads mode will be better than individual processes and memory utilization will drop dramatically. Note that the “-F” option requires all rendering assets to be accessible “locally” on the server, through regular file i/o routines (which can include network-mounted files), rather than relying on the netrender client itself to supply RIB, textures, and shaders via rendering protocol. Organizing asset access in this way will itself improve netrender performance, even for single-threaded renders. The older non-coalescing -F behavior is still available via the new “-Fsinglethreaded” option.
* Ptfilter is now multi-threaded — Use the -threads N option to set the number of threads. If this option is not used, the default is mode is single-threaded.
* Depth of Field is now much faster for objects moving to or away from the camera.

Miscellaneous Changes and Bug Fixes
Geometry

* An issue with non-raster oriented dicing for Loop subdivision surfaces resulting in infinite splits has been fixed.
* The new attribute Attribute "procedural" "string attributes" allows procedural primitives to override their own inherited graphics state, without affecting the graphics state inherited by contents of the procedural.
* Fixed a crash that could arise when reporting statistics for implicit surface plugins.

Hiding and Visibility

* Dithering patterns are now repeatable even with changed CropWindow or bucket order settings. They are also now repeatable in multi-threaded runs.
* A new hider "opengl" has been added which takes advantage of OpenGL acceleration. This hider supports all geometry types, pixel samples, arbitrary output variables (depending on OpenGL implementation), and pixel filter usages. It has limited (inaccurate) support for transparency, trim curves, and deep shadow output. It currently does not support motion blur, jitter, depth of field, usage of depthmasks, arbitrary clipping planes, CSG, matte objects, and visible point shading.
* The "paint" and "zbuffer" hiders are supported again, and have been improved. Previously, these hiders did not provide support for RiCurves, RiPoints, RiPixelSamples, RiPixelFilter, RiTrimCurve, and crack elimination; this is no longer the case. Motion blur, transparency, jitter, depth of field, arbitrary output variables, depth masking, arbitrary clipping planes, level of detail, CSG, matte objects, and visible point shading are still not supported in these hiders.
* Hider "hidden" "maxvpdepth" now works as a limiter on visible point memory, and not just as an upper bound on the depth complexity of deep shadow maps.
* Errors seen when using sigma hiding in conjunction with depth of field or points have been corrected, and the speed improved.
* A new Attribute "stochastic" "int pointfalloff" [0|1] adds a transparency falloff for RiPoints, which can be shaped with the "stochastic" "pointfalloffpower" option to the "stochastic" hider.

Texture and Shadow Maps

* The texture() function can now use elliptical filter regions. This reduces blur in extreme cases such as highly warped texture coordinates, grazing viewing direction, or extreme perspective. Set the "filter" parameter to "ewa" (for 'elliptical weighted average') or add the line '/prman/texturefilter ewa' to the rendermn.ini file.
* Fixed crash during read of invalid texture files.
* The jittering used during shadow lookups is now properly consistent through multi-threaded renders.
* The RxShadow and RxSoftShadow calls, when used with a single input point, now apply jitter correctly.
* The Rx texture related functions now handle the same set of parameters as the equivalent texture related shadeops; the added parameters include "filter", "width" and "zlerp".
* The filtering of highly blurred cube-face environment map lookups has been improved, particularly in the corners and along the cube edges. Previously, the returned result was too dark.

Point Clouds and Brick Maps

* We now allow more than 64 variables in point cloud files and brick maps. This enhancement required a prototype change in the point cloud API function PtcOpenPointCloudFile(), from:

PtcOpenPointCloudFile(..., char **vartypes, char **varnames)

to:

PtcOpenPointCloudFile(..., char ***vartypes, char ***varnames)

RMAN_POINTCLOUD_API_VERSION can be used to distinguish between the old and the new API version: it is undefined or 1 in PRMan 12.5 and 13.0, and 2 in PRMan 13.5.
* If a brick map contains P, N, s and t data and has a shader that calls the texture() function, appropriate texture filter widths will be automatically computed. (In earlier releases, those filter widths would be 0, leading to aliasing artifacts.)
* Brick map geometric primitives with opacity data can now be used to cast semitransparent ray-traced shadows.
* Point-based occlusion() can now be used to compute reflection occlusion. Point-based indirectdiffuse() can now be used to compute glossy reflections. Examples can found in sections 2.6 and 3.4 of the Point-based application note.
* A bug was fixed in the clamping of point-based occlusion() for uniform distribution. Now there is better clamping and hence less over-occlusion. (No change for cosine distribution.)
* Cosine weighting is now used for voxel data accumulation when rendering brickmaps as geometry which have supplied normals. This eliminates a class of quadrant artifacts.
* A crash seen when shading brickmap geometry which occured in shaders which access __gdu and __gdv has been fixed.
* The renderer now provides more comprehensive memory statistics for brick maps and point clouds.
* Garbage values are no longer copied into texture3d() variables if the lookup failed.
* Ptfilter's -samplebase parameter for occlusion and colorbleeding has been fixed.
* brickmake now supports the option -addpn to allow automatic creation of P and N channels in a brick map without requiring P and N channels in the input point data.
* Duplicate baked grid points (which can occur when netrendering) emitted by the pointcloud driver can be eliminated by setting the parameter EliminateDuplicateGrids to 1 on a DisplayChannel line.

Shading Language

* Most shader error messages now specify the offending source file and line number (provide the shader was compiled by version 13.0 or higher of the shader compiler). This feature increases shader definition memory by 5-10%, since is requires retention of debugging info. Use 'Option "shading" "debug"
' to disable it, or set /shading/debug to 0 in rendermn.ini.
* Shader objects are cached differently, which might affect shader memory usage. The size of the shader object cache can be controlled by a new option ("shading/objectcache").
* The compiled shader file format (SLO) has changed. Old SLOs will continue to work, but new SLOs will not work in older versions of the renderer unless they are compiled with the new "-back" command-line option.
* The shader compiler now typechecks unused functions, which were previously ignored. Functions are now typechecked in the order in which they are declared, rather than the order in which they are called.
* RSL array initialization is now faster and more compact. Previously an initializer for an array of length N was compiled into N assignment shadeops. Array constants are now used instead.
* Floating point constants in compiled shaders now have increased precision.
* Constant folding has been slightly improved in the shader compiler.
* RSL printf and format strings can now use %i in addition to %d.
* The global variables "time" and "dtime" are now varying in RSL. For backwards compatibility, shaders that rely on uniform time can be compiled with a new "-utime" command-line option.
* Fixed a crash that could arise if the wrong shader type is given to RiSurface, RiLightSource, etc.
* Fixed a shader compiler bug that corrupted arguments for an illuminance loop with an empty body.
* A displacement memory corruption issue involving displacement shaders with output arguments, which could lead to a crash, has been fixed.
* Fixed a typechecker bug that permitted assignment of a scalar to an array variable.
* Fixed a crash that was caused by a fixed-length format string buffer in the printf shadeop.
* The renderer now warns if lights are called from a displacement shader (or method), or from an opacity, prelighting, or postlighting method. The state of lights (e.g. AOVs and member variables) is sometimes reset between displacement and surface shading, so allowing displacement shaders to call stateful lights can lead to potential inconsistencies.
* Fixed a message passing bug that affected varying float arrays of length two.
* Added compiler option "-nolintuov" to disable warning about relying on input values of uniform output arguments. The warning can also be disabled by adding "#pragma nolint" before the argument declaration or use.
* An optional method parameter whose length is unspecified can now have a default value of any length.

Ray Tracing

* Constructive Solid Geometry (CSG) is now fully supported for ray tracing.
* The gather() function can now take an array of explicit ray directions. See the new section "Explicitly specifying gather directions" in the updated ray tracing application note.
* A special token "*" is now supported by Attribute "grouping" "string membership". Primitives with this membership will be hit-testable by any ray, no matter what the subset of that ray, or even if the ray doesn't specify a subset.
* An error in the computation of the I vector when shading displaced ray hits has been fixed.
* Many raytracing pinholes (false ray misses due to floating-point accuracy) were fixed.
* We now ensure that the I vector can never be (0,0,0) at ray hits. (This avoid NaNs if, for example, dividing by length(I).)
* Fixed the shading language rayinfo() function for the queries "direction", "origin", "length" which did not always return correct values at all ray hit points. The fixed version will sometimes generate slightly different results than before, even in previously "working" cases; for example directions may be normalized where they were not before. The "origin" query now requires a varying output argument to account correctly for varying "I". Also see the deprecated section below for a way to compute these values directly, likely with better performance.
* The normals for raytraced RiSpheres computed when the world to camera transform has a negative determinant is now correct.
* Shading for ray traced NuPatches with u/v parameter ranges outside the range of [0, 1] has been fixed.

Displays

* Deep shadows can now be output as the primary display.
* The min, max, zmin, zmax, and average pixel filters now allow pixel filter size greater than 1x1. Note that this may result in differences for scenes that did not explicitly set the pixel filter; output images may now be inheriting the default pixel filter width of 2x2, rather than resetting the pixel filter width to 1x1. An issue with the zmin/zmax filter related to geometry moving in depth has also been fixed.
* "a" as an AOV now works identically to "a" in primary displays. Previously it obeyed incorrect compositing rules.
* Issues with OpenEXR display drivers and bugs in libz on Unix platforms have been resolved.
* The average and max pixel, and all depth filters no longer take into account AOV or depth values from pixel samples which should be considered invisible due to the opacity threshold limit.

Other

* netrender from 13.0 is not forwards compatible with the new arbitrary bucket order protocol of 13.5. To network render using 13.5, the 13.5 version of the netrender binary must be used.
* Conditional expressions in RiIfBegin statements now perform a limited “short-circuit evaluation” which prevents look-up failures on the “right hand side” when the “left hand side” definitively determines the conditional state. For example:

IfBegin "defined(user:passtype) && $user:passtype == 'shadow'"

will now successfully skip the "$user:passtype" lookup if the value is not defined in the current context.
* Stdout is now flushed before an error message is reported to ensure that any earlier output appears in the correct order.
* Statistics are now generated under most circumstances when prman crashes.
* On Unix platforms PRMan will generate a statistics file if SIGHUP is sent to the process.
* A new statistics XML stylesheet is supplied with this release. Newly generated statistics will refer to the new stylesheet, while old statistics will continue to use the old stylesheet. If you use the "statistics/stylesheet" option to specify a different stylesheet, be sure to update it if necessary.
* The layout of the statistics for some subsystems (e.g. shading) has changed (but not the XML schema).
* Fixed a bug in illuminance, illuminate, and solar that only arose on trimmed grids and inside varying conditionals.
* Fixed parsing of DSO paths with windows drive letters.
* Fixed artifacts in wavelet noise.
* The system memory statistics reported by OSX builds have been improved to be comparable to other platforms.
* ScopedCoordinateSystems are now correctly utilized when computing displacement bounds.
* Resolved a rare threading error that occurred when using RxNoise() and RxCellNoise().
* Fixed deadlock during reads of gzip ReadArchives.

Deprecated

* The irradiancecache() function is eliminated. Use bake3d() and texture3d() with "cachelifetime" "frame" instead.
* The occlusion() and indirectdiffuse() parameters "handle" and "filemode" are ignored. Use bake3d() and texture3d() instead.
* rayinfo("direction") is deprecated; use normalize(I) instead.
rayinfo("origin") is deprecated; use P-I instead.
rayinfo("length") is deprecated; use length(I) instead.
* Option "limits" "extremedisplacement" and Hider "occlusionbound" have been removed and are no longer supported (or necessary).
* Attribute "visibility" "camera" and Attribute "visibility" "transmission" no longer support the uniform string versions of the parameters. Any such string values will now be entirely ignored (with a R20042 warning), and should be replaced with usage of the int parameter, and in the case of "visibility" "transmission" possibly supplemented with Attribute "shade" "string transmissionhitmode". For example,

Attribute "visibility" "string transmission" "opaque"

should be replaced with

Attribute "visibility" "int transmission" [1]
Attribute "shade" "string transmissionhitmode" ["primitive"]
 
Haut