Hi,
I have a raytrace software and would like to implement a part of it with OpenCL.
In order to do this I must pass the entire scene information to OpenCL...
My problem is that it is a complex 'structure/class' hierarchy that use a lot of pointers.
And I don't know an efficient way to pass this scene information to OpenCL.
By example :
struct Scene
{
Lights * lights;
InstanceList * instanceList;
}
struct InstanceList
{
Instance * instance;
int Count;
}
struct Instance
{
Geometry * geometry;
Instance * next;
}
struct Geometry
{
int GeometryType; // 0 = sphere, 1 = cylinder, 2 = Triangle mesh
Sphere * sphere;
Cylinder * cylinder;
TriangleMesh * triangleMesh;
}
struct TriangleMesh
{
int[] Indices;
float[] Vertices;
}
So, with this (simplified) version of the scene, how can I pass this information to openCl and use it ?
Thanks for your help