2011-10-09 46 views
2

我想用簡單的重複圖案填充凹多邊形。我已經可以正確繪製多邊形,不幸的是我在填充時遇到問題。在OpenGL中,我可以使用POLYGON_STIPPLE輕鬆完成此操作。但是,這個功能在OpenGL ES中不可用。用iOS上的OpenGL ES模擬多邊形點畫

我想我可能需要使用紋理而不是點畫。但是我無法弄清楚如何計算正確的紋理座標,因爲所有的三角形都是完全不同的尺寸,但我仍然希望圖案適合彼此相鄰。

有沒有什麼好的起點可以解釋如何用一個重複的紋理來填充多邊形,其中多邊形比一個三角形或矩形要複雜一點?

回答

2

計算紋理座標並不像我想的那麼難。填充有圖案的多邊形可以做這樣的:

  1. 加載紋理(從圖像或定義字節數組)
  2. 綁定紋理
  3. 設置紋理參數,使得質地重演。這將產生這樣的效果:對於大於1的每個座標,紋理將重新重複。

    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); 
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); 
    
  4. 計算紋理座標。每個頂點座標c對應於如下計算的紋理座標:(c.x/texture.width,c.y/texture.height)