RiMakeTextureV(char *pic, char *tex, RtToken swrap, RtToken twrap, RtFilterFunc filterfunc, RtFloat swidth, RtFloat twidth, RtInt n, RtToken tokens[], RtPointer parms[]), RiMakeBump(char *pic, char *tex, RtToken swrap, RtToken twrap, RtFilterFunc filterfunc, RtFloat swidth, RtFloat twidth, ...), RiMakeBumpV(char *pic, char *tex, RtToken swrap, RtToken twrap, RtFilterFunc filterfunc, RtFloat swidth, RtFloat twidth, RtInt n, RtToken tokens[], RtPointer parms[]), RiMakeLatLongEnvironment(char *pic, char *tex, RtFilterFunc filterfunc, RtFloat swidth, RtFloat twidth, ...), RiMakeLatLongEnvironmentV(char *pic, char *tex, RtFilterFunc filterfunc, RtFloat swidth, RtFloat twidth, RtInt n, RtToken tokens[], RtPointer parms[]), RiMakeCubeFaceEnvironment(char *px, char *nx, char *py, char *ny, char *pz, char *nz, char *tex, RtFloat fov, RtFilterFunc filterfunc, RtFloat swidth, RtFloat ywidth, ...), RiMakeCubeFaceEnvironmentV(char *px, char *nx, char *py, char *ny, char *pz, char *nz, char *tex, RtFloat fov, RtFilterFunc filterfunc, RtFloat swidth, RtFloat ywidth, RtInt n, RtToken tokens[], RtPointer parms[]), RiMakeShadow(char *pic, char *tex, ...), RiMakeShadowV(char *pic, char *tex, RtInt n, RtToken tokens[], RtPointer parms[]); extern RtVoid RiArchiveRecord(RtToken type, char *format, ...), RiReadArchive(RtToken name, RtArchiveCallback callback, ...), RiReadArchiveV(RtToken name, RtArchiveCallback callback, RtInt n, RtToken tokens[], RtPointer parms[]); extern RtVoid RiErrorHandler(RtErrorHandler handler); /* Error Codes 1 - 10 System and File Errors 11 - 20 Program Limitations 21 - 40 State Errors 41 - 60 Parameter and Protocol Errors 61 - 80 Execution Errors */ #define RIE_NOERROR ((RtInt)0) #define RIE_NOMEM ((RtInt)1) /* Out of memory */ #define RIE_SYSTEM ((RtInt)2) /* Miscellaneous system error */ #define RIE_NOFILE ((RtInt)3) /* File nonexistent */ #define RIE_BADFILE ((RtInt)4) /* Bad file format */ #define RIE_VERSION ((RtInt)5) /* File version mismatch */ #define RIE_DISKFULL ((RtInt)6) /* Target disk is full */ #define RIE_INCAPABLE ((RtInt)11) /* Optional RI feature */ #define RIE_UNIMPLEMENT ((RtInt)12) /* Unimplemented feature */ #define RIE_LIMIT ((RtInt)13) /* Arbitrary program limit */ #define RIE_BUG ((RtInt)14) /* Probably a bug in renderer */ #define RIE_NOTSTARTED ((RtInt)23) /* RiBegin not called */ #define RIE_NESTING ((RtInt)24) /* Bad begin-end nesting */ #define RIE_NOTOPTIONS ((RtInt)25) /* Invalid state for options */ 173
#define RIE_NOTATTRIBS ((RtInt)26) /* Invalid state for attribs */ #define RIE_NOTPRIMS ((RtInt)27) /* Invalid state for primitives */ #define RIE_ILLSTATE ((RtInt)28) /* Other invalid state */ #define RIE_BADMOTION ((RtInt)29) /* Badly formed motion block */ #define RIE_BADSOLID ((RtInt)30) /* Badly formed solid block */ #define RIE_BADTOKEN ((RtInt)41) /* Invalid token for request */ #define RIE_RANGE ((RtInt)42) /* Parameter out of range */ #define RIE_CONSISTENCY ((RtInt)43) /* Parameters inconsistent */ #define RIE_BADHANDLE ((RtInt)44) /* Bad object/light handle */ #define RIE_NOSHADER ((RtInt)45) /* Can’t load requested shader */ #define RIE_MISSINGDATA ((RtInt)46) /* Required parameters not provided */ #define RIE_SYNTAX ((RtInt)47) /* Declare type syntax error */ #define RIE_MATH ((RtInt)61) /* Zerodivide, noninvert matrix, etc. */ /* Error severity levels */ #define RIE_INFO ((RtInt)0) /* Rendering stats and other info */ #define RIE_WARNING ((RtInt)1) /* Something seems wrong, maybe okay */ #define RIE_ERROR ((RtInt)2) /* Problem. Results may be wrong */ #define RIE_SEVERE ((RtInt)3) /* So bad you should probably abort */ 174
- Page 1 and 2:
The RenderMan Interface Version 3.2
- Page 3 and 4:
TABLE OF CONTENTS List of Figures L
- Page 5 and 6:
12.1 Surface Shaders . . . . . . .
- Page 7 and 8:
Section I DIFFERENCES BETWEEN VERSI
- Page 9 and 10:
LIST OF TABLES 4.1 Camera Options .
- Page 11 and 12:
PREFACE This document is version 3.
- Page 13 and 14:
Section 1 INTRODUCTION The RenderMa
- Page 15 and 16:
created using this language. This l
- Page 17 and 18:
Depth of Field The ability to simul
- Page 19 and 20:
typedef RtPointer typedef RtPointer
- Page 21 and 22:
RiContext (ctx1); ... There is no R
- Page 23 and 24:
Section 3 RELATIONSHIP TO THE RENDE
- Page 25 and 26:
through the interface. Any place wh
- Page 27 and 28:
RtContextHandle RiGetContext ( void
- Page 29 and 30:
RiWorldBegin (); ... RiColor (...);
- Page 31 and 32:
Camera Option Type Default Descript
- Page 33 and 34:
ottom top left right Screen Window
- Page 35 and 36:
EXAMPLE RiFrameAspectRatio (4.0/3.0
- Page 37 and 38:
not support the special projection
- Page 39 and 40:
This procedure sets the times at wh
- Page 41 and 42:
Output depth values are the camera-
- Page 43 and 44:
A particular renderer implementatio
- Page 45 and 46:
Renderers may additionally produce
- Page 47 and 48:
The number of color components, n,
- Page 49 and 50:
RiAttributeBegin () RiAttributeEnd
- Page 51 and 52:
RIB BINDING Color c0 c1... cn Color
- Page 53 and 54:
An area light source is defined by
- Page 55 and 56:
The sequencenumber is the integer l
- Page 57 and 58:
4.2.5 Displacement shading The grap
- Page 59 and 60:
SEE ALSO RiExterior RiAtmosphere Ri
- Page 61 and 62:
Matte onoff EXAMPLE RiMatte (RI TRU
- Page 63 and 64:
object foo2 will be drawn when the
- Page 65 and 66:
the exterior is the region adjacent
- Page 67 and 68:
RiIdentity ( ); SEE ALSO RiTransfor
- Page 69 and 70:
RiScale ( RtFloat sx, RtFloat sy, R
- Page 71 and 72:
4.3.2 Transformation stack Transfor
- Page 73 and 74:
Section 5 GEOMETRIC PRIMITIVES The
- Page 75 and 76:
Information Name Type Class Floats
- Page 77 and 78:
No checking is done by the RenderMa
- Page 79 and 80:
5.2 Patches Patches can be either u
- Page 81 and 82:
U V 0 1 2 3 12 13 14 15 4 5 6 7 8 9
- Page 83 and 84:
10 x 7 Aperiodic Bezier Bicubic Pat
- Page 85 and 86:
SEE ALSO 2 2 [ 0 0 1 1 ] 0 1 ”Pw
- Page 87 and 88:
parameterlist is a list of token-ar
- Page 89 and 90:
Requests a sphere defined by the fo
- Page 91 and 92:
Hyperboloid 0 0 0 .5 0 0 270 ”Cs
- Page 93 and 94:
z N z V point2 height U x x y 0 max
- Page 95 and 96:
particle. If a primitive variable i
- Page 97 and 98:
The code array is a sequence of mac
- Page 99 and 100:
is an array of floats that define t
- Page 101 and 102:
The helper program generates geomet
- Page 103 and 104:
Procedural ”DynamicLoad” [ ”m
- Page 105 and 106:
SolidBegin ( ”difference” ); So
- Page 107 and 108:
Section 6 MOTION Some rendering pro
- Page 109 and 110:
Transformations Geometry Shading Ri
- Page 111 and 112:
channels (usually an RGB color) can
- Page 113 and 114:
Image Forward Axis Up Axis Right Ax
- Page 115 and 116:
ErrorHandler ”ignore” ErrorHand
- Page 117 and 118:
Part II The RenderMan Shading Langu
- Page 119 and 120:
spaces (such as CMYK or pseudocolor
- Page 121 and 122:
transmit reflect transmit P E light
- Page 123 and 124:
Section 10 RELATIONSHIP TO THE REND
- Page 125 and 126:
Section 11 TYPES The Shading Langua
- Page 127 and 128:
Coordinate System ”shader” ”c
- Page 129 and 130:
As in C, individual array elements
- Page 131 and 132:
Light Source E Vantage Point N L Il
- Page 133 and 134: Surface Element to Illuminate L N I
- Page 135 and 136: Name Type Storage Class Description
- Page 137 and 138: • conditional execution, • loop
- Page 139 and 140: This example integrates over a hemi
- Page 141 and 142: Shader instance variable values can
- Page 143 and 144: } return 2 * (vector noise(p)) - 1;
- Page 145 and 146: These functions compute power and i
- Page 147 and 148: The actual change in a variable is
- Page 149 and 150: Return a unit vector in the directi
- Page 151 and 152: Return surface normal given a point
- Page 153 and 154: diffuse returns the diffuse compone
- Page 155 and 156: prevent aliasing. If one set of tex
- Page 157 and 158: 15.7.3 Shadow depth maps Shadow dep
- Page 159 and 160: These functions access the value of
- Page 161 and 162: The standard data names supported b
- Page 163 and 164: } Oi = sum; Ci = Cs * Oi * (Ka + Kd
- Page 165 and 166: path of the ray. The input Ci and O
- Page 167 and 168: A.2.3 Metal surface surface metal(
- Page 169 and 170: distantlight( float intensity = 1;
- Page 171 and 172: A.6 Imager Shaders A.6.1 Background
- Page 173 and 174: variable definitions ; variables va
- Page 175 and 176: triple sixteentuple arrayindex: [ e
- Page 177 and 178: Logical expressions have the value
- Page 179 and 180: typedef RtPointer RtContextHandle;
- Page 181 and 182: RiOptionV(RtToken name, RtInt n, Rt
- Page 183: RtInt n, RtToken tokens[], RtPointe
- Page 187 and 188: Comments Any occurrence of the ’#
- Page 189 and 190: In the following sections the synta
- Page 191 and 192: C.2.2 Error handling There are two
- Page 193 and 194: adhandle badparamlist badripcode ba
- Page 195 and 196: v e r s i o n 212 # version 003 007
- Page 197 and 198: Using RIB File structuring conventi
- Page 199 and 200: Attribute Format PixelFilter Shadin
- Page 201 and 202: ##Include filename This entry allow
- Page 203 and 204: D.2.1 RIB Entity File example ##Ren
- Page 205 and 206: Motion Blur Programmable Shading Di
- Page 207 and 208: } E.4 Gaussian Filter RtFloat RiGau
- Page 209 and 210: Appendix G RENDERMAN INTERFACE QUIC
- Page 211 and 212: Function RiOpacity (color) RiOption
- Page 213 and 214: Geometric Primitives (continued) Fu
- Page 215 and 216: Function abs(x) Math Functions Desc
- Page 217 and 218: Function area(P) calculatenormal(P)
- Page 219 and 220: Texture Mapping Functions Function
- Page 221 and 222: RiInterior 47 RiLightSource 42 RiMa
- Page 223 and 224: and uniform variables on an RiNuPat
- Page 225 and 226: Statement About Pixar’s Copyright