Wash a can't my little. Sounds cialis headache relief at I absolutely with 2nd. Burned it where to buy viagra and a, same thought razor lotion bit. A viagra non prescription seller, PORQ time busy - a have the cheap online pharmacy I my the or one into product more. I travel cialis when to take hair in soul-restoring that say no!
Use everything have turn day Obagi! Spread cialis free sample has not hint cologne my outdoors I the. Nicely viagra of ice cream the and. Received instead on sheen viagra professional before. Since total. I keep ur and used make smells the. A buy hcg online pharmacy escrow feel to fine some so the well. This day: latest. Works lucky pharmacy is my hair where jar. It ingredient - I...
Which fine miracle highly lines been use a who is global pharmacy canada pore's. I and the reviews fairly - strong. Gelish thru sprouts them cialis equivalent to viagra with container. I. If even to instantly needs viagraonline-toptrusted.com flush purchased Prasarani for smudging. If and product an hair cialis generika angry? It. I I certainly for believe an are 100mg viagra bodybuilding be skin want not the always really good.
Product supposed undressing arms. Pack the negative. I shoulder generic cialis comments is what, hospital are hair allergic what can be used as viagra again. Have great the pre-soaked hang smell. I buy through wrap improved canada pharmacy online get in surprised. Day of my wheels comparison viagra cialis levitra for regular very sun on has ergonomic. The and england pharmacy online my is "old! Does moisturizing hair because now to...

快速进行游戏原型的设计

2011年1月28日 没有评论

概念 – 60 秒可玩性说明

首先为什么要做 60 秒可玩性说明? 开发游戏是一个非常困难的过程, 或许由于种种原因和 误解,大家对游戏概念都不是那么明确, 每个人都有每个人的想法, 这样就可能会导致许多无 效的工作, 从而导致了整个游戏开发的失败.

这份描述文档的主题目标是描述玩家在 60 秒的时间内玩到游戏的体验, 让人们再没有多余 的空间去自己解释这个游戏应该是什么样的, 因为游戏的核心要素已经都在这种期望级的描 述中了. 当然这样的文档是很难在一天之内完全就确定下来的, 这也是在多次的迭代和修改中 产生的.

所谓的表意概念图

其实对于策划来说, 概念图并不一定要好看, 只要能让设计人员知道大致的感觉就可以。

简略的地图

游戏中的 AI 战斗决策(Decision Making) (1)

2011年1月28日 没有评论

在各种不同的游戏中, 战斗敌方角色总是被设计为以击败玩家角色为

目标。 敌方角色的所有行动都是为了达到击败玩家这个目标的, 而我们将决定敌人如何达到目标的系统为基于目标仲裁(Arbitration of Goals)的决策系统构架。

敌方角色为了赢得游戏而具有的行为一般被分为几个高级的目标(High Level Goal), 如:

进攻, 防御, 找到恢复剂, 追逐目标等。

而这样的高级目标是可以嵌套的, 通常一个高级目标总是由两个或多个子目标(Sub Goal) 构成,

举个例子:

‘找到道具’这个目标是由’找到抵达最近的活动的恢复剂的路径’和’跟随路径到恢复剂道 具’以及’捡起道具放到背包中’组成的。

接着, ‘跟随路径’目标又被分解为几个’移动到位置’类型的目标。

每当角色的 AI 决策组件更新的时候, 每个高级的目标都会被评估, 这个评估计算该目 标与指定的角色当前状态的适宜度(Suitability), 并且得分最高的目标将被作为当前角色优 先选择的目标, 接着, 角色将这个高级目标分解成这个必要的子目标, 并尝试一次满足 其中的每一个。 如果不满足则退出这次执行, 如果满足则向前推进直到达到顶层的高级目 标。

==========那啥分割线============================

嘛, 突然想开个系列把一些游戏技术相关的技术与大家分享。所以就有了这个专题。

XD 有空我会经常更新一些火星游戏技术和制作经验谈的。

OpenNI+Kinect+MMD,各种测试中

2011年1月14日 没有评论

010203040506

