<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mike_zw的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mike_zw</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mike_zw]]></copyright><item><title><![CDATA[OpenGL FrameBuffer Object 101 ]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/6104996</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/6104996</guid><author>mike_zw</author><pubDate>Wed, 29 Dec 2010 14:40:00 +0800</pubDate><description><![CDATA[<br />原文：http://blog.youkuaiyun.com/huawenguang/archive/2007/06/18/1656369.aspx<br />Frame Buffer Object(FBO)扩展，被推荐用于把数据渲染到纹理对像。相对于其它同类技术，如数据拷贝或交换缓冲区等，使用FBO技术会更高效并且更容易实现。<br />在这篇文章中，我将会快速地讲解一下如何来使用这一扩展，同时会介绍一些在使用过程中我们要注意的地方。学会该技术后，你便可以把一些渲染到纹理(render to texture]]></description><category></category></item><item><title><![CDATA[Simple Shadow Mapping Tutorial with OpenGL]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/6100518</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/6100518</guid><author>mike_zw</author><pubDate>Mon, 27 Dec 2010 14:13:00 +0800</pubDate><description><![CDATA[Simple Shadow Mapping Tutorial with OpenGL<br />Jie Tan<br />DALABIntroduction<br />Shadow mapping is a classical but widely-used technique to render shadows. It is introduced by Lance Williams in 1978 in “Casting curved shadows on curved surfaces”. Nowada]]></description><category></category></item><item><title><![CDATA[观察者模式]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/6095726</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/6095726</guid><author>mike_zw</author><pubDate>Fri, 24 Dec 2010 10:17:00 +0800</pubDate><description><![CDATA[观察者模式是大学阶段应该掌握的几种重要的模式之一，它的用处广泛，而且其变种更能解决许多实际问题。下面详细的介绍一下。名称：观察者模式--Observer别名：Dependents, Publish-Subscribe意图：定义对象间的一种一对多的依赖关系，当一个对象的状态发生改变时，所有依赖于它的对象都得到通知并被自动更新。下面用一个教师-学生的例子说明观察者模式，其中学生是观察者，教师是被观察者，不过这个也适用于电器-开关的例子，可以把电器看作观察者，开关看作被观察者，当开关开始有动作的时候，观察者接收到]]></description><category></category></item><item><title><![CDATA[VC工程改名]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/6075889</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/6075889</guid><author>mike_zw</author><pubDate>Tue, 14 Dec 2010 17:05:00 +0800</pubDate><description><![CDATA[<br />1. 打开要改名的工程，将所有文件中的工程名符串替换成新工程的名字；<br />2. 修改所有需要修改的文件名到你新的工程名字；<br />3. 在旧的工程文件夹中，以记事本方式打开*.vcproj，查找并替换工程名；<br />4. 将旧的工程文件夹名修改成新的工程名<br />5. 打开刚修改的*.vcproj文件，编译（弹出对话框时将*.sln保存到工程文件夹中）即可。]]></description><category></category></item><item><title><![CDATA[简单工厂模式(C++描述) ]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/6066113</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/6066113</guid><author>mike_zw</author><pubDate>Thu, 09 Dec 2010 17:21:00 +0800</pubDate><description><![CDATA[<br />一.简单工厂模式又称静态工厂方法模式（Static Factory Method），它不是Gof 所讲的23种设计模式之一，但是它却是我们在编码过程中经常使用的方法之一。<br />1.静态工厂方法统一管理对象的创建。<br />静态工厂方法通过传入的参数判断决定创建哪一个产品的实例，封装了对象的创建，客户端只管消费，实现了对责任（模块）的分割。<br />2.静态工厂方法推迟了产品的实例化。<br />通过XML配置文件就能改变具体要创建的产品实例，修改为其它的产品实例，代码不须重新编译。<b]]></description><category></category></item><item><title><![CDATA[Bump Mapping]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/6045668</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/6045668</guid><author>mike_zw</author><pubDate>Tue, 30 Nov 2010 15:52:00 +0800</pubDate><description><![CDATA[一、Bump Mapping的作用它能能极大提高图像真实感，橘子上的皱纹、带浮雕的微标以及带凹痕的砖块都是使用Bump贴图的极好例子，下图展示了砖块的凹凸贴图，材料来源于http://www.ozone3d.net/tutorials/bump_mapping.php。（1）直接纹理贴图，未使用Bump Mapping：（2）使用Bump Mapping，凹凸细节非常明显，真实感提高。二、Bump贴图的原理。为什么第二张图会显得凹凸有序呢，明暗分明呢，豪无疑问这是光照的功劳。Bump贴图实质上是改变（或者替]]></description><category></category></item><item><title><![CDATA[Cube Mapping Example]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/6019518</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/6019518</guid><author>mike_zw</author><pubDate>Thu, 18 Nov 2010 16:58:00 +0800</pubDate><description><![CDATA[1.有一种称为“环境映射”(environment mapping)的技术可以不依赖ray-trace而实现复杂环境我反射，这种技术使用一个或多个纹理来模拟外部环境的反射，这种技术最适合于应用到具有高亮镜面的物体。2.有多种方法来实现环境纹理映射，包括球面纹理映射( SPHERE MAPPING )和立方体纹理映射( CUBE MAPPING )，这两者在标准的OPENGL中的都是支持的。本例我们使用GLSL的CUBE MAPPING 方法来实现环境纹理，我们假设（注意是假设assume）在物体的表层有一层]]></description><category></category></item><item><title><![CDATA[GLSL实现多重纹理映射(例子取自glsl橙皮书第10章)]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/6015378</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/6015378</guid><author>mike_zw</author><pubDate>Wed, 17 Nov 2010 17:31:00 +0800</pubDate><description><![CDATA[我们使用GLSL来模拟从太空角度来观测地球，该例子取自GLSL橙色书第10章。我们可以直接使用一副从太空拍摄的地球纹理贴图来实现地球的模拟，但是这样做会有一些“不真实”的地方：(1)我们知道地球上是有一些人为manmade的光源（比如各大城市所发出的光芒），当夜晚来临的时候，即使从太空中看地球，各大城市也会发出明显的光芒。所以我们得判断地表上的每一处是白天或黑夜，这个可以通过灯光和法向量的夹角值来判断。当地表某点处于白天时，我们使用一副daytime的纹理位图并作一些相关的纹理计算，而当处于夜晚时，我们不进]]></description><category></category></item><item><title><![CDATA[As的用法]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/5995302</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/5995302</guid><author>mike_zw</author><pubDate>Mon, 08 Nov 2010 14:38:00 +0800</pubDate><description><![CDATA[<br />as这个词看似简单，但用法却是很多的，对它的正确理解关系到英语应用能力的提高，下面对其用法和搭配进行详细阐述。<br /> <br />一、as作介词<br />1. 区别as和like<br />as作为介词时，可以表示“像……”，这时它可以和like互用；as还可以表示“以……身份”或“作为……”，“当作……”，但like不能。<br />e.g. I) They lived and fought among the people as “fish in water”. (as相当于like]]></description><category></category></item><item><title><![CDATA[[翻译]Opengl Shader Example ——brick Shader(第一节)]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/5985378</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/5985378</guid><author>mike_zw</author><pubDate>Wed, 03 Nov 2010 17:32:00 +0800</pubDate><description><![CDATA[Brick Shader Overview砖块Shader概要One approach to writing shaders is to come up with a description of the effect that you're trying to achieve and then decide which parts of the shader need to be implemented in the vertex shader, which need to be implemented ]]></description><category></category></item><item><title><![CDATA[GLSL光照运用]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/5977646</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/5977646</guid><author>mike_zw</author><pubDate>Sun, 31 Oct 2010 15:35:00 +0800</pubDate><description><![CDATA[1、在GLSL中运用光照，首先需考虑的是光照强度，有了光强，有就明暗和层次感，那么光照强度如何判断？我们可以通过计算顶点的法线向量与光照向量的夹角余弦值（cosine值）来得到。所以，当法线离光照方向很接近的情况下，将会出现亮的色调；当光照方向与法线方向的夹角很大时，渲染的地方就会很暗，换句话而言就是，夹角的cosine值影响色调的强度，Cosine值的计算可以利用下面这个公式，也即是点积公式：     cos(lightDir,normal) = lightDir . normal / ( |lightD]]></description><category></category></item><item><title><![CDATA[GL中基于顶点的操作及在GLSL中的应用]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/5972276</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/5972276</guid><author>mike_zw</author><pubDate>Thu, 28 Oct 2010 16:40:00 +0800</pubDate><description><![CDATA[<br />在GL的固定管线流程中，顶点数据在经过求值器操作（可选）后将进行“基于顶点的操作”，在这一步中，顶点数据将进行“视图变换”、“模型变换”、“投影变换”以及“视口变换”四步。这4个步骤实质上类似于用摄像机进行拍照的过程，即<br />第一步：架设摄像机，使相机对准场景。（视图变换）<br />第二步：移动场景中的物体，比如苹果、香蕉、模特，摆出合适的满意的造型。（模型变换）<br />第三步：调整相机的镜头，拉近拉远、聚焦放焦等。（投影变换）<br />第四步：确定最终照片的大小，比如我们可能想将]]></description><category></category></item><item><title><![CDATA[如何学习GLSL]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/5971153</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/5971153</guid><author>mike_zw</author><pubDate>Thu, 28 Oct 2010 10:45:00 +0800</pubDate><description><![CDATA[1.看一看GLSL的介绍http://nehe.gamedev.net/data/articles/article.asp?article=21文章的结尾有一些不错的推荐教程链接，也有一些建议值得看一看。2.阅读OpenGL Shading languae网上可以搜索到电子书， 是英文的，看起来比较慢，建议找本中文的节省时间。不过感觉这本书对于基本概念讲的比较清楚，但是实践性不强。相关的源代码网上应该能搜索的到的。http://www.3dshaders.com/home/3.提高http://www.li]]></description><category></category></item><item><title><![CDATA[GLSL语言内置变量]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/5971044</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/5971044</guid><author>mike_zw</author><pubDate>Thu, 28 Oct 2010 10:15:00 +0800</pubDate><description><![CDATA[<br />GLSL语言内置的变量，包括内置的顶点属性（attribute）、一致变量（uniform）、易变变量（varying）以及常量（const），一方面加深印象，另一方面今天的文章可以为以后的编程做查询之用。<br />顶点属性——指顶点的信息，OpenGL据此绘制各个图元，对于传统的顶点属性包括坐标、纹理坐标、颜色等GLSL都会设置一个内置变量与之对应，以便在需要时可以在顶点或片元着色器中直接引用，这也体现了GLSL与HLSL的一个最大的不同，HLSL里顶点的属性是通过语义来定义的，而GLSL充]]></description><category></category></item><item><title><![CDATA[C++基本功和 Design Pattern系列(11) Exception]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/5963756</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/5963756</guid><author>mike_zw</author><pubDate>Mon, 25 Oct 2010 12:07:00 +0800</pubDate><description><![CDATA[====================================================== 大家请把我的文章当参考，详细内容 还请参照 权威书籍如果文中有错误和遗漏， 请指出，Aear会尽力更正, 谢谢！ Aear Blog: http://blog.sina.com.cn/u/1261532101 ====================================================== 说到Exception就要说下相关的Error Handling. 比较常用的Er]]></description><category></category></item><item><title><![CDATA[对于render system的一点思考(里面关于材质的ID很有启发)]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/5963705</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/5963705</guid><author>mike_zw</author><pubDate>Mon, 25 Oct 2010 11:37:00 +0800</pubDate><description><![CDATA[1. 每个material的id 最好用一个 64位 unsigned int 表示。当然如果你用 128位 unsigned int， 使用__mm128关键字， 也可以。这样可以相对减少排序复杂度。




2.  对于游戏里所有的texture和effect,最好分别有个 texture manager和effect manager, 对于相同的 texture和effect，给一个相同的 id： 分别是 texture id 和 effect id。 每个id是个8位的 byte就足够了。]]></description><category></category></item><item><title><![CDATA[基于可编程图形处理器的骨骼动画算法及其比较]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/5963546</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/5963546</guid><author>mike_zw</author><pubDate>Mon, 25 Oct 2010 10:46:00 +0800</pubDate><description><![CDATA[<br />2009-10-19 <br />作者: 季卓尔 张景峤 <br />来源: 万方数据 关键字: 骨骼动画 可编程图形处理器 计算机图形 蒙皮网格 统一  骨骼动画相对于之前的动画方法具有占用空间小的优点，但是其代价是计算量的增加，从而导致绘制效率的降低。另一方面，近年来可编程图形处理器技术在计算机图形处理领域已得到广泛研究。因此，提出了基于可编程图形处理器实现骨骼动画的方法，采用了最先进的可编程处理管线。使用多种不同的方法在可编程图形处理器中实现了骨骼动画，并对其性能进行了分析与比较。该方法借]]></description><category></category></item><item><title><![CDATA[一个简单的GLSL]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/5951677</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/5951677</guid><author>mike_zw</author><pubDate>Tue, 19 Oct 2010 16:37:00 +0800</pubDate><description><![CDATA[<br />//////////////////////////////////////////////////////////////////////////<br />/*<br /> * my first glsl program, hello - glsl<br /> * now, go!<br /> *<br /> */<br /><br />#define GLUT_DISABLE_ATEXIT_HACK<br /><br />#include <windows.h><br />#include]]></description><category></category></item><item><title><![CDATA[GLSL教程2]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/5950912</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/5950912</guid><author>mike_zw</author><pubDate>Tue, 19 Oct 2010 11:40:00 +0800</pubDate><description><![CDATA[7 变量类型着色程序中常用的变量是uniform，attribute变量。uniform的值只能被图元修改，不能在glBegin / glEnd 间被修改。这意味着uniform不能用作顶点属性，uniform适用于在图元, 桢, 或整个scene都不变的量。uniform变量能在顶点和片断着色器中读。attribute可以为顶点赋值。attribute在任何时候都可以被更新。只能用于用于顶点着色器，不能用于片断着色器。7.1 uniform变量的应用：下面是着色器中的定义的变量：       unifor]]></description><category></category></item><item><title><![CDATA[GLSL教程(1)]]></title><link>https://blog.youkuaiyun.com/mike_zw/article/details/5950855</link><guid>https://blog.youkuaiyun.com/mike_zw/article/details/5950855</guid><author>mike_zw</author><pubDate>Tue, 19 Oct 2010 11:24:00 +0800</pubDate><description><![CDATA[1 管线（pipeline）简介上图中一个顶点（Vertex ）是一组属性，包括位置，颜色，纹理坐标等。1.1顶点转换模块（Vertex Transformation）在此模块实现功能：顶点位置转换为每个顶点计算光照纹理坐标的生成与转换1.2图元安装和光栅化处理模块（Primitive Assembly and Rasterization）此阶段的输入是转换后的数据和连接信息。连接信息告诉管线顶点是如何连接为图元的。光栅化决定了片断和像素位置。片断是一组用于更新桢缓存中像素的数据。片断包括颜色，纹理坐标等。]]></description><category></category></item></channel></rss>