开发者

Polygonal gradients with OpenGL

I'm wondering how I could create a gradient wuth multiple stops and a direction if I'm making polygons. Right now I'm creating gradients by changing the colo开发者_开发百科r of the verticies but this is limiting. Is there another way to do this?

Thanks


One option you may have is to render a simple polygon with a gradient to a texture, which you then use to texture your actual polygon.

Then you can rotate the source polygon and anything textured with its image will have its gradient rotate as well, without the actual geometry changing.


The most flexible way is probably to create a texture with the gradient you want, and then apply that to your geometry.


If you're using a shader, you can pass your vertex world positions into your vertex shader and they'll interpolate to your fragment shader, so for every fragment, you'll get where it is in world-space (of course you can use any space). Then it's just a matter of choosing whatever transfer function to change that value to a color. You can make any kind of elaborate algorithm using b-splines or whatever in your fragment shader.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