ai_shader_sss.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 
14 // forward declaration
15 struct AtShaderGlobals;
16 
21 AI_API AtColor AiBSSRDFCubic(const AtShaderGlobals* sg, const float* radius, const AtColor* weight, unsigned int num = 1);
22 AI_API AtColor AiBSSRDFGaussian(const AtShaderGlobals* sg, const float* variance, const AtColor* weight, unsigned int num = 1);
23 AI_API AtColor AiSSSTraceSingleScatter(AtShaderGlobals* sg, AtColor Rd, AtColor mfp, float g, float eta);
24 AI_API bool AiShaderGlobalsFromSSS(const AtShaderGlobals* sg);
25 
33 /*
34  * Point cloud sample distributions
35  */
36 #define AI_POINTCLOUD_BLUE_NOISE 0x00
37 #define AI_POINTCLOUD_TRIANGLE_MIDPOINT 0x01
38 #define AI_POINTCLOUD_POLYGON_MIDPOINT 0x02
39 
40 // Iterator interface
42 {
43  AtPoint pref_position;
44  AtPoint world_position;
45  AtVector normal;
46  AtUInt32 face;
47  AtPoint2 uv;
48  float area;
49 };
50 struct AtPointCloudIterator;
51 AI_API AtPointCloudIterator* AiPointCloudIteratorCreate (const AtShaderGlobals* sg, int distribution, float spacing = 0.1f);
52 AI_API void AiPointCloudIteratorDestroy (AtPointCloudIterator* iter);
53 AI_API AtPointCloudSample AiPointCloudIteratorGetNext (AtPointCloudIterator* iter);
54 AI_API bool AiPointCloudIteratorFinished(const AtPointCloudIterator* iter);
55 AI_API AtUInt32 AiPointCloudGetSampleCount (const AtPointCloudIterator* iter);
56 
57 /*\}*/
58 
59 /*\}*/

© 2009-2013 Solid Angle SL · all rights reserved · www.solidangle.com