【鸡渣饲料系列】《Introdution to 3D Game Programming With DirectX11》 代码转移至vs2015
《Introdution to 3D Game Programming With DirectX11》我是从这本书学习的directx,被称为“龙书”dx11版,由于是通过这本书学习的所以自己的代码也是按书上的套路来的,环境是directxSDK+vs2010。但是现在已经是VS2015了,然后就想换为win10sdk+vs2015,然而这么一换就开始各种报错了,然后网上搜解决办法,能搜到的都是老外遇到的各种问题,中文的东西一点没有,参照stackoverflow和msdn上有关内容,弄了很久才能让代码在vs2015上编译连接通过。个人觉得对新手来说(如菜渣我)这个转移过程还是挺不容易搞定的,所以就想把这个过程写出来吧,当个傻瓜教程......
至于升级环境的目的,首先是得跟紧微软爸爸的脚步对吧,然后是VS2010对于C++11的特性很多都不支持,以及我的vs2010装不上shader编写的代码高亮的插件,写shader时候简直蛋疼死,并且directxSDK从2010版本开始就停止更新了,不支持dx11.1,11.2,和12的内容,所以升级了环境还是比较好的。
想转到vs2015,首先要安装windows的sdk,我用的是win10的。然后在vs2015中打开项目并且升级,这时如果直接build的话应该是有提示缺少‘main entry’的错误,这个需要点项目属性->HLSL编译器,其中着色器类型改为“效果”,着色器模型改为Shader Model 5.0。还需要将$(WindowsSDK_IncludePath)和$(WindowsSDK_LibraryPath_x86)加入项目包含目录和库目录并上移至顶,不然可能会有一些很奇怪的错误(应该是由于路径中有重复不同版本文件导致的)。再build的话应该是有关于effects11.lib的错误,这个是effects框架版本的问题,需要去https://fx11.codeplex.com/这里下载最新版的effects代码自己在vs2015中编译生成dubug和release版本的lib文件并替换之前的老文件(common文件夹中)。然后应该是关于dxerr.lib的错误,dxerr貌似也是在新版本dx中被去除了,本来和effects一样应该是有升级版的但现在貌似被整合到新版DXUT中去了,但实际上书中对dxerr的应用就是使用了一个dxtrace函数,dx的错误能够通过它显示出来,(但应该是程序规模较小的原因我至今也没见过它报出来的错)由于我也暂时没找到替代它的方法,所以就暂时简单的将HR宏里的内容去掉了。这时应该能在vs2015中运行了。
不过这只是暂时解决方案,因为还是要用到dxsdk,下一步的目标应该是换掉代码中Effects框架、D3DX有关的东西以及将xnamath用directxmath替换等等,彻底去掉对dxsdk的依赖,对于dxtrace的替代也要再找找。
【鸡渣饲料系列】《Introdution to 3D Game Programming With DirectX11》 代码转移至vs2015的更多相关文章
- Introdution to 3D Game Programming With DirectX11 第11章 习题解答
11.1 这道题要注意使用了line strip,由于曾经一直用triangle list,所以在几何渲染的时候easy算错定点描绘的顺序. 贴一些代码,大概就能把这个问题解释清楚了,由于框架还不是特 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 全书总结
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 全书总结 本系列文章中可能有很多翻译有问题或者错误的地方:并且有些章节 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第五章:渲染流水线
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第五章:渲染流水线 学习目标 了解几个用以表达真实场景的标志和2D图像 ...
- 《Focus On 3D Terrain Programming》中一段代码的注释三
取自<Focus On 3D Terrain Programming>中的一段: //--------------------------------------------------- ...
- 《Focus On 3D Terrain Programming》中一段代码的注释二
取自<Focus On 3D Terrain Programming>中的一段: bool CTERRAIN::MakeTerrainFault( int iSize, int iIter ...
- 《Focus On 3D Terrain Programming》中一段代码的注释一
取自<Focus On 3D Terrain Programming>中的一段: //--------------------------------------------------- ...
- webpack4 系列教程(三): 多页面解决方案--提取公共代码
这节课讲解webpack4打包多页面应用过程中的提取公共代码部分.相比于webpack3,4.0版本用optimization.splitChunks配置替换了3.0版本的CommonsChunkPl ...
- Introduction to 3D Game Programming with DirectX 11 翻译--开篇
Direct3D 11简介 Direct3D 11是一个渲染库,用于在Windows平台上使用现代图形硬件编写高性能3D图形应用程序.Direct3D是一个windows底层库,因为它的应用程序编程接 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- Direct12优化
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- Direct12优化 第一章:向量代数 1.向量计算的时候,使用XMV ...
随机推荐
- css之四大类选择器
一.选择器: 关于组合选择器之间的区别: 后代选择器(A B)与子选择器(A>B)之间的区别: 后代选择器: 子选择器: 总结:后代选择器的作用范围是一个元素里面包含的所有元素,即包括的是所有的 ...
- css3之transform的应用
一.利用transform实现图片额外显示 效果图如下 初始状态:
- 【解决方案】: hyper-v 导入虚拟机报这个错误 32784
从win server 2012创建的虚拟机 导出后, 想导入到本机win8系统上,结果报错 32784, google了一堆,都说不支持... 实际上 1.在win8系统上 新建一个不带硬盘的虚拟机 ...
- USB 2.0 Spec 微缩版
4.1.1 Bus Topology 最大层数为7,第7层只能是Function不能是Hub,非根Hub最大5级. 5.3 USB Communication Flow Host Controller ...
- 查询SQLServer 服务器,执行过的SQL语句耗时!
SELECT creation_time N'语句编译时间',last_execution_time N'上次执行时间',total_physical_reads N'物理读取总次数',total_l ...
- RMQ问题ST算法 (还需要进一步完善)
/* RMQ(Range Minimum/Maximum Query)问题: RMQ问题是求给定区间中的最值问题.当然,最简单的算法是O(n)的,但是对于查询次数很多(设置多大100万次),O(n)的 ...
- hdu 5441 travel 离线+带权并查集
Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Problem Descript ...
- 如何修改tomcat的端口
<Connector port="8485" protocol="HTTP/1.1" connectionTimeout="20000" ...
- 在单线程中你最好使用ArrayList而不是Vector
<java核心技术卷一>571页上提到Vector类的所有方法都是同步的.可以由两个线程安全地访问同一个Vector对象.显然,如果可以确定我们不会在多个线程中对这个数组进行操作的话,我们 ...
- JAVA 下拉列表和滚动条
//下拉列表和滚动条 import java.awt.*; import javax.swing.*; public class Jiemian7 extends JFrame{ JPanel mb1 ...