Directx 3D
文章平均质量分 79
sck5711
这个作者很懒,什么都没留下…
展开
-
D3DXMatrixShadow创建一个平面的阴影矩阵
定义:D3DXMATRIX *WINAPI D3DXMatrixShadow( D3DXMATRIX *pOut, CONST D3DXVECTOR4 *pLight, CONST D3DXPLANE *pPlane);参数:pOut [in, out] 指向D3DXMATRIX 结构的操作结果矩阵。 pLight原创 2009-03-30 16:15:00 · 1070 阅读 · 0 评论 -
纹理
Direct3D支持广泛的纹理特性设置,使程序员可以轻松的访问提供高级纹理技术。下面我们来讨论Direct3D中的纹理的一些内容: 1. 纹理的基本概念 2. 纹理句柄 3. 纹理接口 4. 纹理过滤 5. 纹理Wrapping 6. 纹理融合 7. 纹理压缩 8. 自动纹理原创 2009-04-08 13:50:00 · 2012 阅读 · 0 评论 -
深入理解DirectX D3D9
深入理解D3D9对图形程序员来说意义重大,我把以前的一些学习笔记都汇总起来,希望对朋友们有些所帮助,因为是零散笔记,思路很杂,还请包涵。其实只要你能完美理解D3DLOCK、D3DUSAGE、D3DPOOL、LOST DEVICE、QUERY、Present()、BeginScene()、EndScene()等概念,就算是理解D3D9了,不知道大家有没有同感。有如下几个问题,如果你能原创 2009-04-09 09:14:00 · 3728 阅读 · 0 评论 -
在DirectX9.0中使用Mesh
在D3DX中,有很多函数都使用了ID3DXMesh接口,如D3DXCreate*之类。ID3DXMesh接口的主要功能继承自ID3DXBaseMesh父类接口,还有其他的Mesh接口也是从ID3DXBaseMesh接口继承的,如ID3DXPMesh接口,这个接口用于Progressive Mesh,把它翻译成“渐进Mesh”,不知是否合适。本节要达到的目标:l 学习ID3原创 2009-03-30 16:28:00 · 1024 阅读 · 0 评论 -
Direct3D中实现图元的鼠标拾取
其实网上到处都可以找到本主题的相关资料,但由于本人看了Microsoft SDK之后再加上自己用笔算了一下,发现网上写的都有点错误,我想可能是由于多个人Copy的原因吧!呵呵,有时本人也要犯这个错误。所以,今天我想在此对错误的地方进行一下修改。[下面加下划线的地方为修改处]3D交互图形应用程序中,常常要用鼠标去选择图形,其实现的机制基于鼠标拾取算法。本文主要讲述如何在D3D中实现图元的鼠标拾取原创 2009-03-30 16:24:00 · 1291 阅读 · 0 评论 -
模板缓冲[镜子]
在自然界中的很多表面象镜子一样允许我们通过它的反射来看物体,我们来看看怎样用3D应用程序来模拟镜子,为了简单起见我们只模拟平面镜。举个例子,一辆擦亮的小汽车能够反射;然而车的车身是光滑的圆的,不是一个平面。我们渲染的是那些光滑的大理石地板、挂在墙上的镜子的反射,换句话说就是在一个平面的镜子。实现镜子的程序需要我们解决两个问题。第一,我们必须学习沿着一个面怎样反射一个物体以便能够正确地绘制反射结原创 2009-03-30 16:14:00 · 1244 阅读 · 0 评论 -
Render to Texture(渲染到纹理)
·内容 渲染到纹理是D3D中的一项高级技术。一方面,它很简单,另一方面它很强大并能产生很多特殊效果。 比如说发光效果,环境映射,阴影映射,都可以通过它来实现。渲染到纹理只是渲染到表面的一个延伸。我们只需再加些东西就可以了。首先,我们要创造一个纹理,并且做好一些防范措施。第二步我们就可以把适当的场景渲染到我们创建的纹理上了。然后,我们把这个纹理用在最后的渲染上。·main.cpp 首先我们得声明原创 2009-03-30 16:13:00 · 1223 阅读 · 0 评论 -
对D3D中AGP显存、内存、显存三种内存的解释
三种内存AGP内存(非本地显存),显存(本地内存),系统内存,其中我们都知道系统内存就是咱那内存条,那这AGP内存是个啥玩意啊?其实是因为在以前显卡内存都很小,那时还是在显存是16M,32M为主流的时候,如果你运行一个需要很多纹理的3D程序,那么显存一会就不够用了,那该咋办呢?只好问系统内存借点用用了!这就是AGP内存的由来,在我们电脑BIOS中有个设置AGP Aperture的选项,这里就是设置原创 2009-03-30 16:26:00 · 1909 阅读 · 0 评论 -
HDR技术以及如何实现HDR效果
什么是HDR? 谈论游戏画面时常说的HDR到底是什么呢?HDR,本身是High-Dynamic Range(高动态范围)的缩写,这本来是一个CG概念。 计算机在表示图象的时候是用8bit(256)级或16bit(65536)级来区分图象的亮度的,但这区区几百或几万无法再现真实自然的光照情况。HDR文件是一种特殊图形文件格式,它的每一个像素除了普通的RGB信息,还有该点的实际亮度信息原创 2009-03-30 16:20:00 · 4479 阅读 · 2 评论 -
Parallax Mapping效果
前几天在shadertech网站上看到一个获金牌的效果,叫relief mapping,其中包含relief texture mapping和steep parallax mapping,效果很好,于是开始琢磨着如何来实现其效果,由于steep parallax mapping需要ps3.0的支持,relief texture mapping需要二叉树的搜索,都对资源需要比较高,所以暂时实现原创 2009-03-30 16:18:00 · 697 阅读 · 0 评论 -
BumpMap、NormalMap的区别
BumpMap一种是Emboss Bump Map(浮雕凹凸贴图),它使用的是Height map,原理是在原始图像的基础上,对高度场图像进行复制、轻微平移、差操作。但它存在很多严重的局限性,它只能用于漫反射表面,对于镜面高光来说是不可能的。当光源直接照射在物体表面时,如果没有偏移,那么物体表面就不会出现任何凹凸现象。 另外一种是DOT3 Bump Map(点乘凹凸贴图),它使用 Bump原创 2009-03-30 16:17:00 · 1082 阅读 · 0 评论 -
DrawPrimitiveUP 与 DrawPrimitive
在D3D中,一共有三种基本图元,分别是点、线和三角形。点是最简单的图元,由它可以构成一种叫点列(point list)的图元类型。线是由两个不重合的点构成的,一些不相连的线组成的集合就叫线列(line list),而一些首尾相连但不形成环路的线的集合就叫线带(line strips)。同理,单独的三角形集合就叫三角形列(triangle list),类似于线带的三角形集合就叫三角形带(triang原创 2009-03-30 16:25:00 · 5068 阅读 · 0 评论 -
Direct3D 10
微软的vista 带了个大家伙 这个可能会导致硬件升级,开发人员为之疯狂的的大家伙。Direct3D 10 要来了 这不仅仅是两位数的飞跃,D3D10图形流水线给出了绘制架构的根本性变化,为了增强了下一代游戏和3D多媒体程序的绘制能力,它的软件和硬件都由底层重新构建。蜕变它基于Windows Vista显示驱动模型(WDDM)构建,增强了功能和性能,保证了GPU显存的完全虚原创 2009-03-30 16:22:00 · 3056 阅读 · 0 评论 -
几何体表面切线计算方法
struct vec3{ float x, y, z;};struct texcoord{ float u,v;};//计算切线void calc_tangent(const vec3& p0, const vec3& p1, const vec3& p2, const texcoord& c0, const texcoord& c1, const texcoord& c2原创 2009-03-30 16:19:00 · 842 阅读 · 0 评论 -
深度缓冲
1. 什么是深度缓冲 2. 使用深度缓冲 使用深度缓冲 Direct3D立即模式教程中提供了有关使用深度缓冲的更多的内容。 一个深度缓冲,统称被称为z-buffer或w-buffer,是一个DirectDraw表面,它保存着Direct3D使用的深度信息。当Direct3D原创 2009-04-08 13:54:00 · 2578 阅读 · 0 评论