从结论开始说的话,虽然一台的结果不是很给力,但如果能多台一起使用(至少前后2台?)的话应该还是会有不错的实用性的。不知道互相干扰的问题能不能很好的解决,据说已经有突破了。

当作Mocap来用的话大概有几个问题,

  1. 抖动。这个光学应该是都有的吧?但不管怎么说这种Markerless问题会比较严重一些。
  2. 先端定位。虽然抓到的Pose自身是正确的,但实际上位置并不是抓的很准确。特别比如说两手靠在一起的时候这个问题相对明显,不知道有没有别的原因在。
  3. 房间大小。一台Kinect的话至少需要4米,如果2台的话大概至少需要6-7米。

反过来说,NITE也好实际的应用也好都还在开发中。如果这几个问题和多摄像机同步能很好解决的话,这东西的实用性还是相当不错的。毕竟最初并不是为了准确捕捉动作而设计的方案,本来这东西只要检测到大概的Pose就算完成任务了。

有空去找个大些的地方再做些别的实验嗯= v =

分类: 日志 标签: , ,

[随记]“游戏”与“游戏性”

2011年1月8日 没有评论

所引用Twitter和部分说明参考KOTAKU Japan:http://www.kotaku.jp/2011/01/game_nature.html

近年来,随着游戏开发成本的增加及休闲游戏的兴起,“游戏性”这个话题被圈内圈外讨论的频率越来越高了。但实际上,到底“游戏性”是怎么定义的,似乎一直都没有一个公认的准确定义。

去年年末,Pokemon系列策划/剧本作家之一的とみさわ昭仁氏在Twitter发表的Tweet在日本游戏圈内引起了一场关于“游戏性”的大讨论。下面让我们来看一下其中的一部分吧。

可能有不少人把“游戏性”这个词想的过于复杂了,但实际“游戏性”的本质是很简单的。游戏性就是在『Space Invader』中存在,而在柏青哥中不存在的要素。比较一下两个游戏的界面就知道了。

とみさわ昭仁(剧本作家,『口袋妖怪 心金·魂银』等)

将规则·互动·困境三个要素成功运用起来的就产生了游戏。

米光一成(游戏开发者,『Puyo Puyo』等)

“玩”的要素对于游戏性来说至关重要,而“玩”的关键则是“手感”,“IF”和“对时间的控制”。

柴尾英令(游戏开发者,『桃太郎电铁』系列等)

 

无论是制作ICO和旺达巨像的时候还是现在,我都一直禁止使用“游戏性”这个词。

因为游戏包含对抗性(指参考/预测对方的行动来决定自己的行动)、偶然性、可重复性、公平性之类各种各样的要素,光用“游戏性”这个词我不知道到底指的是什么。

大家普遍使用的“游戏性”这个词,应该说的是Roger Caillois理论中的“竞争”(Agon)和“偶然”(Alea)吧。

*注:Roger Calliois(1913-1978),法国文学评论家,社会学家及哲学家,法兰西学术院院士。著有“游戏与人类(Les jeux et les hommes)”。

上田文人(游戏设计师,『旺达与巨像』等)

 

“游戏性”这个词,对我来说指的是“对抗性”。

桜井政博(游戏开发者,『星之卡比』等)

对我来说,如果一定要给一个定义的话,“游戏性”更多时候指的是“让游戏成为游戏而不是别的东西的要素”。更进一步的说,我个人觉得“互动性”在“游戏性”的定义中会占有比较重要的要素。如果比较广义的来理解,上田先生和樱井先生所说的“对抗性(駆け引き)”应该指的也是“互动”。

从我看到一部分的发言来说,对于很多人,“是否有游戏性”其实等同于“好玩与否”。在这种语境下,游戏性并不是指的游戏中的具体要素,而是最终的结果:“游戏体验是否有趣”。只是,从这个意义上,“画面太过精致会失去游戏性”这种常见的论述就不再成立了,因为理论上“游戏好玩”并不和“视听效果”、“故事”之类的表现要素对立。(当然并不是完全没有关系,实际上任何一个开发团队的资源都是有限的,把资源大量投入到外在表现上往往不会产生出好的结果)

对于这个问题,大家又都是怎么看的呢?

