D3D 粘贴纹理后,后续绘制的多边形的颜色变了解决思路
D3D 粘贴纹理后,后续绘制的多边形的颜色变了
在程序中我先粘贴了一幅纹理,可是后来再绘制多边形时发现显示的颜色与程序中设定的颜色不一样了。后经分析发现是某个渲染状态改变了。所以我在粘贴纹理前保存了状态块,粘贴纹理后在恢复状态块并绘制后续的多边形,显示的颜色就正确了。
问题是到底是哪个(或哪些)状态被改变了?
程序中未进行光照处理,纹理创建是:
D3DXCreateTextureFromFileEx(g_pd3dDevice,
L"image01.bmp",
D3DX_DEFAULT_NONPOW2,
D3DX_DEFAULT_NONPOW2,
D3DX_FROM_FILE,
0,
D3DFMT_UNKNOWN,
D3DPOOL_MANAGED,
D3DX_FILTER_NONE,
D3DX_DEFAULT,
0,
NULL,
NULL,
&g_pTexture );
------解决方案--------------------
是不是有点线的绘制?
建议当前纹理绘制完毕后,SetTexture(NULL);
如果实在找不到问题,就只有排除法,在状态块里一一排除。
在程序中我先粘贴了一幅纹理,可是后来再绘制多边形时发现显示的颜色与程序中设定的颜色不一样了。后经分析发现是某个渲染状态改变了。所以我在粘贴纹理前保存了状态块,粘贴纹理后在恢复状态块并绘制后续的多边形,显示的颜色就正确了。
问题是到底是哪个(或哪些)状态被改变了?
程序中未进行光照处理,纹理创建是:
D3DXCreateTextureFromFileEx(g_pd3dDevice,
L"image01.bmp",
D3DX_DEFAULT_NONPOW2,
D3DX_DEFAULT_NONPOW2,
D3DX_FROM_FILE,
0,
D3DFMT_UNKNOWN,
D3DPOOL_MANAGED,
D3DX_FILTER_NONE,
D3DX_DEFAULT,
0,
NULL,
NULL,
&g_pTexture );
------解决方案--------------------
是不是有点线的绘制?
建议当前纹理绘制完毕后,SetTexture(NULL);
如果实在找不到问题,就只有排除法,在状态块里一一排除。