原来的地址,此时Renderer对象中的指针变量指向的将是无效数据(图2)。
图2 将对象数据复制到GPU可能产生的指针问题
75 正确的做法应该是,首先在GPU内存中为Scene对象分配空间,将该对象从内存复制
到GPU内存,然后将Renderer对象中的Scene对象的指针值修改为之前所分配GPU内存的首地址,再用类似的方法把Renderer对象复制到GPU内存中。这样就保证了在GPU端运行代码时能够正确访问到Scene对象的数据。这种方式类似于在内存中的两个对象之间进行深拷贝的方式。本文为每一个需要存放在GPU中的类实现了一个createGpuObject方法,每80 个类的对象在该方法中保证对自身进行正确的复制。
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科CUDA光线跟踪渲染器的实现和优化(3)全文阅读和word下载服务。
相关推荐: