用户
 找回密码
 立即注册
winlis 该用户已被删除
发表于 2014-8-7 10:15:23
74900
你好,想请问一下如果用cuda已经计算出了三角片的信息存放在显存里,可以直接用directX来绘制吗?就是例如
用以下方法可以赋值到*VB (存放顶点)中
IDirect3DVertexBuffer9* VB = 0;
Device->CreateVertexBuffer(
                8 * sizeof(Vertex),
                D3DUSAGE_WRITEONLY,
                Vertex::FVF,
                D3DPOOL_MANAGED,
                &VB,
                0);


Vertex* vertices;
        VB->Lock(0, 0, (void**)&vertices, 0);

        // vertices of a unit cube
        vertices[0] = Vertex(-1.0f, -1.0f, -1.0f);
        vertices[1] = Vertex(-1.0f,  1.0f, -1.0f);
        vertices[2] = Vertex( 1.0f,  1.0f, -1.0f);
        vertices[3] = Vertex( 1.0f, -1.0f, -1.0f);
        vertices[4] = Vertex(-1.0f, -1.0f,  1.0f);
        vertices[5] = Vertex(-1.0f,  1.0f,  1.0f);
        vertices[6] = Vertex( 1.0f,  1.0f,  1.0f);
        vertices[7] = Vertex( 1.0f, -1.0f,  1.0f);

        VB->Unlock();


假若用以下方法在cuda中已经存在了顶点的信息
Vertex* dev_a = 0;//定义
cudaMalloc((void**)&dev_a, 8 * sizeof(Vertex));//分配显存

<<<a,b>>>f(dev_a )//假若此方法可以计算出顶点
那可以直接把dev_a 的内容赋值到VB 里面吗?而不需要把dev_a 传递到主存再赋值给VB
请问可以怎么做?
使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册