SurfaceView游戏框架在游戏开发当中有举足轻重的地位。SurfaceHolder类是用来控制SurfaceView的大小、格式,并且主要用于监听Surface的状态。SurfaceView好像就是一块内存数据里面记录着数据,更改数据而是由SurfaceHolder来控制,使用SurfaceH...
分类:
移动开发 时间:
2014-08-26 22:54:36
阅读次数:
379
在deferred shading 和post process 阶段, 通常要做的一件事情就是讲裁减空间坐标转换到屏幕空间的纹理坐标.这里面通常的做法就是Vertex Shader 输出clip space position 到pixel shader.pixel shader 做除法,然后再 + ...
分类:
其他好文 时间:
2014-08-26 15:10:16
阅读次数:
266
文章仅记录自己的一点理解,仅供自己参考。
WindowAnimator是一个窗口动画推进类,从成员变量mAnimationRunnable可以看出来。google源码对应这个类的解释:“Singleton class that carries out the animations and Surface operations in a separate task on behalf of Win...
本系列主要参考《Unity Shaders and Effects Cookbook》一书(感谢原书作者),同时会加上一点个人理解或拓展。这里是本书所有的插图。这里是本书所需的代码和资源(当然你也可以从官网下载)。========================================== 分割线 ==========================================写在前面...
分类:
其他好文 时间:
2014-08-25 21:15:21
阅读次数:
279
最近入门学习shader,语法倒没什么,有一个奇怪的问题,如果把编译平台从pc转换为android模式的话,如果你的shader 带 Normal Mapping 的 话,效果和android上的真机不一样。 上图: google 了一下,找到了解决方案: http://forum...
分类:
移动开发 时间:
2014-08-25 20:46:34
阅读次数:
241
1.不透明度
当我们要将两个半透的纹理贴图到一个材质球上的时候就遇到混合的问题,由于前面的知识我们已经知道了片段着色器以及后面的环节的主要工作是输出颜色与深度到帧缓存中,所以两个纹理在每个像素上的颜色到底以怎样的形式混合在一起最后输出到帧缓存中是我们现在首要讨论的内容。
1.混合(blending)
上一篇文章中的管道环节中的“逐帧操作”环节中的一项操作就是混合操作,可见混合操作是不可编程的固定功能环节。
在混合操作中,我们将片段着色器中计算出来的颜色称之为 “源颜色”,帧缓存中对应的像素已经存在...
分类:
其他好文 时间:
2014-08-22 19:44:29
阅读次数:
206
经过前面的系列文章中的三个例子,尽管代码简单,但是我想应该还有些地方没有100%弄明白,我们现在得回过头来补充一些必备的数学、图形学知识
1、图形管道
第一个例子中我有提到顶点着色和片段着色在整个图形绘制过程中属于一个环节,整个过程叫做管道,这个管道的所有环节包括:
在整个管道中,只有顶点着色与片段着色是可编程的,顶点数据和帧缓存是具体的数据,剩下的环节是固定功能的环节,即不能用cg去编程的环节。
[图片]
2、数据流
[图片]...
分类:
其他好文 时间:
2014-08-22 17:54:19
阅读次数:
258
这是一种挺漂亮的曲面图形,可惜没有找到太多的相关解释.Indifferential equations, abreather surfaceis a mathematical surface relating tobreathers.其数学公式很复杂,参数方程为:where 0 <a< 1.维基的相...
分类:
其他好文 时间:
2014-08-22 12:44:16
阅读次数:
208
上篇文章中我们掌握了表面剔除和剪裁模式
这篇文章将利用这些知识实现一个简单的,但是又很常用的例子:把一张图片做成圆角矩形
例3:圆角矩形Shader
好吧我承认在做这个例子的时候走了不少弯路,由于本人对矩阵的知识掌握已经悉数还给老师,所以一开始用了一些笨办法计算圆角矩形区域。
我们知道TEXTCOORD0是一个以对象为坐标系的坐标,并且范围在该坐标的第一象限,取值为(0,0)到(1,1)
那么我们把每一张图片都看做一张1X1大小的矩形
我们要在1X1大小的矩形中擦除4个角,应该是这样:
以左上角为例,...
分类:
其他好文 时间:
2014-08-21 19:31:24
阅读次数:
278
mutil render targetPixel shder输出一个结构体Out.f4ColorOut.f4Normal这步在渲染物体的shader里在applicationsetcolortarget(surfColor,0)setcolortarget(surfNormal,1)这两步就可以 P...
分类:
其他好文 时间:
2014-08-20 15:59:12
阅读次数:
175