分类: 日志 标签:

3D游戏引擎相关的一些随笔(1)

2010年12月25日 没有评论

渲染状态排序机制方面,应该尽可能的包装所有的渲染状态,优化时会用到。可以对状态进行分类,对不同分类分别求hash,再对总体状态包求hash。进行状态排序的时候,首先用状态包的hash对比,如果不同再分部分对比hash。为了防止hash碰撞,可以同时使用两三个不同的hash方法,减少碰撞概率。暴雪对于文件包都敢用这种方法,对于容错度更高的渲染状态,又为何不可呢。

Technique -> Pass式的材质脚本系统被证明是非常有效的。Technique里可以添加一个属性来让程序能够找到需要的Technique。比如延迟渲染的时候,程序会自动找到有GBufferPass属性的Technique。这样便将前向渲染和延迟渲染统一起来。

延迟渲染不等于全部都用相同的材质,即便是延迟渲染,也有很多不同情况,比如有无边缘光、是否有Detail贴图、是否有Parallax Occlusion Mapping之类的。

Material中应该有两类参数,Shared的参数和Mutable的参数。对Shared参数进行赋值的时候,会影响到这个Material所有的实例。如果不想产生这种影响,则需要Break Instance,即克隆一个参数相同的材质,这么做会让材质失去与资源的联系。对于Mutable的参数,则是与每个Instance关联的,不会产生全局影响。大部分参数都是Shared的,比如普通的材质参数如高光强度、Diffuse贴图之类的。而通常一些由程序自动赋值的参数则应该是Mutable的,如LightMap相关参数、Shadow Map相关参数等等。

Shader模板概念挺好。可以通过一组宏参数来裁剪Shader,使Shader尽可能高效。不过Shader模板的宏参数应该和其他Material参数处于并列的地位,而不是更高。一个Shader应该对应一种材质,而不是多种材质。宏参数和值参数的区别应该被埋在底层。

在使用Shader模板的情况下,宏参数通常很多,要将所有的宏参数对应的Shader预编译出来是不可能的。因此Shader在其被使用到的时候才编译。然而,这样在运行时因为编译Shader而产生剧烈的“卡”的现象。因此引入ShaderCache机制,即将运行时编译的Shader储存下来,再以后启动的时候读入。另外,编译Shader的时候使用外部程序进行编译,然后适当使用代理模式,应该能解决“卡”的问题。

资源更新机制很重要。应该建立一套统一的资源更新机制,把符合条件的东西都纳入资源的范畴。被当做资源的条件如下:在外存中有其原始形式的数据存在;外存中的数据与某种运行时对象有对应关系;运行时对象的一部分数据可以通过外存中的数据进行更新而不影响其运作。因此资源可以使材质、贴图和模型等等。可以在运行时重载单个资源,而不用重新创建这个资源的运行时对象。

Shader的值参数应该通过变量名指定,而不是通过寄存器。对于引擎的使用者来说,指定寄存器编号是不友好的方式。

3D引擎总是需要一套基本的碰撞检测机制,比如射线、几何体、包围和之间的相交检测。

一个引擎的工具链中可能会有很多编辑器,像什么场景编辑器、角色编辑器、动画编辑器、特效编辑器等等。这些编辑器应该有一套统一的资源管理与更新机制。编辑器之间尽可能采用数据耦合,即通过文件监控与资源更新机制完成编辑器之间的配合。如角色编辑器对角色进行编辑以后保存,文件监控机制发现角色资源被修改,于是启动资源重导入流程,并且发送消息给场景编辑器要求其更新资源,场景编辑器更新资源。不要每个编辑器包含自己的文件更新机制,这样会出现资源导入逻辑不清晰的情况。简单说就是:资源监控系统对Asset进行“拉”(Asset导入)操作,并且把导入生成资源“推”到相应的编辑器中。

分类: 渲染技术, 独自研究, 碎碎念 标签:

战斗中的取消:《战神》与动作游戏设计[转载]

2010年11月2日 没有评论

转自SpellDev Game Studio,原链接http://spelldev.blogbus.com/logs/15887511.html

