<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/rootvy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; rootvy]]></copyright><item><title><![CDATA[D3DXComputeTangent函数的使用]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/7294603</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/7294603</guid><author>rootvy</author><pubDate>Sat, 25 Feb 2012 23:29:20 +0800</pubDate><description><![CDATA[最近在做水面效果的时候，需要用到法线空间，但是原来的Mesh没有Tangent和BiNormal向量，因此需用用D3DXComputeTangent函数来生成。
该函数的定义为：
HRESULT D3DXComputeTangent( 
     LPD3DXMESH Mesh,
     DWORD TexStageIndex,
     DWORD TangentIndex,]]></description><category></category></item><item><title><![CDATA[C++头文件的包含顺序研究 .]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/7294483</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/7294483</guid><author>rootvy</author><pubDate>Sat, 25 Feb 2012 22:32:11 +0800</pubDate><description><![CDATA[作者：朱金灿
来源：http://blog.youkuaiyun.com/clever101
 
一．《Google C++ 编程风格指南》里的观点
 
     公司在推行编码规范，领导提议基本上使用《Google C++ 编程风格指南》。其中《Google C++ 编程风格指南》对于头文件的包含顺序是这样的：
 
Names and Order of Includes
link ▽Use]]></description><category></category></item><item><title><![CDATA[源代码与原始版本不同的解决办法]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/7294428</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/7294428</guid><author>rootvy</author><pubDate>Sat, 25 Feb 2012 22:05:00 +0800</pubDate><description><![CDATA[提示:当前不会命中断点。源代码与原始版本不同.
为什么会出现呢?
原因当前大家都清楚,就是因为编译器生成的符号文件与源代码不同.
那我的代码明明已经改变并存档,并且编译了,为什么还是不同呢?
1.我想也许是没有被真正的重新生成吧,
   这好办,清理解决方案,清理工程,为了更彻底,再关闭解决方案,把debug删掉,ncb文件删掉,再打开重新生成.有时候这样问题就解决了,但是我发现问题依旧]]></description><category></category></item><item><title><![CDATA[D3D中设备丢失的处理]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/7284217</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/7284217</guid><author>rootvy</author><pubDate>Wed, 22 Feb 2012 17:34:49 +0800</pubDate><description><![CDATA[D3D中设备丢失的处理


什么是设备丢失
D3D中设备（Device）有两种状态，一种是可操作状态，也就是正常状态，另一种是丢失状态（Lost），处于丢失状态的设备是不能进行渲染操作的。
什么情况会导致设备丢失
当某些事件发生时，设备会由正常状态转换到丢失状态。这些事件包括

程序在全屏状态下失去键盘焦点（全屏时按下Alt+Tab或Win+D键或Win+L键）其他程序进入全屏状态]]></description><category></category></item><item><title><![CDATA[图形性能分析]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/7283793</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/7283793</guid><author>rootvy</author><pubDate>Wed, 22 Feb 2012 16:03:15 +0800</pubDate><description><![CDATA[目前市场上三个主要的图形性能分析套装，下表对它们的主要特性进行了简要总结和对比：



 
Intel® Graphics Performance Analyzers（GPA）
NVIDIA Perfkit
AMD GPU PerfStudio


最新版本
3.0
6.62
2.2


支持芯片组
Intel® 4 Series Chipsets (Intel®]]></description><category></category></item><item><title><![CDATA[函数调用的区别：_cdecl以及_stdcall]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/7103571</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/7103571</guid><author>rootvy</author><pubDate>Mon, 26 Dec 2011 17:19:44 +0800</pubDate><description><![CDATA[转载自：http://www.cppblog.com/kenny/archive/2011/04/19/144539.html
一、概念
1)_stdcall调用
_stdcall是Pascal程序的缺省调用方式，参数采用从右到左的压栈方式,由调用者完成压栈操作，被调函数自身在返回前清空堆栈。
WIN32 Api都采用_stdcall调用方式，这样的宏定义说明了问题： #define WI]]></description><category></category></item><item><title><![CDATA[函数调用的区别：_cdecl以及_stdcall]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/7103566</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/7103566</guid><author>rootvy</author><pubDate>Mon, 26 Dec 2011 17:17:15 +0800</pubDate><description><![CDATA[一、概念
1)_stdcall调用
_stdcall是Pascal程序的缺省调用方式，参数采用从右到左的压栈方式,由调用者完成压栈操作，被调函数自身在返回前清空堆栈。
WIN32 Api都采用_stdcall调用方式，这样的宏定义说明了问题： #define WINAPI _stdcall

按C编译方式，_stdcall调用约定在输出函数名前面加下划线，后面加“@”符号和参数的字节数，]]></description><category></category></item><item><title><![CDATA[采用D3DXCreateTextureFromFileEx读取Cubemap贴图时候的问题]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/7099944</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/7099944</guid><author>rootvy</author><pubDate>Sat, 24 Dec 2011 17:22:33 +0800</pubDate><description><![CDATA[最近在项目中要用到Cubemap贴图，但是发现采用普通的贴图加载方式对其进行加载时，系统也不会报错，于是对dds的文件管理方式产生了兴趣，研究了一些dds文件加载的源码。总结心得如下：
1、首先，不管dds的文件是普通贴图，还是cubemap，都是采用同一个函数来加载文件到内存中的。载入dds文件的关键参数DDSURFACEDESC2，这个结构用来存储文件头中的信息，包括本结构体的大小，surf]]></description><category></category></item><item><title><![CDATA[内存地址分配规则]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/7095556</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/7095556</guid><author>rootvy</author><pubDate>Thu, 22 Dec 2011 15:22:32 +0800</pubDate><description><![CDATA[1 内存地址是从高地址到低地址进行分配的：

--------------------------------------------------------------------------------
int i=1;
int j=1;
cout
-------------------------------------------------------------------]]></description><category></category></item><item><title><![CDATA[修改exe中CreateDevice的参数（转载RAINini的专栏）]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/7095517</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/7095517</guid><author>rootvy</author><pubDate>Thu, 22 Dec 2011 15:12:13 +0800</pubDate><description><![CDATA[谢伟亮 feiyurainy@163.com
转载请注明出处 
PerfHUD是NV一个非常好用的工具，可以用于查看游戏的运行效率，找出瓶颈，也可以用于分析游戏渲染流程，看每个DPC的渲染操作，包括渲染状态，所用的shader等，非常强大。
PerfHUD正常的用途是用于调试自己写的程序，但是有时候看到别的游戏一些好的效果，也想了解是怎么实现的，这时，PerfHUD也可以派上用场。
要使用]]></description><category></category></item><item><title><![CDATA[SVN版本库的还原]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/7075706</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/7075706</guid><author>rootvy</author><pubDate>Thu, 15 Dec 2011 22:24:03 +0800</pubDate><description><![CDATA[在代码的编写过程中，难免有些错误需要修改，或者想从以前的文件进行代码修改，这样就涉及到版本的追踪，如果你以前提交时日志写的非常清楚，那版本追踪回滚起来就事半功倍、得心应手。下面介绍几种版本回滚的办法：
1.推荐的一种方法是，直接export一个你需要的版本，然后用你export的版本覆盖你的最新的版本，这样你就可以不丢失你新建的文件，同时获得最新的SVN版本控制。
操作步骤：TortoiseS]]></description><category></category></item><item><title><![CDATA[顶点颜色在光照计算中的作用]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/7071361</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/7071361</guid><author>rootvy</author><pubDate>Wed, 14 Dec 2011 18:05:38 +0800</pubDate><description><![CDATA[最近在做项目的时候，碰到了使用顶点颜色没有效果的情况，研究了很久，终于把顶点颜色和渲染时的光照计算流程弄清楚了。
     首先，光照的计算与顶点的格式有关系，当顶点格式为D3DFVF_XYZ|D3DFVF_DIFFUSE时，因为没有法线信息，也无法进行光照计算，所以不管是否开启光照，渲染时都只会使用顶点颜色作为渲染的结果。
     针对D3DFVF_XYZ|D3DFVF_NORMAL|D3]]></description><category></category></item><item><title><![CDATA[顶点颜色和材质的混合]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/7070536</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/7070536</guid><author>rootvy</author><pubDate>Wed, 14 Dec 2011 15:12:20 +0800</pubDate><description><![CDATA[最近在做项目的时候，碰到了使用顶点颜色没有效果的情况，研究了很久，终于把顶点颜色和渲染时的光照计算流程弄清楚了。
     首先，光照的计算与顶点的格式有关系，当顶点格式为D3DFVF_XYZ|D3DFVF_DIFFUSE时，因为没有法线信息，也无法进行光照计算，所以不管是否开启光照，渲染时都只会使用顶点颜色作为渲染的结果。
     针对于D3DFVF_XYZ|D3DFVF_NORMAL|D]]></description><category></category></item><item><title><![CDATA[CString 操作指南]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/5625197</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/5625197</guid><author>rootvy</author><pubDate>Wed, 26 May 2010 14:09:00 +0800</pubDate><description><![CDATA[CString 操作指南原著：Joseph M. Newcomer翻译：littleloach原文出处：codeproject：CString Management通过阅读本文你可以学习如何有效地使用 CString。　　CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作，使得MFC在做字符串操作的时候方便了很多。不管怎样，使用CString有很多特殊的技巧，特别是]]></description><category></category></item><item><title><![CDATA[程序员的能力等级]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/5601793</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/5601793</guid><author>rootvy</author><pubDate>Mon, 17 May 2010 20:43:00 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[游戏程序员成长]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/5601789</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/5601789</guid><author>rootvy</author><pubDate>Mon, 17 May 2010 20:43:00 +0800</pubDate><description><![CDATA[与玩游戏相比,写游戏要复杂上千万倍,除了需要掌握通用的编程技巧以外，还要有相当的图形学，物理，数学基础，特别是在国内，由于相关资料的缺乏，更是让初学者无从下手。下面总结了一些入门方法和比较容易入手的资料。         首先你要精通一门高级语言，比如C++或者C#，其次，要有良好的英文阅读能力。对游戏开发者来说英文阅读能力是最重要也是最基本的工具之一，因为你遇到的大部分资源都将是英文的，不要]]></description><category></category></item><item><title><![CDATA[公司技术管理角度看C++游戏程序员发展]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/5601788</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/5601788</guid><author>rootvy</author><pubDate>Mon, 17 May 2010 20:42:00 +0800</pubDate><description><![CDATA[这是我多年来招聘培训游戏程序员的一点想法。一直想汇总一下。主要目的是为了更好的对公司新进C++程序员进行培训，并且建立起游戏程序员培训，发展，成才，成为核心骨干，管理层，期权收益人等一整套体系。因为对于MMO游戏制作来讲，解决好C++技术队伍，是保证合格软件的基础之一。　　我在的H3D Studio核心技术人员和游戏制作管理人员全部是SMTH BBS游戏制作版成员。从99年开始截止BEGINE]]></description><category></category></item><item><title><![CDATA[字符数组，字符指针，Sizeof总结 ]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/5601787</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/5601787</guid><author>rootvy</author><pubDate>Mon, 17 May 2010 20:41:00 +0800</pubDate><description><![CDATA[1.以字符串形式出现的，编译器都会为该字符串自动添加一个0作为结束符，如在代码中写  "abc",那么编译器帮你存储的是"abc/0"2."abc"是常量吗？答案是有时是，有时不是。  不是常量的情况："abc"作为字符数组初始值的时候就不是，如                  char str[] = "abc";    因为定义的是一个字符数组，所以就相当于定义了一些空间来存放"ab]]></description><category></category></item><item><title><![CDATA[字符数组，字符指针，Sizeof总结 ]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/5601777</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/5601777</guid><author>rootvy</author><pubDate>Mon, 17 May 2010 20:38:00 +0800</pubDate><description><![CDATA[字符数组，字符指针，Sizeof总结 1.以字符串形式出现的，编译器都会为该字符串自动添加一个0作为结束符，如在代码中写  "abc",那么编译器帮你存储的是"abc/0"2."abc"是常量吗？答案是有时是，有时不是。  不是常量的情况："abc"作为字符数组初始值的时候就不是，如                  char str[] = "abc";    因为定义的是一个字]]></description><category></category></item><item><title><![CDATA[[C++]用VC++来设置获得注册表的键值]]></title><link>https://blog.youkuaiyun.com/rootvy/article/details/4816187</link><guid>https://blog.youkuaiyun.com/rootvy/article/details/4816187</guid><author>rootvy</author><pubDate>Mon, 16 Nov 2009 15:21:00 +0800</pubDate><description><![CDATA[ 下面这个是基于MFC的基本对话写的。。  演示设置注册表的3中类型的值和获得注册表的3中类型的值。。 分别用RegSetValueEx()来设置，RegQueryValueEx()函数来获得。 void CUserRegDlg::OnOK() { // TODO: Add extra validation here  CString str = "hello reg"; DWOR]]></description><category></category></item></channel></rss>