我需要加速一些使用密集計算的程序,其中需要從立方體,球體和類似物之間的交點進行表面計算。使用CUDA我需要指定我需要的所有formuale,當然,爲了分析計算與交叉點有關的信息。但是因爲我只需要對結果曲面進行很好的近似處理,所以我瞭解到OpenGL可以計算或估計這些曲面。不知您是否可以給我您的意見或指向相關參考哪些幾何計算可以使用OpenGL加速
3
A
回答
1
如果你只需要渲染的對象,你可以使用模板緩存來評價你需要的任何布爾運算:http://www.opengl.org/resources/code/samples/advanced/advanced97/notes/node11.html
,可以從任一對相交表面的角度或正投影來計算的任何數量的可能從這樣的渲染以及其深度緩衝區中推導出來。如果您需要提取整個交點,則可以嘗試使用深度剝離和模板化CSG一起提取完整交點的分層表示,儘管在與查看方向平行的表面部分可能非常不準確,而您將需要做一些額外的工作縫合層回到一起: http://developer.download.nvidia.com/SDK/10/opengl/src/dual_depth_peeling/doc/DualDepthPeeling.pdf
編輯:這將適用於任意的,自由形式的表面,是一個相當標準的技術。但它確實有其侷限性,因爲您獲得的準確性會相當差,您可能必須投影到多個視圖才能獲得足夠的對象覆蓋。作爲一個例子,這裏是碰撞檢測的一個應用:http://www.cs.ucl.ac.uk/staff/b.spanlang/ISBCICSOWH.pdf
1
OpenGL在這裏比CUDA或OpenCL更少使用,因爲它主要針對繪製三角形網格。當然,您可以在現代OpenGL的各種着色器階段進行復雜的幾何計算。問題是,所有這些計算的結果都是基於像素的圖片。有一個反饋機制來檢索處理過的頂點數據,但只會給你一個網格。
任何平面或/和球的交點實際上是相當簡單的,可以通過分析來完成。真正的難題是自由曲面(Bezìer或NURBS)相交。那些通常沒有封閉的解決方案,所以你需要做的是在數值上逼近最適合交叉點的修剪曲線。
相關問題
- 1. 使用算術和幾何計算加速SQL SELECT
- 2. 使用加速度計計算步驟
- 3. 使用加速度計計算距離
- 4. 我可以在OpenGL ES 2.0中使用哪些GLSL版本?
- 5. 如何使用加速計計算車輛的速度?
- 6. 加速計算?
- 7. 在哪裏學習計算幾何?
- 8. Android:如何使用加速計計算從哪個設備跌落的高度?
- 9. 如何使用iphone sdk使用加速計計算距離?
- 10. 是否可以從加速計計算位置?
- 11. CUDA如何計算加速
- 12. 哪些算法可以根據歷史
- 13. 可以處理圓錐弧段的計算幾何算法
- 14. GWT。 GWT有哪些工具可以計算佣金18%?
- 15. 哪些ActiveDirectory對象可以包含計算機?
- 16. MIPS加速計算
- 17. 我可以使用哪些工具加載Android Sdk在Eclipse中快速運行?
- 18. 使用Delaunay Triangulation加速Python MST計算
- 19. 使用numpy矩陣加速計算
- 20. 使用GPU加速BigInteger計算
- 21. 使用本地內存加速計算
- 22. 從UIA加速計計算速度
- 23. openGL或UIKit?哪個最好 ?哪些應用使用openGl哪些應用使用UIKit?
- 24. 計算幾何Javascript
- 25. 我可以使用哪些所有設計模式?
- 26. 加速幾何cartesian2d.hpp
- 27. 我可以使用哪些字體?
- 28. 我可以使用哪些nginx版本?
- 29. Unity Input.getAxis可以使用哪些參數?
- 30. 哪些perf事件可以使用PEBS?
你可以更具體地說明你正試圖完成的任務嗎? – kvark 2011-06-15 18:55:41
計算球體和立方體之間相交所產生的物體的表面,具體是否足夠? – flow 2011-06-15 21:11:59
否(回答您的評論,而不是您的問題,但也可能適用),因爲這不像您預期的那樣直觀地映射到OpenGL。查看datenwolf的答案,感受解決幾何問題和柵格化三角形之間的差異。 – 2011-06-15 21:36:52