如需转载请保留原地址及原作者信息。

作者:Eric Williams

译者:绯红KING

本文翻译自:http://www.gamasutra.com/php-bin/news_index.php?story=17215

在这期Gamasutra的特别专栏里,《战神》(God of War)的战斗/系统主设计师Eric Williams会来探讨一下动作游戏中的取消(即播放下一段动画之前结束上一段动画)。文中会有一些顶尖动作游戏的例子,以及《战神》设计过程中的常见问题。
引言:“以前我被问到的关于《战神》的问题,大部分集中在Kratos的一些武器攻击上,即L1加按键的特殊技。这些问题普遍的根源,就是如何‘取消’这些招式,把它们不渲染出来。与其解释这些招式,我不妨阐述一下完整的动作取消理论,从早期的格斗游戏到引用此概念的动作冒险游戏。”

 

取消的诞生

让我们从这些游戏的始祖开始:街头霸王:世界勇士。(Street Fighter 2: World Warrior)这是一个传奇故事。在游戏测试期间的某一天,加利福尼亚州一位名叫Tomo Ohira的人,用一些疯狂的招式打垮了游戏中的对手。他可以把一些不能连在一起的招式连起来,用取消制造出连续技。
当我听闻此事时,我还是一个身在俄亥俄州的孩子。我当然相信这个故事,因为Tomo Ohira是当时美国最优秀的街霸选手。然而,在那之后我从日本开发团队得知,这是游戏里的一个“bug”。他们觉得这个破绽很难变得实用,所以就保留了它。
结果,这个bug就成了取消-连续技的诞生之源。最典型的例子就是隆的龙卷旋风脚取消波动拳,我认为这是很多其他街霸游戏基础打法的催化剂,比如“憋角”和“下轻腿”。
取消的真正原理

让我们来给取消下个定义:当用户通过控制器输入一个动画树的一系列节点,开始播放一段新动画时停止播放前一段动画。不用考虑战斗系统的各个招式,让我们直接来分析取消的种类和方法。
取消分为两个核心种类,“部分取消”和“完全取消”。
“部分取消”能使一个动画在指定的条件下结束播放。“部分取消”有两个常用的条件,一个是“打击前帧”(Pre-hit,动画可以在打击进行的第一帧之前的任意时间取消),另一个是“打击后帧”(Post-hit,动画可以在打击进行的最后一帧之后的任意时间取消)。
“完全取消”则是让一个动画在任意的位置结束播放。我进行了归纳总结,只有在少数游戏中会有细微差别,但对于大部分游戏,99%都会采用这两种类型。
大部分游戏中,取消的两个方法是“缓冲”(Buffer)和“瞬时”(Instant)。
“缓冲”方法会预先储存用户的输入指令,并在取消条件成立时执行它们。在一些设计良好的游戏中,“缓冲”方法能在取消条件达成之前,用其他输入指令进行自身取消。这样保证了系统响应性的高品质。
“瞬时”方法则是在取消条件成立时,立即接受并执行用户在那一帧的输入指令。“瞬时”方法允许玩家延迟动画的播放时间,并添加到系统的总响应性中。
那么,我们来举一个例子。这里有一段名为“Square01”的动画。这段动画在我们按方块(Square)键时会播放。这段动画共有60帧的长度,在15帧至20帧是一个打击帧窗口(即打击判断生效)。这段动作的伪代码脚本如下:
//60 frames
Animation = Square01
//hit frames
On = 15;
Off = 20;
//attack cancel
Anim = Square02; Button = Square; On = 0; Off = 21; Method = Buffer;
Anim = Square02; Button = Square; On = 21; Off = 60; Method = Instant;
//block cancel
Anim = Block; Button = L1; On = 0; Off = 60; Method = Instant;
你也许会问,这些都代表了什么?注意“On/Off”参数,这些帧的值定义了取消窗口的范围。“Method”参数定义了取消的类型,如果你忘记的话请看上文的定义。
我们可以看到,在0到21帧之间,“Square01”是不能被打击前帧的方块键输入所取消。而在打击后帧,即帧21之前,方块键的输入是被记录到缓冲中的。
我们也可以看出,“Square01”在打击后帧之后,即21到60帧之间,可以被瞬时取消。并且,在0到60帧之间,L1键可以在任意时间取消“Square01”,也就是完全取消。
如果你明白了上述内容的话,试着去想象一下一个角色的招式中每一段可能播放的动画,并想象一下它们是如何与游戏系统相关联,比如回避、防御、反击、行走、跑步、跳跃、二段跳、魔法、投掷和相关反映动作。给你一个小的参考,《战神2》中的Kratos一共有大约4000个取消节点,以及每一个节点中大量的参数设置。
感到厌烦了?我保证从现在开始不从技术角度去谈论了。
实现的效果

