原文:Direct3D纹理映射

更详细的文章:DirectX中的纹理映射相关技术 (转)

 
创建纹理对象
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 采用不同分辨率的纹理序列
 
游戏中常见的三种方式:
·Bilinear Interpolation (双线过滤D3DTEXF_LINEAR)
这种处理方式较适用于有一定景深的静态影像,不过无法提供最佳品质。其最大问题在于,当三维物体变得非常小时,一种被称为Depth Aliasing artifacts(深度赝样锯齿),也不适用于移动中的物件。
·Trilinear Interpolation (三线过滤D3DSAMP_MIPFILTER+ D3DTEXF_LINEAR)
一个“双线过滤”需要三次混合,而“三线过滤”就得作七次混合处理,所以每个像素就需要多用21/3倍以上的计算时间。还需要两倍大的存储器时钟带宽。但是“三线过滤”可以提供最高的贴图品质,会去除材质的“闪烁”效果。对于需要动态物体或景深很大的场景应用方面而言,只有“三线过滤”才能提供可接受的材质品质。
·Anisotropic Interpolation (各向异性过滤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吧?)略过

【转载】Direct3D纹理映射的更多相关文章

  1. Direct3D 纹理映射

    纹理映射是将2D的图片映射到一个3D物体上面,物体上漂亮图案被称为纹理贴图, 一个表面可以支持多张贴图等等,下面简单介绍下纹理贴图 纹理贴图UV: 贴图是一个个像素点组成,每一个像素点都由一个坐标最后 ...

  2. Direct3D 11 Tutorial 7:Texture Mapping and Constant Buffers_Direct3D 11 教程7:纹理映射和常量缓冲区

    概述 在上一个教程中,我们为项目引入了照明. 现在我们将通过向我们的立方体添加纹理来构建它. 此外,我们将介绍常量缓冲区的概念,并解释如何使用缓冲区通过最小化带宽使用来加速处理. 本教程的目的是修改中 ...

  3. Direct3d 设备丢失 (device lost) (转载)

    转:http://blog.csdn.net/kuangfengwu/article/details/7674074 1.什么时候设备丢失 一个Direct3D设备, 有两种状态: 操作状态或丢失状态 ...

  4. 【转载】Direct3D HLSL介绍(上)

    原文路径:http://www.csharpwin.com/csharpspace/3087.shtml 写过Direct3D程序的朋友们可能还记得,在以往,大家常为如何表现更多真实的材质(如玻璃.金 ...

  5. 【转载】Direct3D基础知识

    原文:Direct3D基础知识 重新从头开始学习DX,以前太急于求成了,很多基础知识都没掌握就开始写程序了,结果出了问题很难解决.   1.       D3D体系结构 D3D与GDI处与同一层次,区 ...

  6. 【转载】OLE控件在Direct3D中的渲染方法

    原文:OLE控件在Direct3D中的渲染方法 Windows上的图形绘制是基于GDI的, 而Direct3D并不是, 所以, 要在3D窗口中显示一些Windows中的控件会有很多问题 那么, 有什么 ...

  7. 学习opengl十大网站(转载)

    [转载] 1.http://nehe.gamedev.net/这个是我觉得全世界最知名的OpenGL教程,而且有网友将其中48个教程翻译成了中文http://www.owlei.com/Dancing ...

  8. 【转】OpenGL超级宝典笔记——纹理映射Mipmap

    原文地址 http://my.oschina.net/sweetdark/blog/177812 , 感谢作者,若非法转载请联系本人. 目录[-] Mipmapping Mipmap过滤 构建Mip层 ...

  9. 【译】Import Changes from Direct3D 11 to Direct3D 12

    译者:林公子 出处:木木的二进制人生 转载请注明作者和出处,谢谢! 这是微软公布的Direct3D 12文档的其中一篇,此翻译留作学习记录备忘,水平有限,错漏难免,还望海涵. 原文链接是https:/ ...

随机推荐

  1. Windows环境下JDK的配置及多版本JDK切换的方法记录

    (这里记录了笔者了解的关于JDK环境配置的信息,以及针对系统上存在不同版本JDK时所尝试的解决方案.具体来说,是已安装 JDK 8 后,又安装了 JDK 9 时所遇到的问题和尝试的解决方法.这次记录以 ...

  2. VMware Harbor 学习

    Harbor简介 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全.标识和管理等,扩展了开源Docker Distributio ...

  3. [POI2006]TET-Tetris 3D

    题目 二维线段树板子题啊 但是惊讶的发现我不会打标记 毕竟内层是线段树不能\(pushup\)也不能\(pushdown\) 于是考虑一下标记永久化 其实非常显然\(mx_i\)表示区间最大值,\(t ...

  4. fastjson反序列化TemplatesImpl

    环境参考第一个链接,直接用IDEA打开 编译EvilObject.java成EvilObject.class 先看poc,其中NASTY_CLASS为TemplatesImpl类,evilCode是E ...

  5. Kali-linux物理访问攻击

    物理访问攻击与提升用户的权限类似.即当一个普通用户登录到系统中,破解本地其他用户账户的密码.在Linux中,普通用户可以通过su命令代替其他用户执行某些操作,意味着该用户能够在Linux/Unix系统 ...

  6. Convolution1D与Convolution2D区别

    以下是Convolution1D的例子: # apply a convolution 1d of length 3 to a sequence with 10 timesteps, # with 64 ...

  7. easyUi的一些常用方法

    目录: 1.获取表格的pageNumber和pageSize 2.获取/设置下拉列表的选中值 3.下拉列表的输入框的禁用 1.获取表格的pageNumber和pageSize var pageNumb ...

  8. CSS动画总结效果

       CSS3添加了几个动画效果的属性,通过设置这些属性,可以做出一些简单的动画效果而不需要再去借助JavaScript.CSS3动画的属性主要分为三类:transform.transition以及a ...

  9. css一边固定,另一边自适应的方法

    第一种: 第二种:

  10. crontab基础笔记 思维导图版

    直接上图吧----------------------------------------------------------------------------------------------- ...