用DirectX实现魔方(一)】的更多相关文章

关于魔方 魔方英文名字叫做Rubik's Cube,是由匈牙利建筑学教授和雕塑家Ernő Rubik于1974年发明,最初叫做Magic Cube(这大概也是中文名字的来历吧),1980年Ideal Toys公司开始销售此玩具,并将名字改为Rubik's Cube. 魔方在80年代最为风靡,至今未衰.截至2009年1月,魔方在全世界已经售出了3亿五千多万个.最常见的魔方是三阶魔方,由27个小方块构成,共三层,每层9个小方块.我的Demo实现的就是三阶魔方.其他的魔方种类有二阶,四阶及更高阶,也有…
在本系列第一篇介绍过鼠标按键的功能,如下. 左键拖拽 - 旋转魔方 右键拖拽 - 变换视角 滚轮 - 缩放魔方 今天研究一下如何实现后面两个功能,用到的技术主要是Arcball,Arcball是实现Model-View-Camera的重要技术,这里的旋转基于Quaternion(四元数)来实现,当然也可以通过欧拉角来实现,但是欧拉角的旋转不够平滑.先看一下Model-View-Camera的效果,如下,这个gif效果图是用LICEcap录制的,帧率有些慢,略有卡顿现象,大家可以下载文末的可执行文…
这篇说一下如何构造魔方,主要包括魔方几何体的构造及纹理贴图.以下论述皆以三阶魔方为例,三阶魔方共有3 x 3 x 3 = 27个小立方体. 构造魔方 在第一篇里面说过,最初模型用的是微软的.x文件格式,由于魔方要实现按层旋转,所以不能将整个模型做成一个.x文件,只能分成若干个小立方体,每个立方体对应一个.x文件.这导致在发布程序的时候也要发布这些模型文件,而且.x文件已经逐渐为微软遗弃,所以就干脆不用了,自己画吧.魔方由27个小立方体构成,所以只要绘制一个小立方体,并复制27分,再将这个27个小…
前言 (2019/1/9 09:23)上一章我们主要讲述了魔方的旋转,这个旋转真是有毒啊,搞完这个部分搭键鼠操作不到半天应该就可以搭完了吧... (2019/1/9 21:25)啊,真香 有人发这张图片问我写魔方的目的是不是这个...噗 现在光是键鼠相关的代码也搭了400行左右..其中键盘相关的调用真的是毫无技术可言,重点实现基本上都被鼠标给耽搁了. 回来看一眼发现阅读量居然比前面两篇都还高了= =话说之前没看过这个教程的...或许你们应该先看看前面两章讲了什么内容? 本章将魔方应用层的剩余实现…
前言 上一章我们主要讲述了魔方的构造和初始化.纹理的准备工作.目前我还没有打算讲Direct3D 11关于底层绘图的实现,因此接下来这一章的重点是魔方的旋转.因为我们要的是能玩的魔方游戏,而不是一个观赏品.所以对旋转这一步的处理就显得尤其重要,甚至可以展开很大的篇幅来讲述.现在光是为了实现旋转的这个动画就弄了我大概500行代码. 这个旋转包含了单层旋转.双层旋转.整个魔方旋转以及魔方的自动旋转动画. 章节 实现一个3D魔方(1) 实现一个3D魔方(2) 实现一个3D魔方(3) Github项目-…
前言 可以说,魔方跟我的人生也有一定的联系. 在高中的学校接触到了魔方社,那时候的我虽然也能够还原魔方,可看到大神们总是可以非常快地还原,为此我也走上了学习高级公式CFOP的坑.当初学习的网站是在魔方小站,不过由于公式太多了,那一年主要也就学会了顶层公式PLL和底二层公式F2L,最好的时候大概30s能够复原一个魔方,不过后来还是退坑了. 然后到了大学,参加考核的时候被要求用DirectX9来实现考题规定的游戏,我选择了魔方.然后在仅有12天的时间狂肝Direct3D 9,虽然那时候写的代码还比较…
经常听到有朋友抱怨他的电脑运行软件或者游戏时提示缺少什么 d3dx9_xx.dll 或 msvcp71.dll.msvcr71.dll又或者是 .Net Framework 初始化之类的错误而无法正常使用,其实很多时候,只是因为你的电脑没有安装好这些软件所需要的运行库 (又称"运行时" / Runtime) 而已. 在 Window s环境下,很多软件特别是游戏都需要依赖一些运行库才能正常使用,而这些库并没有集成在 Windows 里的,需要我们自行下载安装 (所需的运行库一般在软件或…
今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.microsoft.com/en-us/library/windows/desktop/ee417025(v=vs.85).aspx . 我本意是记录下学习笔记,但可能写成了翻译,但这也没有办法的事,MSDN的写作风格就是简单凝练,缺少参考索引,所以看MSDN往往也就是读完正文,点点加有超链接的名词,顶多再跑…
0x00 前言 首先要说明的是,本文的标题事实上来自于知乎上的一个同名问题:为什么directX里表示三维坐标要建一个4*4的矩阵? - 编程 .因此,正如Milo Yip大神所说的这个标题事实上是存在问题的:矩阵是用于表示变换而不是坐标的.再了解了矩阵的作用之后,我们就要继续思考为什么变换要使用一个4×4的矩阵而不是3×3的矩阵呢?是不是多此一举呢?下面我们就来聊聊这个话题. 0x01 怎么平移一个三维空间中的点? 我们应该怎么平移一个三维空间中的点呢?答案很简单,我们只需要对这个点的坐标中的…
安装完Win10调试程序突然在这个地方报错: #if (defined(DEBUG) || defined(_DEBUG)) deviceFlags |= D3D11_CREATE_DEVICE_DEBUG; #endif /* (defined(DEBUG) || defined(_DEBUG)) */   错误信息如下: D3D11CreateDevice: Flags (0x2) were specified which require the D3D11 SDK Layers for W…
原文链接 下载代码样本 特性/描述 日期: 2016 年 5 月 5 日 GPU Detect 是一种简短的示例,演示了检测系统中主要显卡硬件(包括第六代智能英特尔® 酷睿™ 处理器产品家族)的方式. 代码下载包括文档,旨在用作指南,且应该根据游戏的特定需求进行调整. 系统要求 硬件: CPU: 支持的英特尔® CPU GFX:在 Microsoft DirectX* 10(或更高版本)硬件上使用 Microsoft DirectX* 10 显卡 API 操作系统: Microsoft Wind…
DirectX 9.0 runtime etc https://www.microsoft.com/en-us/download/details.aspx?id=7087 DirectX 11 runtime etc https://www.microsoft.com/en-us/download/details.aspx?id=8109…
  在这里分享一下3D魔方动画,html5+CSS3即可完成~无图无真相,先上效果图 第一步非常简单,就是先将魔方的结构画出来.大家都玩过魔方,知道魔方是一个有六个面的正方体.这里我们先写一个大的div(类名为box)作为容器,里面包含魔方6个面,即6个div,然后我这里每个面里还分了9个小div就是9个小格子.代码如下,简单看看 <!-- 魔方六面 --> <div class="box"> <div class="aside">…
一.环境 Visual Studio 2012,DirectX SDK (June 2010) 二.准备 1.环境变量(如没有配置请添加) 变量名:DXSDK_DIR 变量值:D:\Software\Program\Microsoft DirectX SDK (June 2010) 这里D:\Software\Program\Microsoft DirectX SDK (June 2010)是我的DirectX安装目录,视情况修改即可 三.步骤 1.打开VS2012,创建一个空的Win32 Pr…
虚拟机魔方渗透系统安装VMtools教程 1.开机登陆后,如图点击安装VMtools. 2.进入media文件夹: cd /media   查看mdia文件夹内容: ls   3.打开VMware Tools文件夹:cd  VM*         查看VMware Tools 文件夹内容:ls   4.复制VMwareTools-9.2.3-1031360.tar.gz文件到home目录下: cp VM* /home/ 进入home文件夹: cd /home 查看home文件夹内容:ls    …
软媒魔方,最好用的 Windows 系统增强软件!从最早的优化大师发展为一款系统超级增强套装,自动化.智能化解决各种电脑问题.软媒魔方,全新一代Windows系统增强辅助工具,智能+专业双操控模式,系统故障一键式解决方案,真正实现一键优化.一键清理.一键软件升级.魔方内置诸多强大绿色化的组件:系统清理.系统优化.系统雷达.系统美化.优化加速.桌面增强.时间增强.软件管家.电脑医生.虚拟光驱.U盘装机.DNS助手.壁纸美化等,被誉为国内口碑最好的全能系统软件集合,没有之一. 新版变化: http:…
视频图像处理系列 索引 VS2013下测试通过. 在百度中搜索关键字“DirectX SDk”,或者进入微软官网https://www.microsoft.com/en-us/download/details.aspx?id=6812, 下载最新版本的SDK,即DirectX SDK June10 下载后安装. 下载DirectShowLib-2005.dll并引用到工程里. 代码如下: using DirectShowLib; using Microsoft.DirectX.Direct3D;…
第一步:dll引用 Microsoft.DirectX.dll Microsoft.DirectX.AudioVideoPlayback.dll 如果没有的话,可能需要安装微软的DRECTX JDK directx支持的视频文件格式: (*.avi; *.mov; *.mpg; *.mpeg; *.ts; *.wmv; *.vob; *.dat; *.rm; *.rmvb; *.flv)|*.avi; *.mov; *.mpg; *.mpeg; *.ts; *.wmv; *.vob; *.dat…
鸽了那么久总算期中过[爆]去[炸]了...该是时候写写大作业了 [总不能丢给他们不会写的来做吧 一.三阶魔方的几个基本定义 ↑就像这样,可以定义面的称呼:上U下D左L右R前F后B UD之间的叫E,LR之间的叫S,FB之间的叫M 这样子棱就可以定义为UF啊UR啊之类的[咦?UR? 角就是用三个面定义:UFR.URB.DBR[按照逆时针来写三个面 然后就是各种旋转,对于一个面有三种旋转方式(以U为例):U,U',U2分别表示上面顺时针旋转90°,逆时针旋转90°,旋转180° 所以各种公式就是一串U…
https://www.luogu.org/problem/show?pid=2007 题目背景 常神牛从来没接触过魔方,所以他要借助计算机来玩.即使是这样,他还是很菜. 题目描述 常神牛家的魔方都是3*3*3的三阶魔方,大家都见过. (更正:3 4以图为准.) 作为一名菜鸟,常神牛从网上搜了一篇攻略,并找人翻译成了他自己会做的方法.现在告诉你他的魔方情况,以及他从网上搜到的攻略,请你求出最后魔方变成什么样子. 输入输出格式 输入格式: 输入文件为cube.out. 第一行,一串数字(长度不大于…
DirectX.Capture Class Library   DirectX.Capture Namespace The DirectX.Capture namespace contains classes to capture video and audio to AVI files. See the Capture class for information on using this namespace. Namespace hierarchy Classes Class Descrip…
DirectX.Capture Class Library Brian Low,              29 Mar 2008                                      Public Domain    4.94 (222 votes) 1 2 3 4 5 4.94/5 - 222 votes 5 removed μ 4.86, σa 0.93 [?]   Rate this: vote 1vote 2vote 3vote 4vote 5           …
DirectX常用函数语句 常用数学类函数: 计算向量的长度(模): FLOAT D3DXVec3Length(CONST D3DXVECTOR3* pV); 向量的规范化: D3DXVECTOR3 *D3DXVec3Normalize(D3DXVECTOR3* pOut, CONST D3DXVECTOR3* pV); 点积: FLOAT D3DXVec3Dot(CONST D3DXVECTOR3* pV1, CONST D3DXVECTOR3* pV2); 叉积: D3DXVECTOR3 *…
DirectX HLSL相关 顶点着色器可用软件顶点运算方式来模拟,即在创建设备时,将设备行为标记设定为: D3DCREATE_SOFTWARE_VERTEXPROCESSING 在记事本中编写着色器代码,使用函数D3DXCompileShaderFromFile对着色器文件进行编译. 每个着色器都用常量表来存储其变量. 为了使应用程序能够访问着色器的常量表,D3DX库提供了接口ID3DXConstantTable 获取常量的句柄: D3DXHANDLE ID3DXConstantTable :…
DirectX标准规定 DirectX使用左手坐标系. X轴正向指向右,Y轴正向指向上,Z轴正向垂直纸面向内. 编写Direct3D应用程序时,通常只使用4×4的矩阵和1×4的行向量,相乘时行向量在前,矩阵在后. 平移系数在4×4矩阵的最后一行前三个数. DirectX使用左手规则,叉乘的正负也是. 比如up=look×right: Right=up×look: DirectX和OpenGL的不同 DirectX DirectX使用左手坐标系. X轴正向指向右,Y轴正向指向上,Z轴正向垂直纸面向…
阅读目录 介绍 准备工作 环境搭建 简单Demo 显示效果 其他 Demo下载 介绍 DirectX是Microsoft开发的基于Windows平台的一组API,它是为高速的实时动画渲染.交互式音乐和环境音效等高要求应用开发服务的. 而Managed DirectX 实质上是对DirectX进行了一个轻量级的封装,Microsoft在2003年10月初发布了Microsoft DirectX 9.0 SDK Update (Summer 2003),其中就着重改进了Managed DirectX…
=========================================================== 目录: DirectX API 编程起步 #02 窗口的诞生 DirectX API 编程起步 #02 创建3D世界 ============================================================= 这里记录了我从零开始学习使用 DirectX API 的过程. 参考教程:rastertek -> DirectX 11 Tutorial…
1976: [BeiJing2010组队]能量魔方 Cube Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 884  Solved: 307[Submit][Status][Discuss] Description 小C 有一个能量魔方,这个魔方可神奇了,只要按照特定方式,放入不同的 能量水晶,就可以产生巨大的能量. 能量魔方是一个 N*N*N 的立方体,一共用 N3 个空格可以填充能量水晶. 能量水晶有两种: ·一种是正能量水晶(Positive…
今天要用C#开发(vs2010下)DirectSound应用,按照网上说得在: 但我系统里怎么也找不到,我确定安装了DirectX9.0SDK ,因为在C++里做的开发都好好的. 最后看到DircetSDK带的例子里面有C#的,查看引用的位置然后通过浏览的方式添加引用: DirectX在: C:/WINDOWS/assembly/GAC/Microsoft.DirectX/1.0.900.0__31bf3856ad364e35/Microsoft.DirectX.dll DirectSound在…
魔方又称幻方.纵横图.九宫图,最早记录于我国古代的洛书.据说夏禹治水时,河南洛阳附近的大河里浮出了一只乌龟,背上有一个很奇怪的图形,古人认为是一种祥瑞,预示着洪水将被夏禹王彻底制服.后人称之为"洛书"或"河图",又叫河洛图. 南宋数学家杨辉,在他著的<续古摘奇算法>里介绍了这种方法:只要将九个自然数按照从小到大的递增次序斜排,然后把上.下两数对调,左.右两数也对调:最后再把中部四数各向外面挺出,幻方就出现了. (摘自<趣味数学辞典>) 在西方…