如何解决OpenCL 等效于 OpenGL 函数参数限定符 out 和 inout
我有一点使用 OpenGL 的经验,我通常将 out
和 inout
参数限定符用于函数以返回多个值。在 OpenCL 中,这些限定符似乎不存在。在这种情况下,我们如何从函数中返回多个值?我想这与指针有关,但作为一名 Java 程序员,我对指针没有太多经验。我了解如何将它们用作数组,但我不知道如何使用结构指针。例如,我将如何在 OpenCL 中执行此操作?
OpenGL 代码:
struct Ray{
vec3 origin;
vec3 dir;
};
bool scatterMetal(Ray r,HitRecord rec,inout vec3 tmpAtt,inout Ray scattered){
vec3 reflected = reflect(r.dir,rec.n);
tmpAtt = rec.mat.albedo;
scattered = Ray(rec.p,reflected + randOnBall()*rec.mat.fuzz);
return dot(scattered.dir,rec.n) > 0;
}
在此代码示例中,我需要知道光线是否会反射,因此 bool
作为返回类型,但我还需要在 scattered
结构中存储额外信息。这将如何在 OpenCL 中完成?
任何帮助或资源指针将不胜感激,如果您需要更多信息,我可以在评论中添加。
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。