【发布时间】:2014-03-12 09:37:40
【问题描述】:
假设我有一个 3D 模型:
模型以顶点、面(所有三角形)和法线向量的形式给出。模型可能有孔和/或透明部分。
对于任意放置在无限远的光源,我必须确定:
- [必需]哪些三角形(部分)被其他三角形遮蔽
然后,对于部分阴影的三角形:
- [bonus] 三角形面积的多少部分被阴影覆盖
- [superbonus] 提出了一个可以准确描述阴影形状的新网格
我的最终应用程序必须在无头机器上运行,也就是说,它们没有 GPU。因此,OpenGL、OpenCL等所有标准的东西可能都不是最好的选择。
考虑到这一限制,确定这些事情的最有效算法是什么?
【问题讨论】:
-
您可以在没有 GPU 的情况下使用 OpenGL,请参阅 stackoverflow.com/questions/7310885/…
-
@PaulR:……但这是最优的吗?当以这种方式使用时,底层算法是否不会对可能使其在 CPU 上的效率低于严格必要的硬件做出假设?
-
我没有资格回答完整的问题 - 我只是想纠正之前的错误假设,即 OpenGL 不能在没有 GPU 的情况下使用。
-
只是为了确保我理解了这个问题:鉴于提供的图片,算法将返回几个三角形,它们就在盖子把手后面,一些在壶嘴底部后面,可能还有一些靠近壶嘴把手的底部,对吧?
-
@Marian:是的,当然还有整个背面 :) 所以,换一种说法:从平行光线光源观察时,哪些三角形(部分)不可见?
标签: algorithm 3d rendering shader occlusion-culling