随笔分类 -  D3D

摘要:http://blog.csdn.net/jaredz/archive/2006/04/29/697392.aspx好强呀,这篇文章。第六集 纹理映射技术为使建立的3D模型更接近现实世界中的物体, 简单的颜色变换已经无能为力, 这时我们就需要纹理映射技术了. 这一集我们讲解基础的纹理映射技术的数学模型, 对于在粒子系统使用的过程纹理技术在高级部分讲解.6.1 二维纹理映射6.1.1 纹理映射的简单建模 二维纹理映射就是从二维纹理平面到三维物体表面的映射. 一般二维纹理平面是有范围限制的, 在这个平面区域内, 每点都可用数学函数表达, 从而可以离散的分离出每点的灰度值和颜色值, 这个平面区域称为 阅读全文
posted @ 2011-02-05 22:05 oayx 阅读(1381) 评论(0) 推荐(1) 编辑
摘要:除了指定的是鼠标标识符以及鼠标数据格式外,初始化鼠标就和初始化键盘几乎完全相同。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--//--------------------------------------------------------------------------------//Initializemouseinterface,returnamouseinterfacepointer.//---------------------- 阅读全文
posted @ 2011-02-05 21:34 oayx 阅读(759) 评论(0) 推荐(0) 编辑
摘要:设置数据格式每种设备都有一种用于读取数据的特定数据格式,需要考虑的东西也很多,包括键、鼠标按键、轴等。因此要使程序从设备读取数据,首先必须告诉DirectInput读取这种数据所采用的格式。通过 IDirectInputDevice8::SetDataFormat函数即可满足上述要求。Sets the data format for the Microsoft DirectInput device.SyntaxHRESULT SetDataFormat(LPCDIDATAFORMAT lpdf);ParameterslpdfAddress of a structure that describ 阅读全文
posted @ 2011-02-05 21:33 oayx 阅读(927) 评论(0) 推荐(0) 编辑
摘要:DirectInput是一些COM对象的集合(和所有DirectX组件相同),这些COM对象描绘了输入系统和各个输入设备。最主要的对象是DirectInput8,它用于初始化系统以及创建输入设备接口。DirectInput COM对象:IDirectInput8:主要的DirectInput8 COM接口,其他所有接口都通过这个接口进行查询。DirectInputDevice8:用于输入设备的COM接口,每个设备都有自己单独的接口可供使用。DirectInputEffect:用于力反馈效果的 COM接口,比如某些游戏杆和某些鼠标上的力反馈效果。各种输入设备(比如键盘、鼠标和游戏杆)都使用相同的 阅读全文
posted @ 2011-02-05 21:32 oayx 阅读(927) 评论(0) 推荐(0) 编辑
摘要:GPU性能调试:通常来说,使用CPU时间事件来调试GPU是低效并且是不准确的。D3D API在多数命令下会阻塞,甚至是Draw函数。它会在一些时间片上做一些真正的工作,而这往往是不可预知的。因此,GPU的性能调试只能用PIX或者是其他专用产品,例如NVIDIA’s NVPerfHUD来进行。显卡所用的内存:显卡所用的内存可以分为两大类:本地的和非本地的(相对于显卡来说)。在显卡处理的某些数据类型的时候,需要本地内存,例如 帧缓冲。 非本地内存,有时也成为AGP卡槽内存(AGP aperture),可以被显卡访问的某些数据类型所在的系统内存,例如顶点缓冲。本地内存要比非本地内存快。本地内存通常是 阅读全文
posted @ 2011-01-25 10:51 oayx 阅读(526) 评论(0) 推荐(0) 编辑
摘要:此教程版权归我所有,仅供个人学习使用,请勿转载,勿用于任何商业用途。商业应用请同我联系。由于本人水平有限,难免出错,不清楚的地方请大家以原著为准。也欢迎大家和我多多交流。其中部分图片来自网络,尽量保证了和原书中插图一致。特别感谢mtt重现了文章中的流程图^_^翻译:claymanBlog:http://blog.csdn.net/soilworkclayman_joe@yahoo.com.cn 3.3.3 Vertex Constants Instancing 在vertex constants instancing方法中,我们利用顶点常量来储存实体属性。就渲染性能而言,顶点常量批次是非常快的 阅读全文
posted @ 2011-01-25 10:47 oayx 阅读(345) 评论(0) 推荐(0) 编辑
摘要:翻译:claymanclayman_joe@yahoo.com.cn仅供个人学习使用,勿用于任何商业用途,转载请注明作者^_^注:呵呵,发现我对翻译东西上瘾了。这次翻译了《GPU Gem2》中第三章的内容,大家共同学习^_^在交互式程序中,丰富用户体验的重要方法之一就是呈现一个充满大量各种有趣物体的世界。从数不清的草丛、树木到普通杂物:所有这些都能提高画面最终的效果,让用户保持“幻想状态(suspension of disbelief)”。只有用户相信并且融入了这个世界,才会对这个世界充满感情——这就是游戏开发的圣杯(Holy Grail)。 从渲染的观点来看,实现这种效果,无非就是渲染大量小 阅读全文
posted @ 2011-01-25 10:46 oayx 阅读(545) 评论(0) 推荐(0) 编辑
摘要:DirectX是一种应用程序接口(API)是计算机计算图形的一种规则,相当于一个通用编译器。 DirectX并不是一个单纯的图形API,它是由微软公司开发的用途广泛的API,它包含有Direct Graphics(Direct 3D+Direct Draw)、Direct Input、Direct Play、Direct Sound、Direct Show、Direct Setup、Direct Media Objects等多个组件,它提供了一整套的多媒体接口方案。只是其在3D图形方面的优秀表现,让它的其它方面显得暗淡无光。DirectX 1.0 第一代的DirectX很不成功,推出时众多的 阅读全文
posted @ 2011-01-21 14:31 oayx 阅读(1609) 评论(0) 推荐(0) 编辑
摘要:DDS 文件 DirectDraw ® Surface (DDS) 文件格式用于存储具有和不具有 mipmap 级别的纹理和立方体环境贴图。此格式可以存储未压缩的像素格式和压缩的像素格式,并且是存储 DXTn 压缩数据的首选文件格式。此文件格式的开发商是 Microsoft®。 可以将 DDS 文件用作纹理贴图。 使用 Direct3D 9 可以渲染为 DDS 格式。(利用 DX8 或 DX9,也可以使用金属凹凸明暗器渲染 DDS 文件。)如果系统不支持 DX9,则可以将 DDS 文件用作纹理,但是不能渲染它们。 界面 “曲面/体积格式”组 DDS 支持各种输出格式,具体情况取决于分配给红、绿 阅读全文
posted @ 2011-01-17 11:18 oayx 阅读(2128) 评论(0) 推荐(0) 编辑
摘要:Microsoft发布的DirectX 10代表了自从可编程Shader出现以来在3D API方面的最巨大的进步。通过一番脱胎换骨般的重建,DirectX 10展现出一系列非常醒目的新特性,包括高度优化的运行时,强大的Geometry Shader,纹理数组等等,这些特性将引领PC实时三维图形进入一个全新的世界。 DirectX 发展简史  在过去的十年中,DirectX已经稳步成为了Microsoft Windows平台上进行游戏开发的首选API。每一代的DirectX都带来对新的图形硬件特性的支持,因此每次都能帮助游戏开发者们迈出惊人的一步。  微软DirectX API(Applicat 阅读全文
posted @ 2010-12-12 11:02 oayx 阅读(619) 评论(0) 推荐(0) 编辑
摘要:游戏编程可不仅仅是图形程序的开发工作,实际上包含了许多方面,本文所要讲述的就是关于如何使用 DirectInput 来对键盘编程的问题。  在 DOS 时代,我们一般都习惯于接管键盘中断来加入自己的处理代码。但这一套生存方式在万恶的 Windows 社会下是行不通的,我们只能靠领 API 或者 DirectInput 的救济金过活。  在 Windows 的 API 中,有一个 GetAsyncK... 阅读全文
posted @ 2010-11-30 16:16 oayx 阅读(619) 评论(0) 推荐(0) 编辑
摘要:1 只在必须的时候Clear。 IDirect3DDevice9::Clear函数通常需要花费较多的时间,因此要尽量少调用,而且只清空的确需要清空的缓存。2 尽量减少状态切换。并且将需要进行的状态切换组合在一起设置。 状态包括RenderState,SamplerState,TextureStageState等3 纹理尺寸尽可能小4 从前至后渲染场景中的对象 从前至后渲染可以尽可能早地精选出不需要... 阅读全文
posted @ 2010-11-29 12:58 oayx 阅读(585) 评论(0) 推荐(0) 编辑
摘要:Direct3D提供了对生成的纹理坐标进行坐标变换的功能,与顶点坐标变换相类似,可以指定一个4x4的纹理坐标变换矩阵,把它与生成的纹理坐标相乘,然后将变换之后的纹理坐标输出至Direct3D渲染流水线。使用纹理坐标变换可以对纹理坐标进行诸如平移、旋转和缩放等三维变换。纹理坐标变换对于生成一些特殊效果是非常有用的,它不用直接修改顶点的纹理坐标。例如可以通过一个简单的平移矩阵对纹理坐标进行变换,从而使... 阅读全文
posted @ 2010-11-05 15:53 oayx 阅读(4383) 评论(0) 推荐(0) 编辑
摘要:立体纹理(volume texture)是一组应用到二维图元(如一个三角形或一条直线)的三维纹理元素的集合,可以使用立体纹理实现一些特殊效果,如迷雾、爆炸等。当对一个图元使用立体纹理时,它的每个顶点都需要一组三元纹理坐标。当绘制该图元时,它中间的每个像素都将用立体纹理中的一些纹理元素的颜色值进行填充,这与二维纹理映射的情况相似。立体纹理以薄片为单元组织起来,可以把它想象成将(宽 x 高)的二维表面... 阅读全文
posted @ 2010-11-05 15:50 oayx 阅读(5122) 评论(1) 推荐(1) 编辑
摘要:要渲染看起来真实的场景,最好是使用高分辨率而且颜色丰富的纹理,但这样的纹理可能会耗费大量的内存,例如,一张每像素16位颜色的256 x 256纹理将使用128KB的内存。如果在该纹理中使用多级渐进纹理,还需要额外的43KB内存。一个使用50张这种纹理的场景将需要8MB的内存,如果需要更强的真实性,可以使用每像素32位颜色的512 x 512纹理,但那就需要8倍的内存。为了减少纹理消耗的系统带宽和内... 阅读全文
posted @ 2010-11-05 15:47 oayx 阅读(3077) 评论(0) 推荐(0) 编辑
摘要:这两天在写 DDS 格式的解码程序。DDS 是微软为 DirectX 开发的一种图片格式,MSDN 上可以查到其文件格式说明:DDS File Reference 。其中的 DXT 图片压缩格式,现在已经为绝大多数 3D 显卡硬件所支持。(它使用了由 S3 公司所发明的一种有损图象压缩算法。btw, 在我的那本书中,P232 有所提及)。DXT 格式 也叫作 S3TC ,现在可以被流行看图软件直接... 阅读全文
posted @ 2010-11-05 15:47 oayx 阅读(1805) 评论(0) 推荐(0) 编辑
摘要:关于凹凸映射的原理请参阅凹凸映射(Bump Map)实现原理。凹凸纹理映射是一种纹理混合方法,它可以创建三维物体复杂的纹理外观表面。普通的纹理映射只能模拟比较平滑的三维物体表面,难以显示表面高低起伏、凹凸不平的效果。凹凸纹理映射能够通过一张表示物体表面凹凸程度的高度图(称为凹凸纹理),对另一张表示物体表面环境映射的纹理图的纹理坐标进行相应的干扰,经过干扰的纹理坐标将应用于环境映射,从而产生凹凸不平... 阅读全文
posted @ 2010-11-05 15:15 oayx 阅读(5261) 评论(0) 推荐(0) 编辑
摘要:http://xmchang.bokee.com/反射只是翻转摄影机,将场景渲染到Texture上,或使用STENCIL蒙板直接绘制。具体计算查看了D3D的 Sample,如下:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--D3DXMATRIXA... 阅读全文
posted @ 2010-11-05 14:07 oayx 阅读(861) 评论(0) 推荐(0) 编辑
摘要:【1】什么事凹凸映射凸凹映射这个过程涉及到提取纹理并使用该纹理的内部信息去照射表面,让表面显示比自身实际拥有的更多细节。这个过程是在照射几何图形时,通过使用保存在纹理图像中的法线值而不是表面的法线值完成的。通过改变图像中的法线值或像素,可以得到物体的外观细节。例如,可以使用凸凹映射创建水泥裂缝或是爬虫表皮的鳞。纹理映射和凸凹映射之间的差别在于纹理用于阴影照射表面,而凸凹贴图用于灯光照射表面。例如,... 阅读全文
posted @ 2010-11-05 10:06 oayx 阅读(791) 评论(0) 推荐(0) 编辑
摘要:维基百科,自由的百科全书跳转到: 导航, 搜索 Normal mapping used to re-detail simplified meshes.法线贴图(Normal mapping)在三维计算机图形学中,是凸凹贴图技术的一种应用,法线贴图有时也称为“Dot3 凸凹纹理贴图”。 凸凹与纹理贴图通常是在现有的模型法线添加扰动不同,法线贴图要完全更新法线。与凸凹贴图类似... 阅读全文
posted @ 2010-11-05 09:55 oayx 阅读(2078) 评论(0) 推荐(0) 编辑