在D3D下,把纹理贴到对应大小的窗体上,为什么纹理比对应的BMP文件看起来更模糊?解决方案

在D3D下,把纹理贴到对应大小的窗体上,为什么纹理比对应的BMP文件看起来更模糊?
在D3D下,把纹理贴到对应大小的窗体上,为什么纹理比对应的BMP文件看起来更模糊?

------解决方案--------------------
比如如果你把1024*768的纹理贴到1024*768的窗口上,一般都会看起来模糊。这是因为显卡寻址时像素的坐标是在像素中心,而不是边缘。所以会和实际的位置差0.5个像素。你可以搜一下alternate pixel center。

建议你把uv偏移0.5个像素就清晰了.
比如

u+=0.5/1024;
v+=0.5/758;
------解决方案--------------------
如果你是通过把贴图贴到一个四方形上实现的,那么把四方形四个顶点的uv坐标都偏移0.5个像素。
------解决方案--------------------
参考d3d得文档Directly Mapping Texels to Pixels
------解决方案--------------------

mark

------解决方案--------------------
不是那个原因

模糊是因为纹理带了Mipmap,在创建贴在窗体上的纹理的时候把Mipmap关掉就不模糊了
------解决方案--------------------
是这样吗,u+=0.5/窗口长
v+=0.5/窗口高
------解决方案--------------------
或者
u-=0.5/窗口长 
v-=0.5/窗口高

我猜你用的是u+=0.5,要除以窗口的长啊
------解决方案--------------------
探讨
引用:
是这样吗,u+=0.5/窗口长
v+=0.5/窗口高



没这样弄,我参考SDK里面弄的只是减0。5而已!!!

------解决方案--------------------
贴图最右边的u是1,最下边的v是1,如果你直接减0.5,那肯定只有半个贴图啦。所以只能减半个像素
------解决方案--------------------
还有,四个顶点都要偏移。
------解决方案--------------------
mark
------解决方案--------------------
默认纹理产生都是四方形的,好像还必须是2的n次方这种限制。如果不是2的n次方图片看起来就会模糊。
------解决方案--------------------
= =偶怀疑滤镜问题~~·
------解决方案--------------------
探讨
引用:
不是那个原因

模糊是因为纹理带了Mipmap,在创建贴在窗体上的纹理的时候把Mipmap关掉就不模糊了




我用的是那个直接从路径加载纹理的函数,应该没什么Mipmap设置吧?

------解决方案--------------------
探讨
= =偶怀疑滤镜问题~~·

------解决方案--------------------
探讨
引用:
引用:
不是那个原因

模糊是因为纹理带了Mipmap,在创建贴在窗体上的纹理的时候把Mipmap关掉就不模糊了


我用的是那个直接从路径加载纹理的函数,应该没什么Mipmap设置吧?


加载纹理的时候如果你不明确的指明不要mipmap它会自动生成

------解决方案--------------------

mark

------解决方案--------------------
探讨
引用:
引用:
引用:
不是那个原因

模糊是因为纹理带了Mipmap,在创建贴在窗体上的纹理的时候把Mipmap关掉就不模糊了


我用的是那个直接从路径加载纹理的函数,应该没什么Mipmap设置吧?


加载纹理的时候如果你不明确的指明不要mipmap它会自动生成




automipmap 是要你生成贴图时 自己指定的

默认不会 开启 automipmap 的

------解决方案--------------------
xqhrs232移了贴图,设了点采样,还是不清晰么?
------解决方案--------------------
探讨
HRESULT D3DXCreateTextureFromFile(LPDIRECT3DDEVICE9 pDevice,
LPCTSTR pSrcFile,
LPDIRECT3DTEXTURE9 *ppTexture
);

在这个函数没看到怎么指定mipmap啊!!!