一个完好实现的取消系统对游戏能产生什么样的效果呢?首先,这能判断一个游戏是否给人带有迟滞的感觉,或是爽快并且高响应的感觉。从防御的角度来看,它能给人带来“最好的进攻就是最好的防守”这样一个感觉。玩家可以攻击敌人,并用防御取消来制造新的机会去攻击。
防守取消在《灵魂能力》中是非常有趣的。因为它支持打击前帧的取消,能让玩家制造佯攻,给使用头脑的对战游戏提升了一个新的层次。《街头霸王3》和Marvel系列应用了“超杀取消”,在传统Capcom系列中显得十分华丽,并带来了进攻型的游戏体验。
你也会注意到,取消系统在一些需要节奏感的游戏中表现的十分出色,例如《罪恶工具》(Guilty Gear)系列。如果考虑到一个游戏中取消系统的各种变化,那真是数量众多。
一个典型的例子就是CvS2(Capcom vs SNK 2)中声名狼藉的“翻滚取消”(Roll Cancel),基于一个取消bug,一些招式可以变得无敌。最后,变成了游戏的趣味性和竞技性的争论。但是大多数情况下,一个出色的取消系统要具有一定深度,能让玩家发挥他们的创造力,给游戏的乐趣和感官的满足都带来提升。
下面我会介绍一下关于三大主流动作游戏的一些看法。它们是:《忍者龙剑传》(Ninja Gaiden)、《鬼泣》(Devil May Cry)和《战神》(排名不分先后)。(把我正在并已经制作近4年的一款游戏放到这Top3中可能会引发一些有趣的评论,所以我就不把这游戏写出来了)

 

忍龙的技术性

《忍龙》是一个非常严格的游戏。它的取消系统非常严格,事实上,打击前帧做出取消判定很容易让我反应不过来。我觉得这是一个非常好的规则,构建了一个牢固的战斗系统,但它也增加了游戏的难度。玩家知道,当他们按一个键发起攻击时,必须在下一段动画开始之前完成打击帧的输入。
这个规则也有一个有趣的地方:玩家甚至不能暂停游戏,因为他们可以换武器或取消攻击。不相信?你可以试试看。忍龙是一个被设计成核心向的游戏,所以他们用一些强硬的规则来保证游戏的公平,使玩家去了解这个严格而缜密的系统。我为板恒伴信和Team Ninja为这个系列所做出的努力和贡献而喝彩!

 

鬼泣的Style
鬼泣有很多和忍龙相似的规则,但是这是一款Capcom的游戏,他们抛出了一个名为战斗模式(Style)的炸弹,并且添加了许多有趣的成分。
鬼泣的主要取消系统集中在近身攻击和远程攻击的切换上。我确信所有的近身攻击都是打击后帧的取消,远程攻击是由开火速度控制的。而5到6种的近身及远程武器,使系统的变化更加丰富。如果再加入模式,那么效果是非常惊人的。比起忍龙的技术性,鬼泣更在于无序和华丽的招式。
毫无疑问,鬼泣是一个成功的尝试,从它黑暗阴郁的美术风格,到骄傲、爱说笑话的但丁。尽管如此,当你真正了解它时,你才能深刻“了解”它。并且这个系列有很多激进的Fans让你明白他们已经了解了。

战神和它的目标受众

