在上一个例子中,我们得到了由mesh组件传递的信息经过数学转换至合适的颜色区间以颜色的形式着色到物体上。这篇文章将要在此基础上研究片段的擦除(discarding fragments)和前面剪裁、后面剪裁(front face culling and back face culling)来达到透明效果。
当一个mesh组件的信息被传递后,我们可以通过代码决定哪些部分渲染(render)出来,而哪些部分不要,这个过程就像把那些不要的部分剔除了,我们看不到他,虽然他的mesh信息还在,但是我们的GPU不会去处理...
分类:
其他好文 时间:
2014-08-19 19:03:25
阅读次数:
304
上一篇文章的例子中我们可以看到顶点着色器的输出参数可以说是直接作为了片段着色器的形参传递过来,那么不由得一个问题浮现出来,顶点着色器的形参是从何处传递过来的?
顶点着色器的形参是gameObject 的meshRenderer组件将所有的mesh数据按每一帧一次传递给OpenGL。
这中间的过程常常被称作一次draw call,往往一次性传输大量mesh信息作为一次draw call 比多次传输少量mesh信息引起多次draw call更加效率。
而在上一个例子中我们只接受了MeshRenderer传递...
分类:
其他好文 时间:
2014-08-19 16:31:04
阅读次数:
212
1. vertex shader 和 fragment shader 通过varying变量传递数据, 如下代码在编译fragment shader时候会提示编译错误vertex shaderFragment shader varying vec4 v_color; ...
分类:
其他好文 时间:
2014-08-19 00:59:03
阅读次数:
355
锚点在ios中见到的地方不多,大部分用在动画中。
今天看到一个动画,上面都是关于锚点的,锚点这个概念在两年前看cocos2d得基本概念时接触过,当时没怎么看,今天看到了,就在好好的学一下。
看了一篇blog,是关于锚点的,就借鉴一些上面的图像:
cocos2d里采用OpenGL ES坐标系,坐标原点在屏幕左下角。而ios采用的是Quartz 2D坐标系,坐标原点在屏幕左上角。
在coc...
分类:
移动开发 时间:
2014-08-18 23:38:43
阅读次数:
308
前提知识点:
1.CG代码必须用
CGPROGRAM
。。。
ENDCG括起来
2.顶点着色器与片段着色器的主函数名称可随意,但需要再#pragma vert 与#pragma fragment中声明并且与主函数名完全匹配,shader才会找到入口
3.float4是一种压缩数组,float4 vert与float vert[4]严格意义上讲不同,虽然都是存放4个float,但float4作为向量类型做点乘、内积等处理更快速
4.语义 :变量除了变量名与数据类型之外,还在:后声明其语义
例子一:RGB立方体...
分类:
其他好文 时间:
2014-08-18 20:32:52
阅读次数:
231
在Linux下做Qt开发,结果运行程序的时候提示找不到GL/gl.h文件,所以只能先把OpenGL库安装上去,不知道这样操作对不对,以后再考虑吧,下面开始安装1、查看mesa相关的包yum list mesa*2、安装这些包yum install mesa*安装完成后,我们就拥有了一个基础的Open...
分类:
其他好文 时间:
2014-08-18 20:07:02
阅读次数:
523
【OpenGL位图函数】1、OpenGL中glBitmap用于绘制一个二值阵列。 When drawn, the bitmap is positioned relative to the current raster position, and framebuffer pixels corre...
分类:
其他好文 时间:
2014-08-17 21:11:32
阅读次数:
368
【GL_LINES】 独立的线段,下式中,p2与p3间没有连线。 【GL_LINE_STRIP】 连续的线段,下式中, p2与p3会连成线段。 【GL_LINE_LOOP】 参考:《计算机图形学》3.4 OpenGL画线函数。
分类:
其他好文 时间:
2014-08-17 13:01:12
阅读次数:
830
总结:要逆一个程序必须清楚地知道程序的结构和常用的API函数,不清楚一个程序而去逆出结果是不可能滴 首先是glsl脚本运行的全过程,第一步是为shader的运行创建一个容器GLuint glCreateProgram(void),第二步是把编译好的shader附加到程序void glAttachSh...
分类:
移动开发 时间:
2014-08-16 00:56:09
阅读次数:
429
个人原创,欢迎转载,转载请注明原文地址http://blog.csdn.net/bill_man上一篇介绍了QUAD_COMMAND渲染命令,顺带介绍了VAO和VBO,这一篇介绍批处理渲染命令BatchCommand,批处理命令的处理在Render中比较简单else if(commandType == RenderCommand::Type:: BATCH_COMMAND)
{
//将之...
分类:
其他好文 时间:
2014-08-15 21:10:49
阅读次数:
236