Hundreds of features to explore
Games made in Construct
Your questions answered
Trusted by schools and universities worldwide
Free education resources to use in the classroom
Students do not need accounts with us
What we believe
We are in this together
World class complete documentation
Official and community submitted guides
Learn and share with other game developers
Upload and play games from the Construct community
Game development stories & opinions
I am curious, I am blundering around writing shaders and currently I do silly things and I don't know why.
Sometimes I have to flip a texture coordinate: texpos.y = 1.0 - texpos.y;
I haven't figured out why I need to sometimes, all I know is that the effect is upside down and I am fixing it. I thought 0,0 is top left and 1.1 is bottom right as far as tex coordinates go?
Develop games in your browser. Powerful, performant & highly capable.
Actually, top left is (0,1) and bottom right is (1,0) - you can check it by visualizing the UV coords - something like:
output = vec4(vTex.x,vTex.y, 0.,1.);
I was confused about that as well - most sources say (0,0) and (1,1).
I would like to help you a bit;
here is a little circle code ;
vec2 uv = vTex;
uv.y =1.-uv.y; // flip uv screen ;
vec2 cpos=vec2(0.0,0.0); /// position of our circle
float distance = distance(cpos, uv);
if (distance > 0.05)
gl_FragColor = vec4(0, 0, 0, 1.0);
gl_FragColor = vec4(1, 1, 1, 1.0);
The position of vectors change depending of the screen if it's flipped or not;
if you comment : uv.y =1.-uv.y; the bottom left is (0,0) if not flipped
the top left is (0,0).. try to change the position of circle : vec2 cpos = vec2(0.2,0.2) ... etc
when flip is used it's not flip texture but it's flip the screen , and the reason of inversed vectors are here .
Hope this help