为什么第二个RTPmodel不初始化

时间:2019-05-09 09:36:22

标签: c++ optix

我解析了一个txt文件以获取场景描述,并尝试为文件中的每个三角形添加Optix Prime RTPmodel。这适用于第一个三角形,但是第二个模型在初始化后仍然以某种方式仍为NULL引用。程序将模型推入向量时抛出以下错误:Exception thrown at 0x00007FFB608640D0 (optix_prime.6.0.0.dll) in CustomEngine.exe: 0xC0000005: Access violation reading location 0x0000000000000020

我在Visual Studio和Optix 6.0中使用VC ++

我试图用一个函数来完成整个RTPmodel的创建,但无济于事。由于它仅影响它解析的第二个模型,因此可能是一些我忘记的关闭函数调用,但我确实调用了rtpModelUpdate()并尝试了rtpModelFinish(),但是随后出现错误而不是在{{1 }}。锁定一个不相关的缓冲区(命中缓冲区)的缓冲区似乎可以解决它,但是在创建RTPquery时抛出相同的异常。

push_back
    // Parses a triangle definition
    void SceneParser::parseTriangle(const char* line)
    {
        //
        // [...] This is where I parse the vertices
        //
        std::vector<float> vertices({ v0.x, v0.y, v0.z, v1.x, v1.y, v1.z, v2.x, v2.y, v2.z });
        std::vector<uint> indices({ 0, 1, 2 });

        RTPmodel triangle;
        rtpModelCreate(m_scene->getContext(), &triangle); // after this call, the second parsed triangle is still NULL, whereas the first had an adress
        m_scene->addObject(triangle, vertices, indices, TransformMatrix(vec3(0.0f), 0.0f)); // Dummy transform, since the vertices are already in place
    }

0 个答案:

没有答案