- 博客(9)
- 收藏
- 关注
原创 webgl——VAO
上次说到了对VAO、VBO的理解,明白了使用VAO相比传统模式在IO方面对加载性能的提升,今天我对其在WebGL上进行了实现。 在WebGL中由于很多API与OpenGLES大为不同(一般常用的API大致是相同的),开始时费了很多劲,最后还是通过MSDN找到了相关的API及方法,这里对设计VAO的主要的部分进行介绍,对VAO还不是很理解的同学可以看这篇文章:http://blog
2017-07-27 15:08:10 1695
原创 JS概念理解(四)——闭包
闭包: 闭包的使用场景:我们设想这样一个场景,一款FPS游戏,玩家携带的子弹上限是一定的,这时为了能在别的地方修改弹药数量,就需要将弹药数量定义为一个全局变量,然而这样不利于控制,如果不小心把它改成-1了呢?所以我们这是就需要使用闭包来就行改变和查询弹药数:function 枪械() { var 弹药数量 = 30; window.射击 = fun
2017-07-23 20:32:05 260
原创 JS概念理解(三)——执行上下文、作用域与自由变量
执行上下文: 在我的理解中,执行上下文环境是在开始执行代码之前,需要把所有用到的东西拿出来,有的直接赋值,有的先声明出来,下面举例说明;
2017-07-23 15:40:31 537
原创 JS概念理解(二)——this
this在JS中经常出现并使用,其中this所取的值是当函数被调用执行时才可以确定,定义时还无法确定。因为this取值关乎执行上下文环境,每次调用时可能都不一样,下面介绍this的几种取值情况: 构造函数: 当this出现在构造函数中时,它代表的就是即将创建出的这个对象。function People() { this.name = "srk";
2017-07-22 20:43:48 347
原创 JS概念理解(一)——函数和对象、原型链、_proto_
最近发现自己JS的基础不太好,于是通过看书和大神的博客,通过自己的理解将一些难懂的概念在此总结: 1.函数和对象的关系: 在JavaScript中一切对象都是通过函数创建的,某些情况下的写法实际上是一种语法糖:var a = {b : 20, c: 30};var arr = [ 5 , "as", true];//可以写成var a = new
2017-07-21 20:43:15 677
原创 对OpenGLES中VBO与VAO的理解
在OpenGLES中,VBO与VAO都是一个重要的概念,以前也在书上看到过这些概念,在有了自己的理解之后对其做以总结。 VBO的全称 Vertex Buffer Object顶点缓冲区对象,这是在Opengles2.0以后一个可使用的功能。如果不使用VBO则是将顶点、纹理坐标等数据存放在内存当中,在每次绘制之前通过通IO将其传递到显存当中,这样做的缺点是显而易见的,每次传递相同的
2017-07-11 20:53:12 2414
原创 对OpenGLES2.0渲染管线的理解
在学习OpenGLES时,每一本书开始都会向我们介绍渲染管线,当我在开始学习它时,看这些东西完全不明白在说什么,经过一段时间对3D程序的开发和研究现在对渲染管线也有了一些自己的理解。由于WebGL是基于OpenGLES2.0实现的一套JavaScript封装API(其中也有一些特有的部分),那么就先聊聊我对OpenGLES2.0渲染管线的理解吧。
2017-07-11 11:03:31 1695
原创 webgl--平面阴影效果
在特定的3D场景中,阴影效果有时还是显得十分重要的,在一般的3D引擎当中设置阴影可以直接通过对物体设置属性来实现,十分的方便,这里我们就用webgl来实现一下平面效果。 平面阴影是通过灯光将物体的阴影投射在一个平面内,但是物体之间没有阴影的叠加,也就是说A物体的阴影不会投射到B物体上,在本案例中我们主要是通过着色器来实现平面阴影的效果的,这里首先介绍一下平面阴影的计算公式:
2017-07-04 10:45:21 1168
转载 OpenGL ES着色器语言之内建函数
OpenGL ES着色语言为标量和向量操作定义了一套内建便利函数。有些内建函数可以用在多个类型的着色器中,有些是针对固定硬件的,所以这部分只能用在某个特定的着色器上。 内建函数基本上可以分为一下三类:(1)它们使用一些简便的方式提供必要的硬件功能,如材质贴图。这些函数单独通过着色器是无法模拟出来的。(2)它们展示了一些可以常简单的写入的繁琐操作(clamp, m
2017-07-01 10:49:56 679
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人