Aqsis Documentation Release 1.6
Total Page:16
File Type:pdf, Size:1020Kb
Aqsis Documentation Release 1.6 Paul Gregory May 12, 2010 CONTENTS 1 Welcome to Aqsis 1 1.1 Features..................................................1 1.2 What’s New...............................................2 1.3 Legal...................................................6 2 The Aqsis Tools 9 2.1 Getting Started..............................................9 2.2 Using the Aqsis Tool Suite........................................ 11 2.3 Aqsis and the Ri Standard........................................ 14 2.4 Further Reading............................................. 14 3 Aqsis Programmers Guide 15 3.1 Building from Source.......................................... 15 3.2 Using the RenderMan Interface C API................................. 15 3.3 The Display Driver API......................................... 15 3.4 Creating DSO Shadeops......................................... 25 3.5 Creating Procedural Plugins....................................... 25 3.6 Texture Library Reference........................................ 25 4 RenderMan Tutorials & Examples 27 4.1 Tutorials................................................. 27 4.2 Example Content............................................. 27 4.3 External Tools.............................................. 27 i ii CHAPTER ONE WELCOME TO AQSIS Aqsis is a high quality, open source, renderer that adheres to the RenderMan(tm) standard. Aqsis provides a suite of tools that together enable the generation of production quality images from 3D scene data. Based on the Reyes rendering architecture, Aqsis focuses on providing the flexibility and control required for production rendering in the animation and film industries. Aqsis was released in 2000 under a GPL license, and has since been updated to include a combination of GPL and LGPL licensed components, allowing the inclusion of certain functionality into commercial and non-commercial applications, see the Legal section for more information. Since its release, Aqsis has been continually developed and improved by a core team of developers, and includes contributions from developers in many fields. 1.1 Features RenderMan Aqsis adheres to the RenderMan standard created by Pixar. As such it can interoperate well with other tools that also support the standard. It also means that experience gained working with Aqsis will be transferrable to other RenderMan compliant solutions. Programmable Shading Pipeline Aqsis supports the full gamut of programmable shading functionality specified by the RenderMan standard. This includes surface, light, displacement, volume and imager shading. This provides the user with unprecedented flexibility in producing the look of the final image. High Quality Texture Sampling and Filtering Aqsis provides flexible and efficient methods to sample and filter im- age based textures. It natively uses tile based Tiff files to allow memory efficient, intelligent caching of image textures. This allows the use of large numbers of high resolution images for various rendering effects, again improving the artistic control offered to the user. High Level Primitive Support Aqsis uses the Reyes rendering approach, which means all primitives are broken down into sub-pixel micropolygons (MP’s) during rendering. This means that Aqsis only needs the high level surface descriptions to render from, reducing the data passed to the renderer, while ensuring a perfectly smooth sil- houette edge. Some other renderers would require, for instance NURBS geometry to be polygonised before rendering. Aqsis will render a NURBS surface directly, while ensuring that it is rendered at a sufficiently high rate to prevent artifacts on silhouette edges. Effectively, the Reyes approach provides automatic, adaptive sub- division at render time, ensuring that the surface is subdivided enough to produce an accurate representation of curved surfaces in areas that need it, while not over subdividing in areas that don’t need it. Many polygon based renderers would require a high level curved surface to be pre-subdivided, meaning the surface is likely to be subdivided too much in some areas, or not enough in others, often a user choice, this results in large amounts of data being sent to the renderer in order to avoid silhouette artifacts. Sub-Pixel Displacement The Reyes approach allows Aqsis to provide true displacements at the sub-pixel level. Where some other renderers would need densely subdivided geometry to be passed into the rendering pipeline to achieve similar functionality, Aqsis provides this for all primitive types, with no requirement to alter the geometry before it is passed to the renderer. 1 Aqsis Documentation, Release 1.6 Motion Blur (MB) Aqsis supports multi-segment motion blur. Objects can be described by any number of keyframes during a single shutter period and Aqsis will properly interpolate those keyframes to provide a motion blurred representation of the moving object. Allowing a completely arbitrary number of segments, allows the user to more accurately motion blur such things as rapidly rotating objects which, due to the linear interpolation of segments, is difficult ot achieve with only a few segments. Depth of Field (DoF) Aqsis is able to accurately blur elements in the scene to emulate the focal capabilities of a real camera. Unlike a post processed depth blur, render time depth blurring accurately captures the effect of otherwise hidden scene elements showing through highly out of focus parts of the scene, a feature not possible with post processed blur using a depth map. Shadow Mapped Ambient Occlusion Aqsis supports a special type of shadow map that contains the shadow infor- mation from a number of points in a single map, allowing ambient lighting that incorporates shadowing. By generating shadow maps from a hemisphere (or sphere) of lightsources surrounding the scene, and combining them into one large depth map, Aqsis is able to determine how occluded any part of the scene is from the sur- rounding ambient light. This information can be used to enhance the effect of ambient lighting, providing less illumination in areas that would naturally receive less ambient light. Arbitrary Output Variables (AOV) Aqsis is able to output multiple images from a single render pass, each contain- ing different information. The images can contain any shader variable, including the standard built in variables, such as surface normal, texture coordinates, surface derivatives etc. Alternatively, it is entirely possible to define new output variables of any supported RSL type to render any sort of surface information. These multiple passes can then be combined to produce various effects, such as cartoon rendering, or for complex post processing dur- ing compositing. Subdivision Surfaces (SDS) Aqsis can render Catmull-Clark subdivision surfaces, subdividing to sub-pixel level at render time. No need to pass Aqsis a heavily subdivided mesh, Aqsis will subdivide as it renders, you only need to pass it the low poly control hull. As with [[doc:nurbs|NURBS]] surfaces, the subdivision of SDS primitives is adaptive, Aqsis will subdivide only as much as necessary to produce an accurate representation of the curved surface. 1.2 What’s New 1.2.1 Aqsistex Library The old texture-handling code within Aqsis was rewritten for 1.4 and broken-out into a separate library. Improvements include faster texturing operations, EWA filtering, correct anisotropic filtering and intelligent mipmap- level interpolation... the latter of which seems a missing functionality even within most commercial renderers (to date): Aqsis 1.2 Aqsis 1.4 Commercial Renderer 2 Chapter 1. Welcome to Aqsis Aqsis Documentation, Release 1.6 More information on the aqsistex library can be found here. 1.2.2 Smooth Shading Interpolation Smooth shading interpolation was added in 1.4, allowing colour to be interpolated between the vertices of a microp- olygon rather than the constant method which produces a constant colour for each micropolygon. This feature can be accessed by using the following RIB statement: ShadingInterpolation "smooth" Constant Interpolation Smooth Interpolation Since Aqsis 1.6, smooth shading also supports the motion blur and depth of field features. 1.2.3 Grid Crack Bypass An Attribute was introduced in 1.4 to help deal with the common ‘Grid Crack’ issue, experienced by many Reyes- based renderers. The method works by expanding the micropolygons at the edges of each grid outward by a specified fraction of the micropolygon width. This feature can be accessed by using the following RIB statement: Attribute "aqsis" "expandgrids" [0.01] Normal Result Expand Grids Result 1.2. What’s New 3 Aqsis Documentation, Release 1.6 Warning: Semi-opaque surfaces and shadows using either depthfilter or midpoint are not currently supported by this method. 1.2.4 Massive Support The RunProgram procedural plugin supplied with Massive on both Linux and Windows platforms is supported by default in version 1.4 and above, with Aqsis automatically checking known locations of the plugin. Note: The DynamicLoad procedural plugin is not currently supported, though Massive Software have confirmed that the performance difference is negligible between the two methods. 1.2.5 Simbiont Support Both the official and AIR distributed versions of Darkling Simulation LLC procedural shader plugin are supported by default in version 1.4 and above, with Aqsis automatically checking known locations of the plugin. More information on using Simbiont(RM) and its related tools can be found in the Simbiont guide. 1.2.6 Improved DBO Support