2

我正在使用 JOCL(Java 的 OpenCL 绑定)编写 OpenCL 光线追踪器。我想将一个结构数组传递给我的内核。该结构如下所示:

struct Sphere {
    float3 center;
    float radius;
    int materialIndex;
};

内核认为它是这样的:

__kernel void raytraceKernel(
    __constant struct Sphere *spheres,
    etc...

做这个的最好方式是什么?最初,该结构没有该materialIndex字段,所以我只是在 Java 中创建了一个浮点数组,用中心、半径和填充填充它,然后将其发送到内核。但是,当我添加时,materialIndex我决定将我的程序转换为使用 NIO 缓冲区,这不起作用(数据已损坏)。

有没有更好的方法来使用 JOCL 将结构数组传递给内核?

4

0 回答 0