PhotoGENius V1.0.0
A basic library for generating photorealistic images, developed for the course Numerical techniques for photorealistic image generation.
Public Member Functions | Public Attributes | List of all members
PGENLib.BRDF Class Reference

An abstract class representing a Bidirectional Reflectance Distribution Function (BRDF). More...

Inheritance diagram for PGENLib.BRDF:
PGENLib.DiffuseBRDF PGENLib.SpecularBRDF

Public Member Functions

 BRDF ()
 Costructor without parameters, sets Pigment to a default UniformPigment(Black).
 
 BRDF (Pigment pigment)
 Constructor with parameter. More...
 
virtual Color Eval (Normal normal, Vec inDir, Vec outDir, Vec2d uv)
 
virtual Ray ScatterRay (PCG pcg, Vec incomingDir, Point interactionPoint, Normal normal, int depth)
 Abstract method to be implemented in the BRDF derived classes. More...
 

Public Attributes

Pigment Pigment
 

Detailed Description

An abstract class representing a Bidirectional Reflectance Distribution Function (BRDF).

Constructor & Destructor Documentation

◆ BRDF()

PGENLib.BRDF.BRDF ( Pigment  pigment)

Constructor with parameter.

Parameters
pigment: specify the chosen pigment.

Member Function Documentation

◆ Eval()

virtual Color PGENLib.BRDF.Eval ( Normal  normal,
Vec  inDir,
Vec  outDir,
Vec2d  uv 
)
virtual

Reimplemented in PGENLib.SpecularBRDF.

◆ ScatterRay()

virtual Ray PGENLib.BRDF.ScatterRay ( PCG  pcg,
Vec  incomingDir,
Point  interactionPoint,
Normal  normal,
int  depth 
)
virtual

Abstract method to be implemented in the BRDF derived classes.

Parameters
pcgUsed to generate random numbers
incomingDirDirection of the incoming ray
interactionPointWhere the ray hit the surface
normalNormal on interactionPoint
depthDepth value for the new ray
Returns

Reimplemented in PGENLib.DiffuseBRDF, and PGENLib.SpecularBRDF.


The documentation for this class was generated from the following file: