Main Page
Related Pages
Modules
Data Structures
core
include
ai_shader_brdf.h
1
/*
2
* Arnold API header file
3
* Copyright (c) 1998-2009 Marcos Fajardo, (c) 2009-2013 Solid Angle SL
4
*/
5
11
#pragma once
12
#include "ai_color.h"
13
#include "ai_vector.h"
14
#include "ai_shaderglobals.h"
15
32
typedef
AtVector
(*
AtBRDFEvalSampleFunc
)(
const
void
* brdf_data,
float
rx,
float
ry);
34
typedef
AtColor
(*
AtBRDFEvalBrdfFunc
)(
const
void
* brdf_data,
const
AtVector
* indir);
36
typedef
float (*
AtBRDFEvalPdfFunc
)(
const
void
* brdf_data,
const
AtVector
* indir);
37
/* \}*/
38
42
AI_API
AtColor
AiEvaluateLightSample
(
AtShaderGlobals
* sg,
const
void
* brdf_data,
AtBRDFEvalSampleFunc
eval_sample,
AtBRDFEvalBrdfFunc
eval_brdf,
AtBRDFEvalPdfFunc
eval_pdf);
43
AI_API
AtColor
AiBRDFIntegrate
(
AtShaderGlobals
*sg,
const
void
*brdf_data,
AtBRDFEvalSampleFunc
eval_sample,
AtBRDFEvalBrdfFunc
eval_brdf,
AtBRDFEvalPdfFunc
eval_pdf,
AtUInt16
ray_type);
44
/* \}*/
45
49
AI_API
AtColor
AiOrenNayarMISBRDF
(
const
void
* brdf_data,
const
AtVector
* indir);
50
AI_API
float
AiOrenNayarMISPDF
(
const
void
* brdf_data,
const
AtVector
* indir);
51
AI_API
AtVector
AiOrenNayarMISSample
(
const
void
* brdf_data,
float
randx,
float
randy);
52
AI_API
void
*
AiOrenNayarMISCreateData
(
const
AtShaderGlobals
* sg,
float
r);
53
54
AI_API
AtColor
AiCookTorranceMISBRDF
(
const
void
* brdf_data,
const
AtVector
* indir);
55
AI_API
float
AiCookTorranceMISPDF
(
const
void
* brdf_data,
const
AtVector
* indir);
56
AI_API
AtVector
AiCookTorranceMISSample
(
const
void
* brdf_data,
float
randx,
float
randy);
57
AI_API
void
*
AiCookTorranceMISCreateData
(
const
AtShaderGlobals
* sg,
const
AtVector
*
u
,
const
AtVector
*
v
,
float
rx,
float
ry);
58
59
AI_API
AtColor
AiWardDuerMISBRDF
(
const
void
* brdf_data,
const
AtVector
* indir);
60
AI_API
float
AiWardDuerMISPDF
(
const
void
* brdf_data,
const
AtVector
* indir);
61
AI_API
AtVector
AiWardDuerMISSample
(
const
void
* brdf_data,
float
randx,
float
randy);
62
AI_API
void
*
AiWardDuerMISCreateData
(
const
AtShaderGlobals
* sg,
const
AtVector
*
u
,
const
AtVector
*
v
,
float
rx,
float
ry);
63
64
AI_API
AtColor
AiAshikhminShirleyMISBRDF
(
const
void
* brdf_data,
const
AtVector
* indir);
65
AI_API
float
AiAshikhminShirleyMISPDF
(
const
void
* brdf_data,
const
AtVector
* indir);
66
AI_API
AtVector
AiAshikhminShirleyMISSample
(
const
void
* brdf_data,
float
randx,
float
randy);
67
AI_API
void
*
AiAshikhminShirleyMISCreateData
(
const
AtShaderGlobals
* sg,
const
AtVector
*
u
,
const
AtVector
*
v
,
float
rx,
float
ry);
68
69
AI_API
AtColor
AiStretchedPhongMISBRDF
(
const
void
* brdf_data,
const
AtVector
* indir);
70
AI_API
float
AiStretchedPhongMISPDF
(
const
void
* brdf_data,
const
AtVector
* indir);
71
AI_API
AtVector
AiStretchedPhongMISSample
(
const
void
* brdf_data,
float
randx,
float
randy);
72
AI_API
void
*
AiStretchedPhongMISCreateData
(
const
AtShaderGlobals
* sg,
float
pexp);
73
/* \}*/
74
78
AI_API
float
AiOrenNayarBRDF
(
const
AtVector
* L,
const
AtVector
* V,
const
AtVector
*
N
,
float
r);
79
AI_API
float
AiLommelSeeligerBRDF
(
const
AtVector
* L,
const
AtVector
* V,
const
AtVector
*
N
);
80
AI_API
float
AiCookTorranceBRDF
(
const
AtVector
* L,
const
AtVector
* V,
const
AtVector
*
N
,
const
AtVector
*
u
,
const
AtVector
*
v
,
float
rx,
float
ry);
81
AI_API
float
AiWardBRDF
(
const
AtVector
* L,
const
AtVector
* V,
const
AtVector
*
N
,
const
AtVector
*
u
,
const
AtVector
*
v
,
float
rx,
float
ry);
82
AI_API
float
AiWardDuerBRDF
(
const
AtVector
* L,
const
AtVector
* V,
const
AtVector
*
N
,
const
AtVector
*
u
,
const
AtVector
*
v
,
float
rx,
float
ry);
83
AI_API
float
AiAshikhminShirleyBRDF
(
const
AtVector
* L,
const
AtVector
* V,
const
AtVector
*
N
,
const
AtVector
*
u
,
const
AtVector
*
v
,
float
nx,
float
ny);
84
AI_API
float
AiStretchedPhongBRDF
(
const
AtVector
* L,
const
AtVector
* V,
const
AtVector
*
N
,
float
n
,
bool
retro =
false
);
85
/* \}*/
86
90
AI_API
AtColor
AiOrenNayarIntegrate
(
const
AtVector
*
N
,
AtShaderGlobals
* sg,
float
r);
91
AI_API
AtColor
AiLommelSeeligerIntegrate
(
const
AtVector
*
N
,
AtShaderGlobals
* sg);
92
AI_API
AtColor
AiCookTorranceIntegrate
(
const
AtVector
*
N
,
AtShaderGlobals
* sg,
const
AtVector
*
u
,
const
AtVector
*
v
,
float
rx,
float
ry);
93
AI_API
AtColor
AiWardIntegrate
(
const
AtVector
*
N
,
AtShaderGlobals
* sg,
const
AtVector
*
u
,
const
AtVector
*
v
,
float
rx,
float
ry);
94
AI_API
AtColor
AiWardDuerIntegrate
(
const
AtVector
*
N
,
AtShaderGlobals
* sg,
const
AtVector
*
u
,
const
AtVector
*
v
,
float
rx,
float
ry);
95
AI_API
AtColor
AiAshikhminShirleyIntegrate
(
const
AtVector
*
N
,
AtShaderGlobals
* sg,
const
AtVector
*
u
,
const
AtVector
*
v
,
float
nx,
float
ny);
96
AI_API
AtColor
AiMicrofacetBTDFIntegrate
(
const
AtVector
*
N
,
AtShaderGlobals
* sg,
const
AtVector
*
u
,
const
AtVector
*
v
,
float
rx,
float
ry,
float
eta_i,
float
eta_o,
AtColor
transmittance);
97
AI_API
AtColor
AiStretchedPhongIntegrate
(
const
AtVector
*
N
,
AtShaderGlobals
* sg,
float
exp);
98
/* \}*/
99
100
/*\}*/
© 2009-2013 Solid Angle SL · all rights reserved · www.solidangle.com