ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/rt/ambient.h
Revision: 2.25
Committed: Tue May 14 17:39:10 2019 UTC (4 years, 11 months ago) by greg
Content type: text/plain
Branch: MAIN
CVS Tags: rad5R3
Changes since 2.24: +1 -79 lines
Log Message:
Stripped out code related to old (pre-Hessian) ambient calculation

File Contents

# Content
1 /* RCSid $Id: ambient.h,v 2.24 2015/05/21 12:25:53 greg Exp $ */
2 /*
3 * Common definitions for interreflection routines.
4 *
5 * Include after ray.h
6 */
7
8 #ifndef _RAD_AMBIENT_H_
9 #define _RAD_AMBIENT_H_
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14 /*
15 * Normal and u-vector directions encoded using dircode.c
16 */
17 typedef struct ambrec {
18 struct ambrec *next; /* next in list */
19 unsigned long latick; /* last accessed tick */
20 float pos[3]; /* position in space */
21 int32 ndir; /* encoded surface normal */
22 int32 udir; /* u-vector direction */
23 short lvl; /* recursion level of parent ray */
24 float weight; /* weight of parent ray */
25 float rad[2]; /* anisotropic radii (rad[0] <= rad[1]) */
26 COLOR val; /* computed ambient value */
27 float gpos[2]; /* (u,v) gradient wrt. position */
28 float gdir[2]; /* (u,v) gradient wrt. direction */
29 uint32 corral; /* potential light leak direction flags */
30 } AMBVAL; /* ambient value */
31
32 typedef struct ambtree {
33 AMBVAL *alist; /* ambient value list */
34 struct ambtree *kid; /* 8 child nodes */
35 } AMBTREE; /* ambient octree */
36
37 extern double maxarad; /* maximum ambient radius */
38 extern double minarad; /* minimum ambient radius */
39
40 #ifndef AVGREFL
41 #define AVGREFL 0.5 /* assumed average reflectance */
42 #endif
43
44 #define AMBVALSIZ 67 /* number of bytes in portable AMBVAL struct */
45 #define AMBMAGIC 559 /* magic number for ambient value files */
46 #define AMBFMT "Radiance_ambval" /* format id string */
47
48 /* defined in ambient.c */
49 extern void setambres(int ar);
50 extern void setambacc(double newa);
51 extern void setambient(void);
52 extern void multambient(COLOR aval, RAY *r, FVECT nrm);
53 extern void ambdone(void);
54 extern void ambnotify(OBJECT obj);
55 extern int ambsync(void);
56 /* defined in ambcomp.c */
57 extern int doambient(COLOR acol, RAY *r, double wt,
58 FVECT uv[2], float rad[2],
59 float gpos[2], float gdir[2], uint32 *crlp);
60 /* defined in ambio.c */
61 extern void putambmagic(FILE *fp);
62 extern int hasambmagic(FILE *fp);
63 extern int writambval(AMBVAL *av, FILE *fp);
64 extern int readambval(AMBVAL *av, FILE *fp);
65 extern int ambvalOK(AMBVAL *av);
66
67 #ifdef __cplusplus
68 }
69 #endif
70 #endif /* _RAD_AMBIENT_H_ */
71