今天热门
热点:

网格instance,instance


DX中,有一顶点缓存VB,需绘制100个instance,前50个传入一个参数V = 2 到shader中参与计算,后50传V=3到shader中参与计算,请问怎么实现。下列代码实现了绘制100个实例,怎么实现传参呢?
m_pD3DDevice->SetStreamSource(0, VB, 0, D3DXGetDeclVertexSize(declTreeInstance,0));
m_pD3DDevice->SetStreamSourceFreq(0, D3DSTREAMSOURCE_INDEXEDDATA | 100);
m_pD3DDevice->SetStreamSource(1, InstanceVB, 0, D3DXGetDeclVertexSize(declTreeInstance,1));
m_pD3DDevice->SetStreamSourceFreq(1, D3DSTREAMSOURCE_INSTANCEDATA | 1UL);

解决方案

是啊,SetStreamSource(1,的第三个参数可以指定跳过一些字节,这样你可以画第二组50个的时候用InstanceVB的后半段

direct9只能分成两个50画,或者在instance数据里用一个texcoord的分量保存你那个V

在d3d10里可以用SV_InstanceID

www.zrccd.nettrue/topics/20180124/125170.htmlTechArticle网格instance,instance DX中,有一顶点缓存VB,需绘制100个instance,前50个传入一个参数V=2到shader中参与计算,后50传V=3到shader中参与计算,请问怎么实现。下列代码实现了绘制100个实例,怎...

相关文章

    暂无相关文章

用户评论

大家都在看