<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[游戏开发]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/anye3000</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; anye3000]]></copyright><item><title><![CDATA[OpenGL ES 2.0 渲染管线]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/39341645</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/39341645</guid><author>anye3000</author><pubDate>Wed, 17 Sep 2014 14:16:38 +0800</pubDate><description><![CDATA[OpenGL ES 2.0实现了可编程的图形管线，比起1.x的固定管线要复杂和灵活很多，由两部分规范组成：OpenGL ES 2.0 API规范和OpenGL ES着色语言规范。下图是OpenGL ES 2.0渲染管线，阴影部分是OpenGL ES 2.0的可编程阶段。]]></description><category></category></item><item><title><![CDATA[浅析GCC下C++类对象的内存布局]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/17286077</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/17286077</guid><author>anye3000</author><pubDate>Thu, 12 Dec 2013 18:23:16 +0800</pubDate><description><![CDATA[继承是C++作为OOD程序设计语言的三大特征(封装, 继承和多态)之一, 单一非多态继承是比较好理解的, 本文主要讲解GCC环境下的多重继承和虚拟继承的对象内存布局.

一,多重继承
先看几个类的定义:
class Top
{
public:
	int a;
};

class Left : public Top
{
public:
	int b;
};

class Right : pu]]></description><category></category></item><item><title><![CDATA[算法导论 Exercises 23.1]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/12091125</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/12091125</guid><author>anye3000</author><pubDate>Fri, 27 Sep 2013 13:56:41 +0800</pubDate><description><![CDATA[Exercises 23.1 - 算法导论.英文第3版 
如有不足或疑问, 欢迎指正. 





Exercises 23.1-1
Let (u, v) be a minimum-weight edge in a connected graph G.
 Show that (u, v)  belongs to some minimum spanning tree of G.]]></description><category></category></item><item><title><![CDATA[OpenGL颜色混合]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/11932167</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/11932167</guid><author>anye3000</author><pubDate>Mon, 23 Sep 2013 15:15:58 +0800</pubDate><description><![CDATA[混合是一种常用的技巧，通常可以用来实现半透明。但其实它也是十分灵活的，你可以通过不同的设置得到不同的混合结果，产生一些有趣或者奇怪的图象。


混合是什么呢？混合就是把两种颜色混在一起。具体一点，就是把某一像素位置原来的颜色和将要画上去的颜色，通过某种方式混在一起，从而实现特殊的效果。
假设我们需要绘制这样一个场景：透过红色的玻璃去看绿色的物体，那么可以先绘制绿色的物体，再绘制红色玻璃。在]]></description><category></category></item><item><title><![CDATA[OpenGL片断测试]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/11905161</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/11905161</guid><author>anye3000</author><pubDate>Sun, 22 Sep 2013 17:51:26 +0800</pubDate><description><![CDATA[片断测试其实就是测试每一个像素，只有通过测试的像素才会被绘制，没有通过测试的像素则不进行绘制。OpenGL提供了多种测试操作，利用这些操作可以实现一些特殊的效果。
我们在前面的课程中，曾经提到了“深度测试”的概念，它在绘制三维场景的时候特别有用。在不使用深度测试的时候，如果我们先绘制一个距离较近的物体，再绘制距离较远的物体，则距离远的物体因为后绘制，会把距离近的物体覆盖掉，这样的效果并不是我们所]]></description><category></category></item><item><title><![CDATA[欧拉路径, 欧拉回路 USACO Riding the Fences]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/10547971</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/10547971</guid><author>anye3000</author><pubDate>Thu, 29 Aug 2013 18:35:22 +0800</pubDate><description><![CDATA[概念
欧拉回路：从图的某一个顶点出发，图中每条边走且仅走一次，最后回到出发点。如果这样的回路存在，则称之为欧拉回路。
欧拉路径：从图的某一个顶点出发，图中每条边走且仅走一次，最后到达某一个点。如果这样的路径存在，则称之为欧拉路径。

无向图, 欧拉回路存在条件：所有顶点的度数均为偶数。
无向图, 欧拉路径存在条件：至多有两个顶点的度数为奇数，其他顶点的度数均为偶数。
有向图, 欧拉回路]]></description><category></category></item><item><title><![CDATA[算法导论 Exercises 22.5]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/9791213</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/9791213</guid><author>anye3000</author><pubDate>Tue, 06 Aug 2013 14:41:09 +0800</pubDate><description><![CDATA[Exercises 22.5  (22.5-1, 22.5-2, 22.5-3, 22.5-4, 22.5-5,
 22.5-6, 22.5-7) - 算法导论.英文第3版 

最近看书的同时, 感觉某些练习缺少参考, 所以按部分总结了自己的解答, 也能够强化学习过程. 
如有不足或疑问, 欢迎指正. 




Exercises 22.5-1

How can the nu]]></description><category></category></item><item><title><![CDATA[无向图判断是否存在环]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/8985844</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/8985844</guid><author>anye3000</author><pubDate>Tue, 28 May 2013 17:57:22 +0800</pubDate><description><![CDATA[问题


算法导论 (英文第三版) 22.4-3 

给出算法判断已知无向图 G = (V, E) 是否存在环. 算法运行时间要求为 O(V), 独立于 |E|.

此题关键是算法时间, 判断是否存在环相对简单.






分析

当DFS(深度优先遍历)时, 如果没有向后边(Back Edge), 则无向图无环.

(1) 如果含有向后边, 则无向图存在环.]]></description><category></category></item><item><title><![CDATA[有向无环图中, 两点间的简单路径数]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/8965886</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/8965886</guid><author>anye3000</author><pubDate>Thu, 23 May 2013 17:19:20 +0800</pubDate><description><![CDATA[问题

算法导论 (英文第三版) 22.4-2
已知有向无环图 G = (V, E) 和两点 s, t. 给出一个线性时间的算法, 返回在 G 中 s 到 t 的简单路径数. 例如下图 (算法导论 Figure 22.8), 
该有向无环图存在4条简单路径从点 p 到 点 v :  po, pory, posry 和 psry.




分析
可以考虑深度优先遍历, 从]]></description><category></category></item><item><title><![CDATA[查找有向图中 Universal Sink]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/8756835</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/8756835</guid><author>anye3000</author><pubDate>Wed, 03 Apr 2013 17:58:39 +0800</pubDate><description><![CDATA[问题
算法导论 (英文第三版) 22.1-6 看到该问题:"以邻接矩阵表示的图的多数算法, 时间需求都是O(V2),但有一些例外,查找有向图中是否存在
 Universal Sink(顶点入度|V|-1, 出度0), 时间需求是O(V)."


int i = 1;
int j = 1;

while (j <= n)
{
	if (G(i, j))
		i++;
	else
		j++]]></description><category></category></item><item><title><![CDATA[图论之拓扑排序]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/8672950</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/8672950</guid><author>anye3000</author><pubDate>Thu, 14 Mar 2013 14:27:20 +0800</pubDate><description><![CDATA[邻接表

邻接矩阵用二维数组即可存取,比较简单,但除完全图外,一般的图不是任意两个顶点都相邻接,因此邻接矩阵也有很多零元素,特别是当n 较大而边数相对完全图的边(n-1)又少得多时,邻接矩阵仍是很稀疏,这样浪费存储空间。

邻接表(Adjacency List)是图的一种顺序存储与链式存储结合的存储方法，类似于树的孩子链表表示法。由于它只考虑非零元素,因而节省了零元素所占的存储空间。它对于]]></description><category></category></item><item><title><![CDATA[Bezier曲线原理]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/8603489</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/8603489</guid><author>anye3000</author><pubDate>Fri, 22 Feb 2013 18:07:56 +0800</pubDate><description><![CDATA[原理:
贝塞尔曲线于1962年，由法国工程师皮埃尔·贝塞尔（Pierre Bézier）所广泛发表，他运用贝塞尔曲线来为汽车的主体进行设计。贝塞尔曲线最初由 Paul de Casteljau 于1959年运用de Casteljau 算法开发，以稳定数值的方法求出贝塞尔曲线。


线性贝塞尔曲线
给定点 P0、P1，线性贝塞尔曲线只是一条两点之间的直线。这条线由下式给出：

且其等]]></description><category></category></item><item><title><![CDATA[VS中Debug与Release的区别]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/8455739</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/8455739</guid><author>anye3000</author><pubDate>Mon, 31 Dec 2012 17:25:15 +0800</pubDate><description><![CDATA[对于VS的使用者来说, 常会遇到的编译问题时, Debug版本运行正常, 但在Release版本则不稳定或无法运行. 以下是对Debug版本和Release版本区别的分析:
Debug 通常称为调试版本, 它包含调试信息, 并且不作任何优化, 便于程序员调试程序. Release 称为发布版本, 它往往是进行了各种优化, 使得程序在代码大小和运行速度上都是最优的, 以便用户很好地使用.

D]]></description><category></category></item><item><title><![CDATA[bat批处理 set命令]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/8443738</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/8443738</guid><author>anye3000</author><pubDate>Thu, 27 Dec 2012 15:53:51 +0800</pubDate><description><![CDATA[set 功能一览
[设置变量]
格式: set 变量名=变量值  

或   set 变量名=%变量名%
详细:  被设定的变量以%变量名%引用

[取消变量]
格式: set 变量名=
详细: 取消后的变量若被引用%变量名%将为空

[展示变量]
格式: set 变量名
详细: 展示以变量名开头的所有变量的值

[列出所有可用的变量]
格式: set


[]]></description><category></category></item><item><title><![CDATA[bat批处理 for命令]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/8442528</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/8442528</guid><author>anye3000</author><pubDate>Thu, 27 Dec 2012 13:04:46 +0800</pubDate><description><![CDATA[格式: FOR [参数] %%变量名 IN  (相关文件或命令)   DO 执行的命令   
作用: 对一个或一组文件, 字符串或命令结果中的每一个对象执行特定命令, 达到我们想要的结果。   
注意: 在批处理文件中使用 FOR 命令时, 指定变量请使用 %%variable, 而不要用 %variable. 变量名称是区分大小写的,
 所以 %%i 不同于 %%I.   
关于: FO]]></description><category></category></item><item><title><![CDATA[Big Endian与Little Endian区别]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/8442118</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/8442118</guid><author>anye3000</author><pubDate>Thu, 27 Dec 2012 10:42:27 +0800</pubDate><description><![CDATA[Byte Endian是指字节在内存中的组织, 所以也称它为Byte
 Ordering或Byte Order.
对于数据中跨越多个字节的对象, 我们必须为它建立这样的约定:
(1)它的地址是多少?
(2)它的字节在内存中是如何组织的?
针对第一个问题，有这样的解释:
对于跨越多个字节的对象，一般它所占的字节都是连续的，它的地址等于它所占字节最低地址. (链表可能是个例外，但链表的地址]]></description><category></category></item><item><title><![CDATA[SVN的标准目录结构: trunk, branches, tags]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/8074062</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/8074062</guid><author>anye3000</author><pubDate>Mon, 15 Oct 2012 18:18:47 +0800</pubDate><description><![CDATA[我们在一些著名开源项目的版本库中，通常可以看到trunk,branches, tags等三个目录。由于SVN固有的特点，目录在SVN中并没有特别的意义，但是这三个目录却在大多数开源项目中存在，这是因为这三个目录反映了软件开发的通常模式。

trunk是主分支，是日常开发进行的地方。
branches是分支，一些阶段性的release版本，这些版本是可以继续进行开发和维护的，则放在branch]]></description><category></category></item><item><title><![CDATA[浅谈C/C++内存泄漏及其检测工具]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/8003916</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/8003916</guid><author>anye3000</author><pubDate>Fri, 21 Sep 2012 14:43:11 +0800</pubDate><description><![CDATA[对于一个C/C++程序员来说，内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题，比如 Smart Pointer，Garbage Collection等。Smart Pointer技术比较成熟，STL中已经包含支持Smart
 Pointer的class，但是它的使用似乎并不广泛，而且它也不能解决所有的问题；Garbage Collection技术在Java中已经比]]></description><category></category></item><item><title><![CDATA[C/C++二进制，八进制， 十进制和十六进制的表示方法]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/7977209</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/7977209</guid><author>anye3000</author><pubDate>Fri, 14 Sep 2012 00:53:25 +0800</pubDate><description><![CDATA[C/C++语言本身支持的三种输入是： 
1. 十进制。如56。 
2. 十六进制，以0x开头，比如0x7a。输出十六进制hex关键字格式化，如cout
3. 八进制，以0开头，比如030。输出八进制用oct关键字格式化，如cout




如下示例程序：


#include
using namespace std;
void main()
{
	int a,b,c;
	a=]]></description><category></category></item><item><title><![CDATA[C/C++带括号四则运算]]></title><link>https://blog.youkuaiyun.com/anye3000/article/details/7941231</link><guid>https://blog.youkuaiyun.com/anye3000/article/details/7941231</guid><author>anye3000</author><pubDate>Tue, 04 Sep 2012 11:26:06 +0800</pubDate><description><![CDATA[(1).首先从string读入表达式，取出每一个字符后装入deque容器coll1中（源码在后面）。
(2).从该容器取出每一个元素，利用栈将中缀表达式转换成后缀表达式（可参考：http://blog.youkuaiyun.com/anye3000/article/details/7939203），将后缀表达式装入容器coll3中。
(3).最后从coll3中取出元素逐一处理，既使用逆波兰式求值（如下图）]]></description><category></category></item></channel></rss>