摘要: ActiveObject模式:ActiveObject模式和Command模式的配合使用是实现多线程控制的一项古老的技术,该模式有多种使用方式,为许多工业系统提供了一个简单的多任务核心。// 活动对象的工具类,封装添加命令的方法以及运行方法class ActiveObjectEngine{ ArrayList itsCommands = new ArrayList(); // 添加命令 // public void AddCommand(Command c) { itsCommands.Add(c); } // 运行命令,并且移除 // ... 阅读全文
posted @ 2013-10-10 17:15 martianzone 阅读(1518) 评论(0) 推荐(0) 编辑
摘要: Command定义 将来自客户端的请求传入一个对象,无需了解这个请求激活的 动作或有关接受这个请求的处理细节。这是一种两台机器之间通讯联系性质的模式,类似传统过程语 言的 CallBack功能。优点: 解耦了发送者和接受者之间联系。 发送者调用一个操作,接受者接受请求执行相应的动作,因为使用Command模式解耦,发送者无需知道接受者任何接口。不少Command模式的代码都是针对图形界面的,它实际就是菜单命令,我们在一个下拉菜单选择一个命令时,然后会执行一些动作.将这些命令封装成在一个类中,然后用户(调用者)再对这个类进行操作,这就是Command模式,换句话说,本来用户(调用者)是直接调.. 阅读全文
posted @ 2013-10-10 14:39 martianzone 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 1、C#接口的作用:C#接口是一个让很多初学C#者容易迷糊的东西,用起来好像很简单,定义接口,里面包含方法,但没有方法具体实现的代码,然后在继承该接口的类里面要实现接口的所有方法的代码,但没有真正认识到接口的作用的时候就觉得用接口是多此一举,当然你这样想那是绝对绝对错误的,比尔盖茨的微软请的员工都是比盖茨还聪明的人,他们的C#能添这样的多足吗?!关于接口的作用,网上有一位就真的深入浅出给我们做了很好理解的分析。我们定义一个接口public interface IBark{ void Bark();}再定义一个类,继承于IBark,并且必需实现其中的Bark()方法public class Do 阅读全文
posted @ 2013-10-09 16:18 martianzone 阅读(253) 评论(0) 推荐(0) 编辑
摘要: Fallback定义在所有子着色器后。简单来说,它表示"如果没有任何子着色器能被运行在当前硬件上,请尝试使用降级着色器"。Syntax 语法Fallback"name"退回到给定名称的着色器Fallback Off显式声明没有fallback并且不会打印任何警告,甚至没有子着色器会被运行Details 细节Fallback标志的功能和将另一个着色器的所有子着色器拷贝到标志所在位置所起的功能相同Example 示例Shader "example" { // properties and subshaders here... // 属性和 阅读全文
posted @ 2013-10-09 11:12 martianzone 阅读(2816) 评论(0) 推荐(0) 编辑
摘要: (一)UsePass 命令 使用 来自另一个着色器的命名通道。Syntax 语法UsePass"Shader/Name"插入所有来自给定着色器中的给定名字的通道。Shader/Name包含了通过斜杠字符分割的着色器的名字和通道的名字某些着色器重用其他着色器中已存在的通道,减少重复的代码。例如,在许多像素光照着色器中,阴影色或顶点光照通道在在相应的顶点光照着色器中是相同的。UsePass命令只是包含了另一个着色器的给定通道。例如当如下的命令可以使用内置的高光着色器中的名叫"Base"的通道:UsePass "Specular/BASE" 阅读全文
posted @ 2013-10-09 11:04 martianzone 阅读(1983) 评论(0) 推荐(0) 编辑
摘要: Pass Tags通过使用tags来告诉渲染引擎在什么时候该如何渲染他们所期望的效果。Syntax 语法Tags {"TagName1" = "Value1" "TagName2" = "Value2"}指定TagName1 的值为 Value1 ,TagName2 的值为 Value2 你可以指定很多你喜欢的标签Details 细节标签基本上是键-值对的形式。 内部的Pass 标签用来控制光照管道(环境光照,顶点关照和像素光照)中pass 的任务和一些其它选项。注意以下的标签必须在pass段内部,而不是在SubS 阅读全文
posted @ 2013-09-30 15:49 martianzone 阅读(3107) 评论(0) 推荐(0) 编辑
摘要: 混合被用于制作透明物体。当图像被渲染时,所有着色器被执行以后,所有贴图被应用后,像素将被写到屏幕。他们是如何通过Blend命令的控制和已有的图像合并呢?Syntax 语法Blend OffTurn off blending关闭混合BlendSrcFactor DstFactor配置并启动混合。产生的颜色被乘以SrcFactor. 已存在于屏幕的颜色乘以DstFactor,并且两者将被叠加在一起。BlendSrcFactor DstFactor,SrcFactorA DstFactorA同上,但是使用不同的要素来混合alpha通道BlendOpMin | Max | Sub | RevSub不是 阅读全文
posted @ 2013-09-29 15:33 martianzone 阅读(2610) 评论(0) 推荐(0) 编辑
摘要: 透明度测试是阻止像素被写到屏幕的最后机会。在最终渲染出的颜色被计算出来之后,可选择通过将颜色的透明度值和一个固定值比较。如果比较的结果失败,像素将不会被写到显示输出中。Syntax 语法AlphaTestOff渲染所有像素(缺省)AlphaTestcomparison AlphaValue设定透明度测试只渲染在某一确定范围内的透明度值的像素。Comparison 对照表比较下列词语:GreaterOnly render pixels whose alpha is greater thanAlphaValue.大于GEqualOnly render pixels whose alpha is g 阅读全文
posted @ 2013-09-29 14:49 martianzone 阅读(850) 评论(0) 推荐(0) 编辑
摘要: 雾参数用于雾命令控制。雾化是通过混合已生成的像素的颜色和基于到镜头的距离来确定的一个不变色来完成。雾化不会改变已经混合的像素的透明度值,只是改变RGB值。Syntax 语法Fog{Fog Commands}Specify fog commands inside curly braces.在大括号中设定雾命令的内容ModeOff | Global | Linear | Exp | Exp2定义雾模式。缺省是全局的,依据雾在渲染设定中是否打开确定可从无变化到平方值ColorColorValue设定雾的颜色DensityFloatValue以指数的方式 设定 雾的密度RangeFloatValue, 阅读全文
posted @ 2013-09-29 13:54 martianzone 阅读(984) 评论(0) 推荐(0) 编辑
摘要: 纹理在基本的顶点光照被计算后被应用。在着色器中通过SetTexture 命令来完成。SetTexture 命令在片面程序被使用时不会生效;这种模式下像素操作被完全描述在着色器中。材质贴图可以用来做老风格的混合器效果。你能在一个通道中使用多个SetTexture 命令 - 所有纹理被顺序的应用,如同绘画程序中的层一样。SetTexture 命令必须放置在通道的末尾。Syntax 语法SetTexture[TexturePropertyName]{Texture Block}分配一个纹理,TextureName必须定义为一个纹理属性。如何应用纹理被定义在TextrueBlock中纹理块控制纹理如何 阅读全文
posted @ 2013-09-29 12:03 martianzone 阅读(845) 评论(0) 推荐(0) 编辑