CUDA SDK marching cubes 示例

[table=98%]
[tr][td]
有没有大神能帮我详解下这个例子?

这个例子的输入数据是raw和bin格式的,有谁知道里面是什么?
这个例子能使用自己的数据输入吗?[/td][/tr]
[/table]

LZ您好,如果您打开本工程的cpp主文件,那么在代码开始之前提供了大量的说明,包括介绍本算法的网址,您可以看看这些信息,或者去这些网站看看,看有什么收获。

此外,您也可以从代码中找到raw和bin文件的访问方式的相关代码,您也可以依此考虑代码是如何访问这些数据文件的,以及,自己的数据文件应当如何组织。(当然,如果你用自己的数据文件,可能还需要修改代码的其他地方。)

祝您编码顺利~

谢谢你的答复
但源代码中只是简单的读进去,我并不知道raw文件中数据的存储格式,所以无法得知如何处理,请问我应该怎样查看raw文件?raw文件又是如何存储的?

LZ您好,一般来说外人是无法直接得知RAW文件内部是如何存储的,因为RAW并非是有统一标准的文件格式,而且这里的RAW文件也不是经常网上讨论的数码相机的RAW文件。

所以,您可以去文件前面提供的网址看看有没有说明。

另外,如果据我个人推测,这里的RAW应该是没有其他格式的纯数据文件,你可以从读取文件的代码推测出内部一些信息,比如说是一个字节表示一个整数呢还是多个字节。如果这个RAW的数据实际上是两维或者3维坐标的数据,那么您还需要设法得到维度信息和存储顺序情况。
同时bin文件一般也是类似的纯数据文件,一般以二进制模式存储,您可以参考读取文件的部分代码。

总之,推荐您去文件提供的说明信息那里的网址寻找原作者提供的详细信息,否则,仅从代码反推,还是比较费时费力的。

祝您编码愉快~

谢谢!我再去看看

嗯嗯,祝您早日破解该文件格式!

如果我没记错的话,bucky.raw是32x32x32大小的unsigned char数据。

版主你好!
我将源程序中的 bucky.raw 换成自己的数据,把源代码中绑定到纹理内存的一位数组换了,其他的大小也相应的换了,为什么会出现 First-chance exception at 0x75cc812f in marchingCubes.exe: Microsoft C++ exception: cudaError_enum at memory location 0x0018f3e4…

请问版主看过源代码没?一直不太了解 maxVerts 这个变量是什么意思

看来这位大神研究过源码啊
请问如果我把数据换成自己的,应该怎么做呢?

LZ您好,您可能是还有哪里没有完全改好,以至于报错。

该程序的源码只在上次回帖的时候,大致看过读取数据的部分,对于程序的功能实现和用途背景都是不清楚的,隔行隔山,建议熟悉该程序的和您类似方向的网友补充。

祝您好运。

大神称号不敢当,光是听一下都要折寿。。。。。
marching cubes的代码在一年多前粗略看过,当时对另一个例子volume rendering看的比较细,不过两个例子在读数据部分印象中几乎一样。你要想用自己的数据,首先要做以下事情:

  1. 确定你数据的大小和数据类型。
  2. 对例子中读入数据部分、纹理绑定部分、kernel中纹理采样部分(这个或许可以不改,自己查下吧)逐一修改。