- 博客(18)
- 收藏
- 关注
原创 HLSL(DX9)编程
HLSL概述:编写DX着色器代码的高级编程语言,DX9可以使用HLSL编写顶点/像素着色器.输入和输出结构: 这些结构分别定义了该着色器的输入和输出的顶点数据(即输入输出顶点的结构)struct VS_INPUT{ //:冒号表示一种语义,用来指定变量的用途vector position : POSITION; //位置分量 POSITION 表示向量 position 用于描...
2020-02-16 01:27:35
1564
原创 D3DX9学习笔记之地形绘制基础
学习目标:了解如何生成地形的高度信息,以实现自然地形中由山脉到山谷的平滑过渡理解如何生成地形的顶点和面片数据了解如何对地形映射纹理以及如何进行光照处理了解如何将摄像机安置在地形中,以模拟观察者在该地形中的行走地形网格其实就是一由XZ轴平面中以三角形珊格组成的网格面,但是方格面中的每个顶点都被赋予了一个高度值,这样该方格就可通过方格对应高度的平滑过渡来模拟自然地形中山脉到山谷的变换,当...
2019-11-11 22:53:13
328
原创 D3DX9学习笔记之设计一个灵活的摄像机类
学习目标:了解如何实现一个可用于飞行模拟器和第一人称视角游戏的灵活摄像机类我们已经学会了如何用 D3DXMatrixLookAtLH 函数计算出观察矩阵(即取景变换矩阵),当在某一固定地点固定摄像机方向时,该函数十分有用,但其用户接口对于一个能够根据用户输入做出响应的移动摄像机来说,就显得力不从心,这就促使我们开发自己的解决方案,接下来介绍如何实现一个 Camera 类,以使我们能够设计出一个...
2019-11-10 22:39:58
355
原创 D3DX9学习笔记之网格(二)
前言:在这里,我们将继续研究 D3DX 库提供的与网格相关的接口,结构和函数,以 网格(一) 为基础,我们现在将研究一些更有趣的技术,例如从 X文件 中加载一个复杂的 3D 模型并将该模型绘制出来,或者利用渐进网格接口来控制网格的细节层次。学习目标:了解如何加载 X 文件到 ID3DXMesh 中理解使用渐进网格的优点以及如何使用渐进网格接口 ID3DXPMesh了解使用外接体的作用以及...
2019-11-02 21:49:37
452
原创 D3D9学习笔记之基础几何体的深入应用(一)
网格(一)在开始之前,先附上基础网格对象的基础应用:D3DX几何体的基础应用在上面的链接中对 ID3DXMesh 接口有了一些了解,现在开始进一步研究该接口,内容很大程度上是与 ID3DXMesh 接口相关的数据和方法的概览。注意,ID3DXMesh 接口继承了其父接口 ID3DXBaseMesh 的大部分功能,这一点很重要,因为其它类型的网格接口,如 ID3DXPMesh(渐进网格)也继...
2019-10-26 23:28:07
339
原创 D3D9学习笔记之字体
学习目标:了解如何用 ID3DXFont 接口绘制文本了解如何使用 CD3DFont 类绘制文本了解如何计算应用程序每秒所绘制的帧数了解如何用 D3DXCreateText 函数创建并绘制 3D 文本ID3DXFont 接口D3DX 库提供接口 ID3DXFont ,该接口用于在 Direct3D 应用程序中绘制文本。该接口内部使用 GDI(图像设备接口)来绘制文本,因此该接口在性...
2019-10-23 23:46:21
766
原创 D3D9学习笔记之渲染状态关键字
device->SetRenderState() D3D9的视频卡设备的渲染状态设置方法下面是一部分可设置的渲染状态:D3DRS_FILLMODE 绘制模式设置,可设置为点,线与面模式3种分别是:(D3DFILL_POINT , D3DFILL_WIREFRAME, D3DFILL_SOLID)D3DRS_CULLMODE 消隐模式,按照三角形单元的顶点绕序进行背面消隐,可设置为(禁...
2019-10-21 22:28:03
534
原创 D3D9学习笔记之模板
学习目标:理解模板缓存的工作原理,如何创建模板缓存以及如何对模板缓存进行控制了解如何实现镜面效果,以及如何使用模板缓存阻止物体映像在非镜面区域中的绘制掌握如何绘制阴影,以及如何借助模板缓存阻止“二次融合”什么是模板?:模板缓存是一个用于获得某种特效的离屏缓存,模板缓存的分辨率与后台缓存和深度缓存的分辨率完全相同,所以模板缓存中的像素与后台缓存和深度缓存中的像素是一一对应的,它允许我们...
2019-09-24 22:26:45
378
原创 D3DX几何体
D3DX库提供了一些用于生成简单3D几何体的网格数据的方法。D3DX 库提供了6个网格创建函数。D3DXCreateBoxD3DXCreateSphereD3DXCreateTeapotD3DXCreatePolygonD3DXCreateTorus...
2019-09-22 22:40:57
209
原创 D3D9学习笔记之融合技术
这里叙述融合技术的作用及原理,待写。。。学习目标:理解融合原理以及如何运用融合技术了解 Direct3D 支持的各种融合模式理解如何用 Alpha 分量控制图元的透明度...
2019-09-22 22:40:11
567
原创 D3D9学习笔记之纹理映射
学习目标:了解如何将纹理的某一部分映射到三角形单元中创建纹理纹理应如何过滤使之创建一副较光滑的图像什么是纹理映射?:借助纹理映射技术,可将图像数据映射到三角形单元中,这种功能可以显著地增加所绘制场景的细节和真实感。例如,创建一个立方体,然后为其每一面映射一个木材纹理,从而将该立方体变成一个木头箱子。纹理接口: 在 Direct3D 中,纹理用接口 IDirect3DTexture...
2019-09-19 20:47:17
908
1
原创 D3D9学习笔记之光照
学习目标:了解 Direct3D 所支持的几种光源以及这些光源所发出光线的类型理解光照的定义方式,以便了解光线与其所照射表面的交互方式理解如何用数学语音描述三角形单元的朝向,以判定光线现对于该单元的射入角为了场景的真实感,可为场景增加光照。光照有助于描述实体形状和立体感。使用光照时,无需自行指定顶点的颜色值; Direct3D 会将顶点送入光照计算引擎,依据光源类型,材质以及物体表面...
2019-09-15 23:12:35
537
原创 D3D9学习笔记之颜色
学习目标:掌握 Direct3D 中颜色的描述方式理解三角形单元的着色模式颜色的表示:在 Direct3D 中,颜色用 RGB 三元组来表示。将颜色分解为红色(Red),绿色(Green),蓝色(Blue),这三个分量的加性混合决定了最终的颜色。我们可用该三个分量的不同组合来表示上百万种颜色。RGB数据可用两种不同的结构来保存,第一种是 D3DCOLOR,它实际上与 DWORD(un...
2019-09-13 21:49:07
759
原创 D3D9学习笔记之绘制流水线
什么是绘制流水线?在给定了3D场景和指定了观察方向的虚拟摄像机的几何描述时,创建一副2D图像。学习目标:了解在 Direct3D 中如何表示 3D 物体学习如何建立虚拟摄像机的模型理解绘制流水线—由3D场景的几何描述到生成2D图像的过程模型表示:物体或模型的集合叫做场景。任何物体都可以用三角网格逼近表示,三角网格是构建物体模型的基本单元。我们通常不加区分的使用 多边形,图元,网...
2019-09-09 00:16:56
887
原创 D3D9学习笔记之初始化Derect3D
学习目标:Direct3D 与图形硬件的交互方式COM在 Driect3D 中扮演的角色基本的图形学概念,如2D图像的存储方式,页面置换和深度缓存初始化 Derect3D一种通用的初始化程序结构Direct3D 概述Direct3D 是一套 底层图像接口(API) ,借助该API,我们能够利用显卡来绘制 3D 场景。可以把 Direct3D 视作应用程序(最终游戏)与显卡交互的中...
2019-09-05 20:39:09
1293
原创 D3D9学习笔记之顶点缓存与索引缓存
D3D9学习笔记 顶点缓存与索引缓存顶点缓存与索引缓存可以被放置在显存中,绘制时使用显存中的数据比使用系统内存中的数据要快的多。顶点缓存与索引缓存在D3D9中的表示:顶点缓存 IDirect3DVetrexBuffer9索引缓存 IDirect3DIndexBuffer9创建顶点缓存和索引缓存:可以用如下2个方法创建HRESULT IDirect3DDevice9::CreateVe...
2019-08-30 21:40:56
1155
1
原创 D3D9学习笔记之精灵变换篇
内容:如何旋转精灵如何缩放精灵如何平移精灵如何对2D图形做矩阵变换如何以动画的方式绘制精灵D3DXMATRIX * D3DXMatrixTransformation2D( D3DXMATRIX * pOut, //通过引用传递进来的矩阵数组 CONST D3DXVECTOR2 * pScalingCenter, //代表水平和垂直缩放的向量 FLOAT pScal...
2019-05-28 23:12:21
679
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人