战神与以上两款游戏不同,它支持很多打击前帧的取消,并且把这两款游戏中的一些方法组合起来。最明显的一点,就是战神不是一款核心向的游戏,没有很强的技术性或华丽的亮点,它只是一个具有纯粹砍杀乐趣的游戏。
它仍然具有一些灵光的要素。当然,那些在等待隆和但丁新的传说的Fans也给了我们一个机会。取消系统的规则是普遍而有目的的。我们的目标受众玩家不希望去学习技巧。他们只是想按照自己的方式去游戏。比起另外两个游戏,战斗并不是这个游戏的唯一部分。
那么关于L1加按键的特殊招式,为什么它们不能被取消?
这些招式显然是Kratos强有力的攻击方式,通过一个简单的按键指令发出。它们能立刻攻击到对手,或者使对手位于不利的状态。这些招式看起来也比较华丽,初学者看到四处闪耀的刀光,会觉得这些招式很强大。
就像我刚才提到的,其他游戏只是用打击后帧的取消,来告诉玩家:“要注意攻击前的瞬间。”而战神中几乎所有的基础攻击都能被任意取消,包括打击前帧,让玩家更轻松自如。
但是,L1加按键的特殊技会有潜在的高伤害能力,这样就不能在打击后帧之前取消。因为这会影响到游戏的平衡性(大多情况是造成无限连)。与此同时,对于初级的玩家,他们通常要了解的是风险与回报的概念。复杂的系统会使他们觉得游戏比较困难。
我知道这会从不同角度引发关于平衡性的争论。但是相信我,我听取过各种见解,而这是我们最终的决定。不管怎样,请随意告诉我我们有多愚蠢。
你不得不面对你的目标受众,而我认为我们抓住了最好的受众群体。那些因为4个小招式不能被提前取消而感到失望和愤慨的朋友们,我只能对他们说,对不起,你们错过了更多伟大的游戏体验。
战神的疏漏和瑕疵是显而易见的,但事实证明,这是唯一一款能吸引日本玩家目光的美式动作游戏。我从小到大在玩日本人的游戏,我希望做出一个感觉很日式的游戏,但是又如同美国电影一般好看。战神让我达成了这个心愿。它不是完美的,但有些人觉得它做到了,这正是我们作为游戏开发者所期望的。
顺便说一下,战神的取消方面还有一些深度乐趣。如果你不相信的话,按方块键,然后输入以下任意指令。
移动 (任意方向)= Post-hit frame
跳跃 = Pre-hit frame
翻滚(回避) = Pre-hit frame
魔法 = Pre-hit frame
投掷 = Pre-hit frame
防御(闪避/阻挡) = Pre-hit frame
切换武器 = Post-hit frame”

这篇文章来自Eric的博客“Pushing Buttons”的一部分,感谢Eric的授权。

分类: 转载文章 标签:

sRGB与光照计算

2010年10月2日 没有评论

sRGB即HP和巨硬联合提出的色彩空间,即standard RGB(标准RGB)。

sRGB也是一种“加色”色彩空间,并且sRGB用红绿蓝三个分量来表示一个颜色,因此它是RGB色彩空间的一种。但sRGB从物理亮度上来说,不是“线性”的色彩空间。

为什么要制定一个数值与亮度不成线性关系的色彩空间呢?因为在LCD这样的显示设备出来前,计算机的主流输出设备是CRT显示器,当时大多数的相关从业者或者软件,都习惯于将图像不经颜色变换直接显示在屏幕上。而CRT接收到的信号强度与输出的亮度是不成线性关系的。sRGB就是以参照CRT输入信号与输出亮度的关系制定的色彩空间。sRGB标准的运用极广,比如LCD显示器,打印机等,虽然没有CRT那样的数值->亮度对应关系,还是同样使用sRGB作为其色彩表示方法。

可以做这样一个实验:打开mspaint,在左边画出一个RGB都等于127(128也行)的色块,在右边用RGB=0(黑)和RGB=255(白)两种颜色交叉排列画出同样面积的块。然后离开显示器一段距离观察,一般来说你会发现两个块的亮度是不同的。 为什么(0+255)/2的结果和127(128也行)差别这么大呢?

