【鸡渣饲料系列】《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 ...
随机推荐
- nova分析(6)—— nova service启动过程
Nova project下面具有多个service,api,compute,sceduler等等,他们的启动过程都几乎类似,这一篇博客就详细记录nova-sceduler的启动过程.文章中贴出的源码都 ...
- nova分析(3)—— nova-api
nova-api是nova对外提供Restful API的服务,Horizon.novaclient等均通过该api与nova进行通信. nova其实对外提供了多个api服务,包括下面这些服务: no ...
- 51nod 1348 乘积之和
用(r-l+2)维向量f[l,r]表示区间[l,r]内选i个数(0<=i<=r-l+1)相乘的所有方案之和,可以发现f[l,r]=f[l,m]*f[m+1,r],题目模数100003较小, ...
- golang的推荐的orm库
https://github.com/jinzhu/gorm
- 黄聪:wordpress源码解析-数据库表结构(转)
如果是一个普通的用户,不需要了解wordpress数据库的结构.但是,如果你正在写一个插件,你应该会对wordpress如何处理它的数据和关系感兴趣.如果你已经尝试使用已经存在的wordpress a ...
- spark IDEA开发环境搭建及运行问题
下图是例子: 还用说么,引入相关jar包(等下再一一说明) 包括scala,spark-assembly-1.4.1-hadoop2.5.0-cdh5.2.1.jar(按照你的spark和hadoo ...
- ERP_Oracle Erp R12.2的新技术特点(概念)
2014-09-09 Created By BaoXinjian
- 如何刪除GitHub中的repository
如何刪除一github中的repository,這本該是個非常簡單的操作,可一開始搜的時候,有不少文章比較含糊.這裡就記錄下來吧. 1.訪問https://github.com/settings/pr ...
- Xcode5创建自己的静态库详解
首先声明: 本人屌丝一枚,如有不对不妥之处,请大牛指正! 1.静态库工程的建立: Xcode New一个新的project,选择IOS下面的Framework&Library,下面有一个Coc ...
- DIY--主板跳线接法
如下图: