我想用简单的重复图案填充凹多边形。我已经可以正确地绘制多边形了,不幸的是我在填充它时遇到了问题。在OpenGL中,我可以使用POLYGON_STIPPLE轻松完成。但是,此功能在OpenGL ES中不可用。
我想我可能需要使用纹理而不是点画。但是我无法弄清楚如何计算正确的纹理坐标,因为所有三角形都有完全不同的尺寸,但我仍然希望图案能够很好地适合彼此。
是否有任何好的起点可以解释如何使用重复纹理填充多边形,其中多边形比一个三角形或矩形稍微复杂一些?
答案 0 :(得分:2)
计算纹理坐标并不像我想象的那么难。用图案填充多边形可以这样做:
设置纹理参数,使纹理重复自身。这将产生这样的效果,即对于每个大于1的坐标,纹理将再次重复。
glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );
计算纹理坐标。每个顶点坐标c对应于如下计算的纹理坐标:(c.x / texture.width,c.y / texture.height)