The Renderman Interface
Total Page:16
File Type:pdf, Size:1020Kb
The RenderMan Interface Version 3.2 July, 2000 Copyright c 2000 Pixar. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or other- wise, without the prior permission of Pixar. The information in this publication is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by Pixar. Pixar assumes no responsibility or liability for any errors or inaccuracies that may appear in this publication. RenderMan R is a registered trademark of Pixar. i TABLE OF CONTENTS List of Figures vii List of Tables viii Preface x Part I The RenderMan Interface 1 Section 1 INTRODUCTION 2 1.1 Features and Capabilities . 4 1.1.1 Required features . 4 1.1.2 Advanced Capabilities . 5 1.2 Structure of this Document . 6 Section 2 LANGUAGE BINDING SUMMARY 7 2.1 C Binding . 7 2.2 Bytestream Protocol . 10 2.3 Additional Information . 11 Section 3 RELATIONSHIP TO THE RENDERMAN SHADING LANGUAGE 12 Section 4 GRAPHICS STATE 15 4.1 Options . 19 4.1.1 Camera . 19 4.1.2 Displays . 28 4.1.3 Additional options . 34 4.1.4 Implementation-specific options . 36 4.2 Attributes . 37 4.2.1 Color and opacity . 38 4.2.2 Texture coordinates . 40 4.2.3 Light sources . 41 4.2.4 Surface shading . 44 4.2.5 Displacement shading . 46 4.2.6 Volume shading . 46 4.2.7 Shading rate . 48 4.2.8 Shading interpolation . 49 4.2.9 Matte objects . 49 4.2.10 Bound . 51 ii 4.2.11 Detail . 51 4.2.12 Geometric approximation . 53 4.2.13 Orientation and sides . 53 4.3 Transformations . 55 4.3.1 Named coordinate systems . 58 4.3.2 Transformation stack . 60 4.4 Implementation-specific Attributes . 60 Section 5 GEOMETRIC PRIMITIVES 62 5.1 Polygons . 63 5.2 Patches . 68 5.3 Subdivision Surfaces . 75 5.4 Quadrics . 77 5.5 Point and Curve Primitives . 83 5.6 Blobby Implicit Surfaces . 85 5.7 Procedural Primitives . 87 5.8 Implementation-specific Geometric Primitives . 92 5.9 Solids and Spatial Set Operations . 92 5.10 Retained Geometry . 94 Section 6 MOTION 96 Section 7 EXTERNAL RESOURCES 99 7.1 Texture Map Utilities . 99 7.1.1 Making texture maps . 99 7.1.2 Making environment maps . 100 7.1.3 Making shadow maps . 102 7.2 Errors . 103 7.3 Archive Files . 104 Part II The RenderMan Shading Language 106 Section 8 INTRODUCTION TO THE SHADING LANGUAGE 107 Section 9 OVERVIEW OF THE SHADING PROCESS 109 Section 10 RELATIONSHIP TO THE RENDERMAN INTERFACE 112 Section 11 TYPES 114 11.1 Floats . 114 11.2 Colors . 114 11.3 Points, Vectors, and Normals . 115 11.4 Transformation Matrices . 116 11.5 Strings . 117 11.6 Arrays . 117 11.7 Uniform and Varying Variables . 118 Section 12 SHADER EXECUTION ENVIRONMENT 119 iii 12.1 Surface Shaders . 119 12.2 Light Source Shaders . 120 12.3 Volume Shaders . 122 12.4 Displacement Shaders . 122 12.5 Imager Shaders . 122 Section 13 LANGUAGE CONSTRUCTS 125 13.1 Expressions . 125 13.2 Standard Control Flow Constructs . 125 13.3 Illuminance and Illuminate Statements . 127 Section 14 SHADERS AND FUNCTIONS 129 14.1 Shaders . 129 14.2 Functions . 131 Section 15 BUILT-IN FUNCTIONS 133 15.1 Mathematical Functions . 133 15.2 Geometric Functions . 137 15.3 Color Functions . 140 15.4 Matrix Functions . 140 15.5 String Functions . 141 15.6 Shading and Lighting Functions . 141 15.7 Texture Mapping Functions . 143 15.7.1 Basic texture maps . 145 15.7.2 Environment maps . 145 15.7.3 Shadow depth maps . 146 15.7.4 Getting Information About Texture Maps . 146 15.8 Message Passing and Information Functions . 146 Section 16 EXAMPLE SHADERS 151 16.1 Surface Shaders . 151 16.1.1 Turbulence . 151 16.1.2 Ray tracer . 152 16.2 Light Sources . 152 16.3 Volume Shader . 153 16.4 Displacement Shaders . 154 16.5 Imager Shaders . 154 Section A STANDARD RENDERMAN INTERFACE SHADERS 155 A.1 Null Shader . 155 A.2 Surface Shaders . 155 A.2.1 Constant surface . 155 A.2.2 Matte surface . 155 A.2.3 Metal surface . 156 A.2.4 Shiny metal surface . 156 A.2.5 Plastic surface . 156 A.2.6 Painted plastic surface . 157 A.3 Light Source Shaders . 157 A.3.1 Ambient light source . 157 iv A.3.2 Distant light source . 157 A.3.3 Point light source . 158 A.3.4 Spotlight source . ..