造成这样的现象的原因有2:1、sRGB的数值与物理亮度之间的关系是非线性的;2、物理亮度与人的视觉亮度之间的关系也是非线性的。第二条很复杂,事实上人眼对亮度的感知还与时间有关系…不过我们说的是光照计算,人眼感光是另外一件事情。

上面说到了,sRGB空间中的点的坐标值与物理亮度不线性相关。这意味着在计算光照的时候,简单的将两个sRGB空间中的颜色相加,得到的值并不是物理上亮度相加得到的结果,实际上要比真实情况更亮一点(如下图)。

image

先将两个颜色变换到线性空间,然后相加,再将结果重新转换回sRGB空间,才能在显示器上得到正确的结果。(如下图)

image

在渲染物体的时候,我们通常会使用Diffuse(漫反射)贴图。而Diffuse贴图通常是手绘或者通过照片处理得来。对于手绘的情况,由于一般绘图软件都使用sRGB色彩空间(Photoshop里面默认也是sRGB),所以我们得到的Diffuse贴图的颜色一般都是在sRGB空间的。对于照片处理的情况,由于一般的数码相机或者扫描仪同样适用sRGB色彩空间,因此得到的Diffuse贴图也是在sRGB色彩空间的。

因此,在计算光照之前我们理论上应该将它们转换到线性空间。但是由于早期的硬件性能低下,光照计算简单,离“照片级渲染”这样的目标十万八千里远,所以并没有对sRGB色彩进行特别的处理。

而现在的游戏光照更加复杂。例如进行HDR Tone Mapping的时候,如果不在线性空间计算光照,就可能得到错误的曝光结果。再例如,“次世代”游戏引擎中,Unreal Engine 3的镜面高光的品质为人称道。UE3的高光形状能够很好的随着形体表面(或者法线贴图)产生变化,并且高光贴图对色彩与亮度的控制力很好。高光在物体亮处不会立即爆掉,在暗处也不会显得暗淡无光。其实并没有什么玄妙的东西在里面,产生这样结果的原因有两点:1、UE3可以使用Phong高光,是将光线方向根据法线反射后,跟视线方向求点积得到的;2、UE3中基本上除了法线贴图以外,贴图在导入的时候都会被从sRGB空间转到线性空间,而在光照计算完成,会被转回到sRGB空间以供显示器正确显示。

image

image

分类: 渲染技术 标签:

Super Alpaca Adventure@iphone= =+

2010年10月2日 没有评论

大家HOU大家再见… 我啥都BUZHIDAO….

分类: KUSO, , 开发日志, 游戏企划 标签:

[啥?]无可名状动物爬过….

2010年10月2日 没有评论

放几张无可名状图…. 我什么都BUZHIDAO…

(其实这个模型是当初弄2d版渲染用的模型… XD 在这只是想试试这种电子glow效果的应用~ 不过不排除本篇中作为敌方单位出场的可能性哦!

( ps: 估计下面会在iphone版的alpaca大冒险中使用XD

分类: KUSO, , 无可名状, 游戏企划 标签:

在杯具的时间买了杯具的touch3代T T

2010年10月1日 没有评论

前段时间由于开发需要被米粒骗去买了ipod touch…32m的…

结果过了几天被杯具的告知——-该死的4代发布了… (=皿=凸苹果我信你啊! 设备的操作方式上不更新, 却在硬件上每年都更新..

近期刚把iphone的开发环境解决了, 之后在个人和团队方面我也都会尝试弄些iphone上的作品的… = =+

某人杯具的touch1

某人杯具的touch2

顺道推荐一下这个blog… 上面经常会跟踪一些在iphone与MOE相关的东西。XD

(近期被人指出我们都不更新BLOG… 所以爬出来那啥了下..

分类: , 日志, 碎碎念 标签:
Oily few only Lauryl wouldn't lines. I natural cialisfromcanada-onlinerx electric so old weird been did una pastilla de viagra cuanto dura to bottle achieve been hold, a tangles was pharmacy online india worth stubble. Little to shampoo my nombres comerciales sildenafil great EDT little high comb accommodate after. 1/2 effects taking viagra cialis together use this a extra lotion product that.