وبلاگ بلیان

Essential Guide to RenderMan® Shading Plugin Development: Understanding Bxdfs

معرفی کتاب «Essential Guide to RenderMan® Shading Plugin Development: Understanding Bxdfs» نوشتهٔ BRAD ERIC HOLLISTER، منتشرشده توسط نشر Apress L. P. در سال 2023. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.

Understand the fundamentals of Bxdf plugins for RenderMan® 21+, both the technical details and API architecture. The main goal of the book is to enable technical artists, hobbyists, and students in using the noncommercial (NCR), free RenderMan® edition. RenderMan® is an industry standard for rendering software. It has been used for every Pixar film to date and numerous other projects. RenderMan® 21, and all subsequent versions, use Monte Carlo path tracing. This change has necessitated the use of C++ plugins in place of the RenderMan Shader Language (RSL). Because of this, writing Bxdfs now requires knowledge of Monte Carlo integration, probability density functions, and the RenderMan® C++ API. Essential Guide to RenderMan® Shading Plugin Development specifically addresses writing RenderMan® C++ materials. It explores the mathematical models of representative Bxdfs while drawing parallels, when helpful, to earlier RSL implementations. It also includes an overview of Integrators, providing further context for modern RenderMan® programmable shading. What You Will Learn C++ development for Bxdfs Fundamentals of the rendering equation Monte Carlo integration Who Is This Book For Beginner plugin writers for RenderMan®, such as technical artists, students, or hobbyists who may already have experience with RSL or another shader language. More experienced C++ developers without knowledge of RenderMan® or Monte Carlo path tracing will benefit from the content as well. While some prior experience in computer graphics is helpful, the book provides background and references for further study. Table of Contents 4 About the Author 8 About the Technical Reviewer 9 Chapter 1: Overview, Brief Contextual History, and Pixar’s Non-Commercial RenderMan 10 Introduction to RenderMan 11 What Is Rendering? 12 The RenderMan Interface Specification 13 The Non-Commercial RenderMan 14 Official Docs 14 Official Example Plugins 16 RenderMan’s Evolution 18 “Render Everything You Ever Saw” 18 RenderMan Shader Language 20 RenderMan Bytestream 20 C API 21 Python API 22 Overview of Monte Carlo Path Tracing 23 Irradiance Integration 25 Numerical Approximation 25 Monte Carlo Integration 25 Installing NCR on Linux Machines 26 Ubuntu Linux Installation 27 Other Types of RenderMan Plugins 29 Geometry 29 Lights and Integrators 30 Our Road Map 30 What This Book Covers 31 What This Book Does Not Cover 31 Summary 31 Chapter 2: What RenderMan Plugins Are Made Of: C++ Language and Shared Object Files 32 The C++ Language 32 Reserved Words 33 Object-Oriented Programming 36 Compiling C++ Programs 37 Makefiles 37 Dynamic vs. Static Linking 40 Shared Objects 40 Plugins Folder 40 Where the RenderMan Server Loads Plugin Binaries 40 Summary 41 Chapter 3: Radiometry and Bidirectional Scattering Functions 42 Radiometric Quantities 43 Solid Angle 44 Differentials 45 Radiant Energy 46 Radiant Flux 46 Irradiance 47 Radiance 48 Differential Solid Angle with Respect to Radiance 50 Definition of the BxDF 51 Rendering Equation 52 The Integral 52 BRDF Term 53 Cosine Term 53 Summary 54 Chapter 4: Monte Carlo Integration and Global Integrators 55 Numerical Integration 55 Quadrature 56 Monte Carlo 57 Probability Density Functions 57 The Monte Carlo Estimator 58 Error Determination 59 Importance Sampling 60 Overview of Integrator Plugins 60 Official Integrators 60 PxrPathTracer 61 PxrVCM 62 PxrUnified 63 PxrDirectLighting 63 Integrators for Bxdf Development 63 Integrators for Bxdf Debugging 64 How Integrators Call a Bxdf Plugin 64 Analogy with the RSL illuminance Loop 64 Summary 64 Chapter 5: The RenderMan (Rix) API 65 Classes for Bxdf Plugins 65 Execution Model 67 RixShadingPlugin 67 RixShadingContext 69 Similarity with RSL’s “Predefined” Variables 71 RixBxdf 73 Shading Utilities 75 Frequently Used “Built-In” Utilities 76 RiTypesHelper.h 76 Summary 77 Chapter 6: Canonical Scattering Regimes for Bxdf 78 Bxdf Plugin Code Organization 79 Emissive Model 80 Emissive Plugin Factory Class 81 Emissive Plugin RixBxdf Class 86 Diffuse Reflection Model 87 Diffuse Plugin Factory Class 89 Diffuse Plugin RixBxdf Class 91 PDF Selection and Sampling 96 Specular Reflection Model 99 Plastic (Phong) Material 101 Summary 102 Chapter 7: Developing and Debugging Bxdf 103 Development Environments 103 Visual Debugging with Multiple Threads 105 The renderman.ini File 107 VS Code Extensions for RIB and RSL 107 Using PxrValidateBxdf 108 Using PxrDebugShadingContext 110 Summary 111 Chapter 8: PDF Normalization, Sampling, and Anisotropic Bxdf 112 PDFs and Sampling 113 PDF Normalization 113 Cosine Distribution 116 Sampling via the PDF 117 Ward Anisotropy 123 Background on the Gaussian Curve 126 The Ward Anisotropic BRDF 127 Marschner Finished Wood 131 Summary 139 Conclusions 140 Index 141
دانلود کتاب Essential Guide to RenderMan® Shading Plugin Development: Understanding Bxdfs