|
Direct3DDevice->SetSamplerState (0,D3DSAMP_MAGFILTER,D3DTEXF_LINEAR);
Direct3DDevice->SetSamplerState (0,D3DSAMP_MINFILTER,D3DTEXF_LINEAR);
Direct3DDevice->SetSamplerState (0,D3DSAMP_MIPFILTER,D3DTEXF_LINEAR);
1.以上已设定了过滤的方式,为什么在用这个函数D3DXCreateTextureFromFileEx()创建纹理对象时,它还要设置DWORD FILTER(纹理的过滤方式)和DWORD MIPFILTER(自动生成纹理的序列的过滤方式),而且在赋值时,是D3DX_FILTER类型的值。
在设置采样的状态时,不是已经是设置了它的纹理的过滤的方式,如果它们不是一样的过滤的方式,那么它和D3DX_FILTER过滤的方式有什么区别呢?
2.D3DX_FILTER_BOX是如何进行过滤的。
3. CUSTOMVERTEX pVertex[]=
{
{ -3, -3, 0.0f, 0.0f, 1.0f},
{ -3, 3, 0.0f, 0.0f, 0.0f},
{ 3, -3, 0.0f, 1.0f, 1.0f},
{ 3, 3, 0.0f, 1.0f, 0.0f }
};
BYTE * Vertex;
ZeroMemory(&VertexBuffer,sizeof(VertexBuffer) );
if(FAILED(VertexBuffer->Lock (0,0,(void**)Vertex,0 ) ) )
return false;
memcpy(Vertex,pVertex,sizeof(pVertex) );
VertexBuffer->Unlock ();
锁定缓冲区时,都不是这样的吗?我在运行时,它说Vertex这个指针变量没有开内存空间就往里面进行赋值,是没有。但是,不是在锁定的时候,自动会开内存空间吗? 是不是设置其他参数和标志有问题,不知有没人和遇到过这个同样的问题,请各位指教。
4.D3DLOCK_NOOVERWRITE和D3DLOCK_DISCARD到底有什么区别?当资源是动态的时候,它们是一起来使用的吗?
|
|