Reputation: 10371
This is a question that came from an earlier problem I had. Basically, I was trying to implement orthographic scaling in my shader by modifying the scale components of my projection matrix, but it wasn't possible. What I had to actually do was scale the verts before "sending them in" to my shader via a draw. That works like a charm...
But, of course, the issue is that in software now I'm responsible for scaling all my verts before handing them off to the shader. This makes me wonder if it would be possible to have a vertex shader do this. I imagine it is, but I can't figure it out.
What I'm doing is just going through all 4 of my verts (held in float vertices[8]
) and doing *= scale;
. To be slightly more accurate, I multiply the X and Y components separately by scaleX
and scaleY
.
How can I do this same thing in a vertex shader?
Upvotes: 1
Views: 1772
Reputation: 126203
replace gl_Vertex
with (gl_Vertex * scale)
everywhere in your vertex shader. Or if you're using a user-defined input for your coordinate, put * scale
on that.
Upvotes: 1