摘要: 引言:GameBryo拥有一套复杂的材质系统,这套材质系统可以根据渲染对象的状态和属性生成不同的shader代码,提高了渲染流程的适应性,可以使你定义一套材质能适应多种渲染对象。同时,GameByro将shader的初始化和使用插件化,方便与美术工具集成,并且实现了平台无关性。为了实现这些目的,GameByro使用了一套复杂的机制,本文主要解析GameByro如何生成、编译并使用shader代码。 ShaderGameBryo的shader的接口封装在NiShader中,顶点数据流声明,常量表的访问,渲染状态的设置都是通过这个类(有点类似于D3Deffect)。在程序运行NiShader是由N 阅读全文
posted @ 2010-10-29 19:29 Goncely 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 左上填充规则byGoncely摘要:对左上填充规则进行详细介绍的资料很少,而理解左上填充规则对于编写光栅化器至关重要。本文对光栅化的原理和左上填充规则进行了详细描述,描述的时候尽可能做到易懂、详尽,如果读者还是有不明白的地方请给我留言,我会将没有论述清楚的地方补充完善。1、概述光栅化的时候通常会遇到一个术语,那就是左上填充规则(top-leftrule),它的作用是为了避免相邻的多边形重复绘制邻边。如图1所示,如果没有左上填充规则,绘制三角形ABD和BCD的时候,有可能同时绘制BD边,导致BD被绘制2次。乍一看,除了稍微影响点效率外,重复绘制好像也没什么坏处,不过在处理透明度和模板(stenc 阅读全文
posted @ 2010-05-13 15:32 Goncely 阅读(429) 评论(0) 推荐(0) 编辑
摘要: (1) 脑的感知过程和知觉怎样表达?(2) 脑的学习机理是什么? (3) 脑的记忆机理是什么? (4) 思维过程是什么?(5) 意识是什么?(6) 神经元的工作机理是什么? (7) 高级行为如何与神经网络的工作机理发生联系? (8) 所有的认知是否有一种统一的结构? (9) 知识与概念化是否是人工智能的核心? (10) 智力的发育过程是什么? 阅读全文
posted @ 2010-03-25 06:32 Goncely 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 透视投影的原理和实现by Goncely摘 要:透视投影是3D渲染的基本概念,也是3D程序设计的基础。掌握透视投影的原理对于深入理解其他3D渲染管线具有重要作用。本文详细介绍了透视投影的原理和算法实现,包括透视投影的标准模型、一般模型和屏幕坐标变换等,并通过VC实现了一个演示程序。1 概述在计算机三维图像中,投影可以看作是一种将三维坐标变换为二维坐标的方法,常用到的有正交投影和透视投影。正交投影多用于三维健模,透视投影则由于和人的视觉系统相似,多用于在二维平面中对三维世界的呈现。透视投影(Perspective Projection)是为了获得接近真实三维物体的视觉效果而在二维的纸或者画布平面 阅读全文
posted @ 2010-03-19 21:18 Goncely 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 由于工作原因,又一次接触到ICTCLAS,记得第一次使用ICTCLAS是我做硕士论文的时候,那时ICTCLAS才刚出来,非常感谢作者的无私共享,让我顺利完成了课题。一晃许多年过去了,ICTCLAS也推出了2009 Build0421最新版,同时也从之前的开源变成了共享和商业版,欣喜ICTCLAS不断茁壮成长,另外也有些许遗憾。据作者介绍,更新的版本主要是为了提高分词的效率而不是分词的精度,此外2009 build0421版本的库文件可试用到2009年6月30日。论坛上有人发帖问ICTCLAS为什么用不了,主要原因是ICTCLAS过了试用期,ICTCLAS_Init函数返回错误值,打开ICTCL 阅读全文
posted @ 2009-06-19 18:52 Goncely 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 未觉两鬓已渐斑白,但感豪情依旧澎湃。不问今昔青春何在,只愿一生有你共爱。昨夜路过郑州,一直未能入眠,脑海里总是回想起从前的点点滴滴。没想到许多年以来,一直暗藏内心的还是那几张模糊的面孔,也许再次相逢未必还能相识。也没想到一直未能忘怀的还是年少痴狂时的梦想,也许两鬓斑白也未必能够实现。无论如何,还是谢谢你们!因为有你,让我的生命更加精彩。有爱,有梦,就有未来! 阅读全文
posted @ 2008-06-04 00:41 Goncely 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 0. 引言C++中的句法歧义主要由类似int (a)的代码引起,此类代码共有3种合法的结构解释: 第一种是声明符a两边具有冗余圆括号的对象声明,其等同于int a; 第二种是函数式转型,它是表达式的一种,其等同于(int) a; 第三种是函数类型标识符,其等同于int f(a b)。 既然一种代码可同时解释为声明、表达式和类型,根据排列组合,共可引发声明和表达式、声明和类型、表达式和类型之间的3类歧义,这3类歧义均无法通过句法消解。上述3类两两之间的歧义在C++中都存在对应的句法构造,所幸的是C++中不存在声明、表达式和类型都能同时存在的地方,否则将需要消解3个对象,而不是现在的2个。下面对3 阅读全文
posted @ 2008-02-10 23:31 Goncely 阅读(583) 评论(1) 推荐(0) 编辑
摘要: courtesy IBM,图片:PS3的Cell处理器 1.硬件处理能力 processing power 用神奇处理器重绘西斯廷教堂的天花板 问题:如果电脑的运算速度跟不上游戏指令,画面会跳帧,彻底毁掉玩家的游戏体验。计算能力的限制始终是游戏制作中最令人头痛的问题。此外,它跟本文提到的其他问题都有关系,从实现人工智能到创造真实的物理引擎。 现状:多核技术同时使用多个处理器或者图形处理单元来提高计算能力,可以加速游戏的运行。但是现在的程序员还没有掌握多核处理器上的编程技术——使他们无法有效地利用这项技术。(PS3的包含8个3.2GHz处理器,可惜现在很少有程序员掌握了相应的编程技术)传统的程. 阅读全文
posted @ 2007-11-04 17:04 Goncely 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 一、序言 只有人类自己才能最终解放自己!到那一天,或许,我们也失去了存在的价值。 从宇宙大爆炸到现在,无数个偶然成就了今日的人类文明,时至今日,已没有任何一种生物能够毁灭人类,除了人类自己;也没有任何一种生物能够解放自己,除了人类自己。或多或少,人类已不同程度向这两个看似截然相反的方向迈开了步伐。二、生物链的最顶端 经过亿万年的演化,人类已稳稳占据生物链的最顶端。从进化论的角度看,所有下层物种的存在都是直接或间接为上层物种服务的。可以毫不夸张地说,人类已成为所有生物的中心,其他生物存在的意义都在于人类。那么,作为生物链的顶层物种,人类存在的意义何在?毁灭自己或者解放自己!三、造物主 人类,或许 阅读全文
posted @ 2007-11-03 16:40 Goncely 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 1、libcpp中和宏相关的基础知识libcpp是gcc的C/C++语言预处理器,gcc将C/C++语言预处理器cpp以库的形式独立出来,故取名曰libcpp。libcpp的输出为预处理标记cpp_token序列,为了实现回退机制、预处理指令处理和宏扩展,libcpp分三层输出预处理标记cpp_token序列:a)_cpp_lex_direct:这是预处理标记序列输出的第一层,它直接对程序文件进行词法分析,不处理任何预处理指令,也不提供回退功能,它反映的是真实的程序文本;b)cpp_lex_token:第二层在第一层的基础上实现了回退和预处理指令处理功能,调用这一层的用户看不到符合C/C++标 阅读全文
posted @ 2007-04-14 18:14 Goncely 阅读(465) 评论(0) 推荐(0) 编辑