孤海傲月

导航

上一页 1 2 3 4 5 6 7 ··· 11 下一页

2018年8月9日

图片Alpha预乘的作用[转]

摘要: Premultiplied Alpha 这个概念做游戏开发的人都不会不知道。Xcode 的工程选项里有一项 Compress PNG Files,会对 PNG 进行 Premultiplied Alpha,Texture Packer 中也有Premultiplied Alpha 的选项。那么问题来 阅读全文

posted @ 2018-08-09 13:50 孤海傲月 阅读(6829) 评论(0) 推荐(1) 编辑

Alpha预乘-混合与不混合[转]

摘要: 作者:John McDonald,于2013年1月31日上午07:57发布 标签: GameWorks专家开发人员 Alpha Blending几乎是每个3D应用程序的一小部分,但却很重要。从概念上讲,alpha混合用于传达表面的透明度。通常,消费者应用程序(游戏)倾向于使用RGB来传达下层表面的颜 阅读全文

posted @ 2018-08-09 13:37 孤海傲月 阅读(2025) 评论(0) 推荐(0) 编辑

2018年8月3日

cocos源码分析--ClippingNode绘图原理

摘要: 在OpenGL 绘制过程中,与帧缓冲有关的是模版,深度测试,混合操作。模版测试使应用程序可以定义一个遮罩,在遮罩内的片段将被保留或者丢弃,在遮罩外的片段操作行为则相反。深度测试用来剔除那些被场景遮挡的片段,但是对于透明物体可能有问题,需要注意绘制顺序,本文主要结合ClippingNode分析下模版测 阅读全文

posted @ 2018-08-03 16:54 孤海傲月 阅读(1280) 评论(0) 推荐(0) 编辑

OpenGL模版小案例分析

摘要: 下面的案例通过模版实现三角形截取的功能,代码如下: 运行程序,发现什么也没绘制 然后把标红的屏蔽代码打开,运行,绘制如图所示: 分析原因: 大部分代码都有注释,简单说一下: 通过上面代码的运行,_mask_layer_le的二进制数最终为00000011,也就是绘制的时候,模版缓冲区的每一像素点的值 阅读全文

posted @ 2018-08-03 15:03 孤海傲月 阅读(242) 评论(0) 推荐(0) 编辑

2018年7月17日

OpenGL中移动单位中的‘单位’指什么

摘要: opengl 比如 用到glm::translate(x,y,z) 表示 移动x,y,z个单位, 那么这个这个单位是指什么呢?这里的单位不是指像素,是根据投影矩阵的变化而变化的,默认情况下投影矩阵Projection是单位矩阵,那么 宽和高的屏幕范围为 (-1.0f,1.0f),0.0表示的是屏幕的 阅读全文

posted @ 2018-07-17 17:59 孤海傲月 阅读(621) 评论(0) 推荐(0) 编辑

2018年7月8日

cocos源码分析--RenderTexture

摘要: cocos中RenderTexture主要用来实现截屏,然后把截取出来的图片保存到磁盘中,除了保存图片和渲染纹理,它还可以得到一些预渲染结果,并将这些结果作为一种纹理数据。 例如我们可以用RGB5_A1的纹理格式来保存一些Alpha值,这些Alpha值表示一种类型的蒙版,它们可以作为多重纹理数据被用 阅读全文

posted @ 2018-07-08 15:29 孤海傲月 阅读(4963) 评论(0) 推荐(1) 编辑

2018年6月27日

cocos源码分析--用Sprite加载自定义着色器

摘要: 本文写一个使用动态更新属性变量的自定义着色器。在这个例子中,小图标的位置根据手指的触摸而移动,以屏幕重点为参照物,屏幕中向下的部分根据手指的点击乘以一个绿色的颜色值,向上的部分乘以一个红色的颜色值。 可以把计算过程分为三个步骤 1 利用手指的点击计算出小图标当前的位置,并将位置传入到顶点着色器中,因 阅读全文

posted @ 2018-06-27 13:55 孤海傲月 阅读(741) 评论(0) 推荐(1) 编辑

2018年6月20日

cocos源码分析--Sprite绘图原理

摘要: 精灵是2D游戏中最重要的元素,可以用来构成游戏中的元素,如人物,建筑等,用Sprite类表示,他将一张纹理的一部分或者全部矩形区域绘制到屏幕上。我们可以使用精灵表来减少OpenGL ES 绘制的次数,可以使用Sprite来播放动画,也可以设置Sprite的颜色,与场景中其他元素的混合模式等。另外一些 阅读全文

posted @ 2018-06-20 11:37 孤海傲月 阅读(1133) 评论(0) 推荐(1) 编辑

2018年6月19日

cocos源码分析--SpriteBatchNode绘图原理

摘要: SpriteBatchNode继承Node,并实现了TextureProtocol接口,重写了Node的addChild()方法,visit()方法以及draw()方法。 addChild()方法限制其子元素只能是Sprite, 并且子元素与SpriteBatchNode必须使用同一个Texture 阅读全文

posted @ 2018-06-19 17:47 孤海傲月 阅读(677) 评论(0) 推荐(0) 编辑

cocos源码分析--绘制顺序LocalZOrder、GlobalZOrder、OrderOfArrival

摘要: 使用规则 节点的渲染顺序跟节点的三个成员变量有关(_localZOrder、_globalZOrder、_orderOfArrival)分别对应三个设置函数setLocalZOrder、setGlobalZOrder、setOrderOfArrival。无论是_localZOrder、_global 阅读全文

posted @ 2018-06-19 16:45 孤海傲月 阅读(1047) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 ··· 11 下一页