0

想象一个大型程序世界,价值超过 300k 的三角形(每 8x8x8m 块大约 5-10k)。由于它是程序性的,因此我需要通过代码创建所有数据。我已经设法制作了一个很好的法线平滑算法,现在我将使用纹理(每个人都需要纹理,你不想在简单颜色的世界中四处走动,对吗?)。问题是我不知道在哪里计算 UV 集更好(我正在使用三平面纹理映射)。

我有三种方法:
1.在CPU上进行计算,然后上传到 GPU(网格不是每帧修改 - 90% 的时间它保持静态计算是按块完成的当块发生变化时);

2.使用顶点着色器在GPU 上进行计算(每一帧中的每个三角形进行计算,但是网格有点大——每帧都这样做很昂贵吗?);

3.将算法移到OpenCL上(当块发生变化时,计算是按块进行的,我已经使用 OpenCL 对我的数据进行网格划分)并在网格改变时调用内核(便宜,但我所有的 OpenCL 经验都是基于修改现有代码,但我仍然有一些 C 背景,所以我可能需要很长时间才能让它工作);

哪种方法更好,因为我的小实验对于中端硬件来说已经有点重了?

我将 C# (.NET 4.0) 与 SlimDX 和 Cloo 一起使用。

4

0 回答 0