回答
opengl不支持真正的幾何減法,但它可以很容易僞造深度緩衝區或模板緩衝區。
- 面膜你的顏色所以沒有被吸引到顏色緩衝器:
glColorMask(false, false, false, false)
畫出你「孔」到場景上,在沉積值插入任一深度緩衝器(比三角形帶值以下)或模板緩衝區。
禁用顏色蒙版,然後渲染啓用了深度或模板測試的三角形條。您之前繪製的區域將被遮蓋,所以您會留下一個中間有一個洞的矩形。
作爲替代Tim的解決方案,你也可以使用自定義的片段着色器,削減孔: 您可以使用掩模紋理或只是(X,Y)座標 - 和半徑定義孔。那麼你可以簡單地把你的三角形片段discard()
放在洞裏。 最好的解決方案可能取決於你想要的孔的數量(一個蒙版紋理可能是最簡單,最靈活的方法,特別是如果你還想要非圓形的孔,而距離測試可能是好的,你只有幾個洞)。
我也有這個想法,但我無法找到如何獲得當前碎片座標以及如何在每個孔的x和y座標中傳遞 – teamalpha5441 2012-07-20 10:34:09
正如您現在可能知道的那樣,當前碎片座標存儲在' gl_FragCoords'。 – kroneml 2012-07-20 12:36:57
(+1)多數民衆贊成我正在尋找,我真的應該開始閱讀文件... – teamalpha5441 2012-07-20 13:15:00
- 1. 添加和減去形狀
- 2. 如何在Visio 2010中減去形狀
- 3. 如何減去PowerPoint中的形狀?
- 4. OpenGL ES 2.0幾個場景
- 5. Android OpenGL ES不使用TRIANGLES顯示我的三角形形狀
- 6. 如何在OpenGL ES中移動具有紋理的形狀?
- 7. openGL ES 2.0六角形
- 8. 幾何/形狀識別(奇數形狀)
- 9. OpenGL ES 2.0的顏色減法
- 10. OpenGL ES 2.0失去圖像質量
- 11. OpenGL或OpenGL ES
- 12. Android中的OpenGL ES 2.0形狀的翻譯
- 13. NEWBIE:使用有序頂點數組繪製OpenGL ES形狀
- 14. ARC和OpenGl ES 2.0:舊形狀在新場景中渲染
- 15. OpenGL ES 1.0 Android - 繪製更多高級形狀
- 16. 如何從形狀中減去圖像的面積
- 17. Threejs,在幾何形狀
- 18. 計算幾何形狀
- 19. 字體的幾何形狀
- 20. 幾何形狀的分割
- 21. Three.js幾何形狀拉伸?
- 22. OpenGL到OpenGL-ES - glRectf()
- 23. 從OpenGL ES 1.1過渡到OpenGL ES 2.0
- 24. 混合OpenGL ES 1和OpenGL ES 2
- 25. iOS OpenGL ES與Android OpenGL ES兼容?
- 26. OpenGL ES 2.0中的旋轉三角形
- 27. Android OpenGL ES多邊形教程幫助
- 28. Android上的OpenGL ES 2.0的2D圖形
- 29. Android OpenGL ES 1 - 多邊形邊緣
- 30. 二維三角形與OpenGL ES 2.0
這個答案是相關的嗎? http://stackoverflow.com/a/11264120/10468 – DarenW 2012-07-19 20:27:34
@DarenW csg會waayy對我來說太慢,這應該是一個動態壁紙。因爲它在2D而不是3D,所以必須有一個簡單的解決方案。 – teamalpha5441 2012-07-19 20:30:04