我必须计算平面上镜子的可见度场(即:地板)。
镜面由几个三角形组成(最多几千个)。
每个顶点定义一个镜像点,每个镜像点最多可以对应6个三角形顶点并有一条法线。
为了做到这一点,我应该计算一个特定点之间的线,代表司机头部(所有蓝线的来源),以及位于镜面上的每个镜像点(在右侧的图像中)。然后对于这些点中的每一个,我应该根据第 i 条蓝线和第 i 条法线的方向以及第 i 条黄线和地板之间的交点来计算它们的反射(黄线)。显然,在此过程中,蓝线和黄线都需要测试与车辆几何形状的任何交叉点。
现在整个过程都在 cpu 上运行,为了让它更快,最初的想法是在 OpenCL 上移动计算部分。
我来自 Cuda 环境(你知道 OpenCL 非常相似),我学习了 OpenGL,现在我开始发现 GLSL..
鉴于我阅读的 GLSL 与 Cuda/OpenCL 相比有一些限制,但它更快并且具有更广泛的兼容性,是否可以在 GLSL 中实现我所需要的?如果是,它是否有任何问题/限制如此严重以至于它可能不值得?