-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgl.h
29 lines (24 loc) · 809 Bytes
/
gl.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "geometry.h"
#include "model.h"
#include "tgaimage.h"
extern const int width;
extern const int height;
extern const int depth;
extern Vec3f light_dir;
extern Vec3f eye;
extern Vec3f center;
extern Model *model;
extern Matrix Projection;
extern Matrix Viewport;
extern Matrix ModelView;
void lookat(Vec3f eye, Vec3f center, Vec3f up);
void viewport(int x, int y, int w, int h);
void projection(float coeff=0.f);
struct IShader {
virtual ~IShader();
virtual Vec3f vertex(int iface, int nthvert) = 0;
virtual bool fragment(Vec3f bar, TGAColor &color) = 0;
};
Vec3f barycentric(Vec3f *pts, Vec3f P);
void triangle(Vec3f *pts, Vec3f *texture_pts, Vec3f *vertex_normals, float z_buffer[], TGAImage &image);
void triangle(Vec3f *pts, IShader &shader, TGAImage &image, float z_buffer[]);