随笔分类 - DirectX11
DirectX11 Programming 自我学习
摘要:这篇 笔记 是在 上一篇 《键盘控制 显示静态文本【已完成】【附带源码】(只能处理 大写英文字母)》 代码上修改过来的, 其中添加了一些还处于 设计阶段的代码,但不影响本随笔的 主要方向, 设计基于 Dx11 的简单UI, 设计参考自 《DirectX9 User Interface Design and Implementation》。先来张类关系图吧( 不是正规的UML 表示图):新添加 的 UI 子框架 与 原先系统的结合除主要在 SystemClass 的 OnRender() 渲染函数中:void SystemClass::Render(){ if( d3dContext_ =...
阅读全文
摘要:ID3DBlob 未声明的标记符 undefined signalID3DBlob 定义在D3DCommon.h 中, 但是 使用 vs2010 & DirectX11 联合开发时, D3DCommon.h 会有两份, 如我的环境是:C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\D3DCommon.hD:\Program Files\Microsoft DirectX SDK (June 2010)\Include\D3Dcommon.h这样, 即使 在项目中有 包含 d3dx11.h (包含 D3DCommon.h) 也不
阅读全文
摘要:注意:(只能处理 大写英文字母)在 《多条文本输出, 每条文本单次 Draw() 最后 Present() 【已完成】【附带源码】》 中完成了显示 简单文本的方式( 但是只限于显示 大写的英文字母)这篇随笔还是改自 那篇文章, 添加了 键盘控制(按 向下方向键 显示 静态文本 ), 这是代码文件结构:下面的是 代码
阅读全文
摘要:注意:(只能处理 大写 英文字母)如下图所示 为本程序的类间组织结构:类EvlWin 是 对 windows 窗体创建显示的封装, 使用简易如: // 创建窗体 EvlWin *eWin = new EvlWin( hInstance, prevInstance, cmdLine, cmdShow, NULL, NULL); // 显示窗体 eWin->show();类 Dx11DemoBase 是对 DirectX11 的基本 device / context 创建的封装基类; 但具体效果表现需要由 子类实现: // DirectX11 处理对象 Dx11...
阅读全文
摘要:Advanced Topics视屏游戏中 文本有很多用途, 一些一再本章中介绍过, 另外一些是我们一定在某些商业游戏中看到过。 文本的其他应用已经超出了本书的内容, 在 www.UltimateGameProgramming.com可以找到如何使用 高级文本效果的 教程, 如果你感兴趣的话, 这些教程将极大地扩展您的初级知识水平, 教程包括:》实现文本框(以及其他的交互元素)》在线游戏 调试控制端》游戏屏幕?》HUD 显示In-Game Text Boxes文本输入框 看起来好像是一个简单的概念, 但实现起来还是需要一定的脑力; 文本输入框不仅是 用来输入文本的图形元素, 还必须在其上面显示文
阅读全文
摘要:Text 文本好像并不如我们在游戏开发中 想的那么重要, 就像一项不成熟的特性, 并不能该游戏开发带来什么影响。 但事实上果真如此吗?当你完成了一个游戏后, 就会发现文本并不仅仅用在屏幕上显示标题 和 滚动的字幕。 文本在整个游戏场景内是非常有用的: 给玩家提示, 指派游戏目标, 或者显示给玩家背包里里还有多少金币等等。 文本是很重要的UI交互工具, 标示弹药数量, 玩家生命值、防护盾抵抗值、能量剩余等等。在本章我们将涉及如下几个话题: 》为什么在 游戏开发中 文本占据着非常重要的地位 》字体系统是如何工作的 》如何自己亲手创建一个简单的字体系统 》如何在屏幕上那个绘制文本Text i...
阅读全文
摘要:2D 游戏离开了 精灵的话, 就是2D游戏了; 精灵 是在游戏中用2D图形表示 角色或者 物体.你在游戏中遇到的每一棵树, 宝箱, 或者 地域怪物 都是精灵. 精灵, 是在 2D 游戏编程中 被广泛使用 及 易懂的 资源之一. 精灵通常是是 贴图了的矩形和正方形, 大量的精灵 共同创造了虚拟世界.Z-Ordering2D 游戏中, 有些对象在后台运行, 有些则在前端运作, 更有些在 前端 和 后端之间运行, 这些( 能够提供更对象在不同位置运行的 "平台") 叫做层, 可以理解为 一张透明的纸张. 例如, 背景层只能进行渲染 背景精灵, 而动作层 可能包含 全部的角色, 武
阅读全文
摘要:在上个小节中, 我们已经概括了足够的内容, 现在让我们来实现一个纹理映射的实例;同时本章的前半部分涉及过但未讨论完的都将会有所详细讨论.呃. 这个demo 可以在原书上的 Chapter3/TextureMapping 目录找到.我们从修改 TriangleDemo 代码已开始我们的demo设计( 因为大部分代码和 TriangleDemo一样, 这里仅仅是添加了一大块的 sampler相关代码). 在 TextureDemo 类的工作中, 我们将天添加两个新的事物: ID3D11ShaderResourceView colorMap_; // shader resource view 着色器
阅读全文
摘要:Texture Mapping正如我们早先提到的, texture 纹理, 是映射在 形状和固体表面的数据; 一般来说, 这些数据是 颜色信息, 通过调用成为 texture mapping 纹理映射的过程, 可以将包含颜色信息的 image 图片 map映射到到 (物体)表面. 除了颜色信息外, texture 数据还可以是 其他类型的数据, 如 用来 法向量映射normal mapping 的 法向量地图( 表面每点的法向量), 用来控制透明度的 alpha数据...Texture 纹理和其他类型的 游戏数据一样, 一半在 runtime 运行时进行加载; 纹理处理 是 Direct3D的
阅读全文
摘要:Drawing a 2D TriangleDirectX11 : 进行渲染, 使我们这一路 斩荆棘破虫害的 核心目标.Me : 那如何进行 渲染?D : 我怎么知道!!M : 呃...⊙▂⊙...D : What do you ask?M : Howto rander ?D : 答案已在你心中.M : 哈?D : "howto" 那是 "如何进行操作", 那是 到处指手画脚的 context 专项工作, 寡人才不理会呢!...Context: 那还不简单, 也就那么几个步骤.M : 愿闻其详.C : 第一, 先要将黑板擦干净;M : 这是当然的啦, 我来
阅读全文
摘要:除此篇随笔外, 还有另外一篇转载:http://www.cnblogs.com/Wilson-Loo/articles/2797613.html一些概念, 特别是 IT 领域的, 尤其需要弄明白其本质、工作特点、机制后, 才能更好地去使用; 才不会在编码过程中 思考于为什么要这样调用呢, 为什么一定是 device_>createBuffer() 而不能是 context_->createBuffer() 呢?!此番会将经历浪费在无谓的思考上, 不能专注于当下的整个项目工作; 但有思考还好啦, 说明还是有改善、进修的契机; 可怕的是 仅仅是照着Tutorials教程 一个个单词的抄
阅读全文
摘要:Input Layout我们通过 发送 一块数据 到显卡 来进行处理 几何体的。为了告知 Direct3D 我们定义了什么属性, 如 顺序, 大小, 等, 在此使用一种 叫做 Input Layout 的 结构, 以让API 知道 如何 具体处理 我们将要绘制的几何体。(跟我在前面说过的那样)在DirectX11中, 使用 描述 *_Desc 来进行组织 这些 “告知API 去做什么, 怎么做, 对哪些数据进行处理的” 结构体 chunk data:typedef struct D3D11_INPUT_ELEMENT_DESC{ LPCSTR SemanticName; //描述 本 结...
阅读全文
摘要:现在我已经到哪了? 读书时,尤其是技术知识书籍, 我一般会担忧自己是否陷得太深, 细节关注得太多, 而忘了整体的过程; 一直以来对Direct3D 很畏惧, 因为太多函数和细节;现在我必须暂缓下, 看看自己已经做了什么, 还差什么, 下一步要如何规划。如下图:已经仅仅完成了定义 "能够自动进行初始化工作的" 基类, 但是没能够 使用, 需要用子类实现 update(float) 和 render() :-- BlankDemo.h#ifndef _BLANK_DEMO_H_#define _BLANK_DEMO_H_#include "Dx11DemoBase.h
阅读全文
摘要:上文说的 要用现实现象来模拟解释 初始化 Direct3D11的过程, 呃... 暂时想不出了, 呵呵.一般初始化 Direct3D11的过程, 分为四步:bool Dx11DemoBase::Initialize( HINSTANCE hInstance, HWND hwnd){ //store membersView Code// steop 1. Description of driver types and feature level View Code D3D_DRIVER_TYPE driverTypes[] = { D3D_DRIVER_TYPE_HA...
阅读全文

浙公网安备 33010602011771号