`

Direct3D纹理映射

 
阅读更多
创建纹理对象
1: HRESULT CreateTexture(
 2: UINT Width,//宽度
 3: UINT Height,//高度
 4: UINT Levels,//多级渐进纹理序列级数
 5: DWORD Usage,//用途
 6: D3DFORMAT Format,//像素格式
 7: D3DPOOL Pool,//内存池类型
 8: IDirect3DTexture9** ppTexture,//创建的纹理对象指针
 9: HANDLE* pSharedHandle//保留值,恒为0
10: );
1: HRESULT D3DXCreateTextureFromFile(
2: LPDIRECT3DDEVICE9 pDevice,//D3D设备对象接口
3: LPCTSTR pSrcFile,//图片路径
4: LPDIRECT3DTEXTURE9 * ppTexture//返回生成的D3D纹理对象指针
5: );
纹理过滤方式
·Nearest-point sampling(最近点采样)
·Linear texture filtering(线性纹理过滤)
·Anisotropic texture filtering(各向异性纹理过滤)
·Texture filtering with mipmaps(多级渐进纹理过滤)
D3DTEXF_POINT
取距离最近的像素的颜色,适用于纹理与图元的大小相近时
D3DTEXF_LINEAR
对上下左右4个纹理元素进行加权平均
D3DTEXF_ANISOTROPIC
对映射点周围方形8个或更多的像素进行取样,获得平均值后映射到像素点上
D3DSAMP_MIPFILTER
采用不同分辨率的纹理序列
游戏中常见的三种方式:
·BilinearInterpolation(双线过滤D3DTEXF_LINEAR
这种处理方式较适用于有一定景深的静态影像,不过无法提供最佳品质。其最大问题在于,当三维物体变得非常小时,一种被称为DepthAliasingartifacts(深度赝样锯齿),也不适用于移动中的物件。
·TrilinearInterpolation(三线过滤D3DSAMP_MIPFILTER+ D3DTEXF_LINEAR
一个“双线过滤”需要三次混合,而“三线过滤”就得作七次混合处理,所以每个像素就需要多用21/3倍以上的计算时间。还需要两倍大的存储器时钟带宽。但是“三线过滤”可以提供最高的贴图品质,会去除材质的“闪烁”效果。对于需要动态物体或景深很大的场景应用方面而言,只有“三线过滤”才能提供可接受的材质品质。
·AnisotropicInterpolation(各向异性过滤D3DTEXF_ANISOTROPIC
它在取样时候,会取8个甚至更多的像素来加以处理,所得到的质量最好。
可以与线性纹理过滤和多级渐进纹理过滤结合使用.一般来说4X以上才有效果
纹理寻址模式
当纹理坐标在[0.0, 1.0]范围之外时的情况
1. Wrap texture address mode(重叠)
2. Mirror texture address mode(镜像)
3. Clamp texture address mode(夹取)
4. Border color texture address mode(边框颜色)
纹理阶段混合
颜色混合,纹理混合,Alpha混合,还有个凹凸映射?
纹理包装
Texture Wrapping,改变D3D光栅器使用纹理坐标对有纹理的多边形进行光栅化操作的基本方式.
U,V纹理包装的使用会影响D3D在U,V方向上对纹理坐标间最短线的选取.
上图中的U方向上的包装使AB之间的纹理坐标内插操作就穿越了0.0和1.0所在的交界线.
可以用纹理包装来做环境映射(现在通常都是用Cubemap吧?)略过
分享到:
评论

相关推荐

    direct9.0纹理映射

    包含 1.纹理过滤器 2.多级纹理 3.寻址模式 的使用!

    Direct3D游戏编程入门教程

    第二部分着重讨论纹理映射技术,包括多重纹理等;第三部分通过多个示例来讨论高级shader编程,并对.MD3文件格式做了详细分析;第四部分是附录,对本书中用到的概念和技术背景进行了简单不成。 本书适用于略有...

    精通Direct3D图形与动画程序设计 06_第六章 纹理映射基础.rar

    第6章 纹理映射基础 1、TextureBase 演示使用纹理贴图的基本步骤。 2、TexFilterMode 演示最近点采样和线性纹理过滤方式。在程序运行时,单击键盘上的数字键“1”,使用最近点采样纹理过滤方式,单击键盘上的数字键...

    Direct纹理映射程序

    简单的纹理映射程序 .net环境下测试成功 D3D开发基础

    Direct3D游戏编程入门教程2

    第二部分着重讨论纹理映射技术,包括多重纹理等;第三部分通过多个示例来探讨高级shader编程,并对.MD3文件格式做了详细分析;第四部分是附录,对本书中用到的概念和技术知识背景进行了简单补充。 Direct 3D 游戏...

    精通Direct3D图形与动画程序设计 12_第十二章 高级纹理应用.rar

    第12章 高级纹理应用 1、MultiTexture 演示使用多层(多阶段)纹理混合的基本步骤。 2、TexColorBlend ...演示凹凸纹理映射。 8、VolumeTexture 演示立体纹理映射。 9、DXTTexture 演示DXT压缩纹理的创建和使用。

    精通Direct3D图形与动画程序设计 33_第三十三章 凹凸纹理映射应用.rar

    第33章 凹凸纹理映射应用 1、BumpUnderWater 演示使用凹凸纹理映射实现水下视觉效果模拟。 2、BumpWaves 演示使用凹凸纹理映射实现水波效果模拟。

    《精通direct3d图形及动画程序设计》附书源代码

    演示使用ASM渲染语言进行GPU编程实现基本的纹理映射,演示ASM像素渲染基本步骤。 2、ASMBlur 演示使用ASM渲染语言进行GPU编程实现模糊效果。 3、ASMEffect 演示使用ASM渲染语言进行GPU编程中效果的使用。 4、HLSL_...

    Direct3D游戏编程入门教程(第二版)

    第二部分着重讨论纹理映射技术,包括多重纹理等;第三部分通过多个示例来探讨高级shader编程,并对.MD3文件格式做了详细分析;第四部分是附录,对本书中用到的概念和技术知识背景进行了简单补充。

    【C++】纹理映射演示demo之二 by浅墨

    源码配套博文 《【Visual C++】游戏开发笔记四十三 浅墨DirectX教程十一 为三维世界添彩:纹理映射技术(二)》 ,文章地址为http://blog.csdn.net/zhmxy555/article/details/8567848, 点击debug下的exe文件可以...

    【C++】纹理映射演示demo之一 by浅墨

    源码配套博文 《【Visual C++】游戏开发笔记四十一 浅墨DirectX教程之九 为三维世界添彩:纹理映射技术(一)》 ,文章地址为http://blog.csdn.net/zhmxy555/article/details/8523341, 点击debug下的exe文件可以...

    Directx9.0 3D游戏开发编程基础

    第6章 纹理映射 第7章 融合技术 第8章 模板 第9章 字体 第10章 网格(一) 第11章 网格(二) 第12章 设计一个灵活的Camera类 第13章 地形绘制基础 第14章 粒子系统 第15章 拾取 第16章 高级着色语言(HLSL)入门 ...

    精通Direct3D图形与动画程序设计 19_第十九章 HLSL像素渲染.rar

    第19章 HLSL像素渲染 1、HLSLPixelColor 演示使用HLSL渲染语言进行GPU编程直接指定像素颜色值、HLSL像素渲染基本步骤。 2、HLSLTexture 演示HLSL渲染语言进行GPU编程实现纹理映射。

    Introduction to 3D Game Programming with DirectX 10(中文版)

    几何着色器、光照、纹理映射、混合和模板。第III部分主要是运用Direct3D实现一些 有趣的技术和特殊效果,比如使用网格、地形渲染、拾取、粒子系统、环境贴图映射、法线 贴图映射、阴影和渲染到纹理。

    Introduction to 3D Game Programming with DirectX 10中文版

    第II部分涵盖了基本的Direct3D编程技术,比如初始化、定义3D几何体、放置摄像机、创建顶点/像素/几何着色器、光照、纹理映射、混合和模板。第III部分主要是运用Direct3D实现一些有趣的技术和特殊效果,比如使用网格...

    《DirectX程序设计》习题及答案

    6、Direct3D中的纹理映射 4 7、使用Alpha混合实现瞄准镜效果 4 8、Stencil蒙板实现镜面阴影效果 5 9、Xfile网格的应用 6 10、DirectInput键盘、鼠标的输入处理 7 11、DirectSound声效 8 12、摄像机实现 8 13、地形的...

Global site tag (gtag.js) - Google Analytics