Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uniform mat4 modelMatrix;
- uniform mat4 projMatrix;
- uniform sampler2D tex;
- uniform ivec2 res;
- out vec4 oColor;
- struct Tri{
- vec4 v0;
- vec4 v1;
- vec4 v2;
- vec2 uv0;
- vec2 uv1;
- vec2 uv2;
- };
- vec4 vertices[4];
- void main(){
- vec2 uv = gl_FragCoord.xy / vec2(res);
- uv -= vec2(0.5);
- //build default vertices:
- vertices[0] = vec4(-1.0,-1.0, 0.0,1.0);
- vertices[1] = vec4( 1.0,-1.0, 0.0,1.0);
- vertices[2] = vec4( 1.0,1.0, 0.0,1.0);
- vertices[3] = vec4(-1.0,1.0, 0.0,1.0);
- //transform vertices:
- for(int c = 0; c < 4; ++c){
- vertices[c] = projMatrix * modelMatrix * vertices[c];
- vertices[c].xyz /= vertices[c].w; //to NDC
- }
- //define triangle geometry:
- Tri tri1 = Tri(vertices[0],vertices[1],vertices[2]
- ,vec2(0.0,0.0),vec2(1.0,0.0),vec2(1.0,1.0));
- bool rasterize = false;
- vec4 colorRes = vec4(0.0);
- rasterize = drawTriangleBary(tri1, uv, colorRes);
- if(rasterize){
- oColor = colorRes;
- }else{discard;}
- }
- }
- for(int c = 0; c < 4; ++c){
- vertices[c] = projMatrix * modelMatrix * vertices[c];
- vertices[c].xyz /= vertices[c].w * 2.0; //to NDC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement