1
5
m_pvb指向一个图形对象,在这种情况下,可能是一个顶点缓冲区。这个对象所保存的数据通常不会在CPU可访问的内存中——它可能被保存在图形硬件的板载RAM中,或者根本没有被分配;它可能在任何特定的时间被GPU使用;因此,如果您想从中读取或写入数据,您需要告诉图形子系统这一点,这就是lock()函数所做的。-与GPU同步,确保主内存中有一个足够大的缓冲区来存储数据,并且从CPU的角度来看,它包含了您此时期望的数据,并将指向该主内存的指针返回给您。需要有一个相应的unlock()调用来告诉GPU您已经完成了对对象的读取/修改。 要回答关于如何确定缓冲区大小的问题,请查看正在构建顶点缓冲区的位置-您应该看到顶点格式的描述以及传递给创建它的函数的元素计数。 |
2
1
您正在将指向customVertex指针(指向指针的指针)的指针压入lock函数,因此lock本身必须/需要创建customVertex对象,并将指针设置为指向它创建的对象。 |
3
1
为了在DX中修改顶点缓冲区,必须锁定它。为了实现这一点,dx api将只通过调用锁来显示vb的内部。 您的代码正在传入pVertexArray的地址,该地址锁定了vb的内部数据。然后代码继续修改顶点数据,大概是为渲染做准备。 |
4
1
你问错了问题,不是它怎么知道你需要x个对象,而是你怎么知道它需要x个对象。在中传递指向结构的指针的指针,函数返回指向已在内存中分配的结构的指针(从首次初始化顶点缓冲区时开始)。一切都在那里,你只是请求一个指向数组的指针来处理它,然后“释放它”,这样dx就知道读取顶点缓冲区并上传到gpu。 |
5
1
创建顶点缓冲区时,必须指定大小。当调用lock()时,将0作为要锁定的大小传递,这将告诉它锁定顶点缓冲区的整个大小。 |
Developer · DirectX:在向量缓冲区中存储多个顶点 6 年前 |
Eugen · 如何检查是否使用了真正的硬件视频适配器 6 年前 |
IAS0601 · Directx阴影映射 7 年前 |
Dev.K. · 处理3D动画图形着色器和相同3D动画GIF的差异 7 年前 |
Zlixine · 与普通静态数组类似的适当容器? 7 年前 |