#### 1. DirectX的定义和作用
DirectX(Direct eXtension,简称DX)是由微软公司创建的多媒体编程接口,是一种应用程序接口(API)。DirectX可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3D图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。
#### 2. XNA的定义和作用
1. XNA中的X表示能够在WindowsXbox和合作伙伴之间达到跨平台的强大的软件工具。N表示“下一代(Next-generation)”,A表示“架构(Architecture)”。XNA是基于DirectX的游戏开发环境,是微软对于 Managed DirectX 的修正及扩充版本。XNA Game Studio Express 是专业跨平台整合型游戏开发套件「XNA Studio」的简化版,以「Visual C# Express 2005」为基础,并针对业余创作者加以改良,提供简易的开发环境与详细的教学文件。
2. 使用XNA开发游戏的特点:①加快游戏开发的速度。以前使用DirectX来开发Windows平台游戏,游戏开发公司大概花费80%的时间在程序开发上,而在游戏的创意上仅占20%。而使用XNA.NETFramework进行游戏开发,大大减少了开发者的工作量,不仅降低了开发的成本,而且在游戏开发上可以更加关注游戏的创意。
②开发的游戏可以在Windows与Xbox 360之间跨平台运行,同时它更加易用,有更高的扩展性。XNA Framework把所有用作游戏编程的底层技术封装起来,由此,游戏开发员就可以把精力大部分专注于游戏内容和构思开发,而不用关心游戏移植至不同平台上的问题,只要游戏开发于XNA的平台上,支持XNA的所有硬件都能运行。
③支持2D与3D游戏开发。XNA Framework同时支持2D和3D的游戏开发,也支持XBox360的控制器和震动效果。
#### 3. 3D数学基础
游戏中最重要的3D数学知识基本上属于向量和矩阵了。在这里列举出向量和矩阵的基本用法:
向量运算(1)向量加法:用于计算某一物体的特定偏移时,通常将两个向量加在一起;(2)向量减法:用于计算两个物体之间的距离和方向;(3)向量的乘法:用于缩放某一向量,将一个向量乘以2能让给定的向量长度加倍,乘以-1可以使向量变为反方向,用于实现喷出等效果;(4)向量的点积:计算两个向量的夹角,用于确定游戏物体是否相向,物体是否在另一物体的一边,防止穿墙,也用于判断点在平面的位置以及背面剔除效果;(5)向量的叉积:用于计算平面的法向量。(6)法向量:长度为1的向量。用于向量的归一化,创建单位圆和单位球。
矩阵运算:(1)单位矩阵:创建矩阵;(2)矩阵乘法和矩阵与向量的乘法:获得新的几何模型;(3)平移:将矩阵最后一行作为向量原点,改变最后一行的值实现平移;缩放:将前3行作为向量的轴,改变大小实现缩放。(4)旋转:给定一个旋转轴和旋转角度实现模型旋转。(5)逆矩阵:实现轴对称效果;

Direct和XNA基础相关推荐

  1. XNA Game的基础

    Windows Game XNA基础: 添加Camera: 点击鼠标右键,新建项,选择GameComponent,重命名为Camera.cs. 在Camera类中添加两个类级变量(自动实现属性)来表示 ...

  2. 分享Silverlight/WPF/Windows Phone一周学习导读(1月17日-1月23日)

    上周微软Silverlight团队发布"微软发布Silverlight Native Extensions 1.0 - 扩展OOB应用功能",对于Silverlight开发人员而言 ...

  3. 【Python笔记】pygame 游戏框架

    pygame 游戏框架 初识 pygame 安装 pygame pygame 常用模块 pygame 的基本使用(跳跃的小球游戏) 初识 pygame pygame 是跨平台 Python 模块,专为 ...

  4. 数字音频采样率与码率(转)

    转自:http://blog.csdn.net/wghhdzwzqbx02/article/details/7392059 http://blog.csdn.net/ALENTAM/article/d ...

  5. RabbitMQ之消息模式简单易懂,超详细分享

    前言 上一篇对RabbitMQ的流程和相关的理论进行初步的概述,如果小伙伴之前对消息队列不是很了解,那么在看理论时会有些困惑,这里以消息模式为切入点,结合理论细节和代码实践的方式一起来学习. 正文 常 ...

  6. java中的internal,java.lang.InternalError:编译的Java代码中最近的不安全内存访问操作中发生了错误...

    此错误意味着sun.misc.Unsafe.getX()或putX()内存访问导致 SIGBUS错误,然后由JVM捕获并转换为异步InternalError. 更多细节: > sun.misc. ...

  7. 2021最新版RabbitMQ完整教程学习笔记

    文章目录 一.中间件 1. 什么是中间件 2. 中间件技术及架构的概述 3. 基于消息中间件的分布式系统的架构 4. 消息队列协议 5. 消息队列持久化 6. 消息的分发策略 7. 消息队列高可用和高 ...

  8. go语言gin框架学习

    让框架去做http解包封包等,让我们的精力用在应用层开发 MVC模式 M: model,操作数据库gorm view 视图 处理模板页面 contoller 控制器 路由 +逻辑函数 解决gin相关代 ...

  9. 采样开关的作用计算机控制,采样过程

    采样是指用每隔一定时间的信号样值序列来代替原来在时间上连续的信号,也就是在时间上将模拟信号离散化. 把连续信号转换成离散信号的过程称为采样过程(sampling process),这一过程是通过采样开 ...

最新文章

  1. 数字示波器使用中的欠采样
  2. Java基础学习总结(12)——一哈希编码HashCode
  3. 【机器听觉】初探语音识别技术
  4. MPI学习存在的一些问题
  5. MySQL 开启远程登录权限
  6. 参数php_干净的PHP代码-函数参数
  7. android px pd sp区别,【求助】我用北京索莱宝质粒小量提取试剂盒提的质粒,电泳图...
  8. Java架构师面试问些什么?微服务之springcloud面试题(共22题,含详细解答)
  9. oceanbase mysql模式安装了obproxy之后的连接方法
  10. 学以致用三十四-----python2.0加载图片
  11. 前端html+css+javascript
  12. java的各种加载和初始化的详细过程
  13. 基于MFC的U盘检测与文件拷贝程序
  14. Linux远程管理常用命令(超全超详细)【持续更新】
  15. android 浏览器支持java,Android浏览器访问java web的方法
  16. 2.前端笔记-JS-JS3种书写位置、注释、输入输出
  17. 常用短链接生成工具推荐
  18. 基于标准库函数与基于HAL库函数的stm32编程方式
  19. Rolling back JDBC Connection [org.sqlite.jdbc4.JDBC4Connection
  20. 推荐技术微信群和QQ群

热门文章

  1. Canny算子与霍夫变换检测圆与直线
  2. python可以做什么赚钱-学Python的人,做什么工作最赚钱?
  3. PTCRB认证中WiFi OTA测试简介及常见问题解析
  4. 权威机构认证OPPO R9s销量,连续三个月线下销量冠军
  5. 1066: 字符分类统计 C语言
  6. 自定义MySQL安装
  7. Kotlin使用接口回调的简单写法
  8. 游戏服务器要维护吗,游戏服务器要维护吗
  9. 植物表型的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  10. 网上打印资料选哪个平台打印比较划算?