OpenGLES 与 WebGL 中顶点属性的组织格式的误解 - 一个不好笑的笑话
OpenGLES 与 WebGL 中顶点属性的组织格式的误解 - 一个不好笑的笑话
太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es)
本文遵循“署名-非商业用途-保持一致”创作公用协议
WebGL 中立方体顶点坐标数组:
vertices = [
// Front face
-3.0, -3.0, 3.0,
3.0, -3.0, 3.0,
3.0, 3.0, 3.0,
-3.0, 3.0, 3.0,
// Back face
-3.0, -3.0, -3.0,
-3.0, 3.0, -3.0,
3.0, 3.0, -3.0,
3.0, -3.0, -3.0,
// Top face
-3.0, 3.0, -3.0,
-3.0, 3.0, 3.0,
3.0, 3.0, 3.0,
3.0, 3.0, -3.0,
// Bottom face
-3.0, -3.0, -3.0,
3.0, -3.0, -3.0,
3.0, -3.0, 3.0,
-3.0, -3.0, 3.0,
// Right face
3.0, -3.0, -3.0,
3.0, 3.0, -3.0,
3.0, 3.0, 3.0,
3.0, -3.0, 3.0,
// Left face
-3.0, -3.0, -3.0,
-3.0, -3.0, 3.0,
-3.0, 3.0, 3.0,
-3.0, 3.0, -3.0,
];
WebGL 中立方体面顶点坐标索引数组:
var cubeVertexIndices = [
0, 1, 2, 0, 2, 3, // Front face
4, 5, 6, 4, 6, 7, // Back face
8, 9, 10, 8, 10, 11, // Top face
12, 13, 14, 12, 14, 15, // Bottom face
16, 17, 18, 16, 18, 19, // Right face
20, 21, 22, 20, 22, 23 // Left face
];
iOS 中与上面的区别:
一是顶点坐标数组中有反复的三角形顶点组合;
二是面顶点坐标数组中仅是顶点坐标,未提供该点取纹理像素的坐标,也未提供灯光照耀到该到上时光线反射计算的法线坐标;只是。WebGL 中分别提供了两个与顶点坐标数组相应的数组,分别相应顶点坐标数组中每一个顶点坐标配对的纹理坐标和法线坐标;
茫然一阵后。放下,再捡起来,从稍外一层来看这个问题。
首先,对于使用顶点索引式绘制时,实际绘制是从面顶点索引缓存中来找绘制顺序。而顶点坐标缓存仅仅是一个容器,并不决定顺序;
其次。使用顶点索引缓存的目的。就是避勉反复的顶点坐标存于缓存中,而代以坐标的索引的反复,大幅度减少了对 GPU 内存的占用;
最后,事实上这是一个别人的測试代码,顶点坐标数组之所以那样存储,一是针对不使用索引方式绘制时使用,这叫做复用吗?哈哈,看您怎么理解了,方便呗,至少原作者很的清楚当中的执行机理,所以敢于这样来写,以简化其測试的目的,这也给俺设了个难题。也正由于这个难题。让我深入理解了一些东西。
二是,我好像看到它是用的四个点来表示一个未使用索引方式绘制的面?有木有?俺未做过 OpenGL 的四边形的东东。不太好说。行家们可能看得出来吧。至少不是 OpenGLES 的。这个在我了解的范围人,俺敢肯定!
但,您别忘了。俺了解的范围。俺都不知道多还是少,所以您就别肯定了。还是再咨询下室外高人吧。
笑话讲完了,事实上真的不好笑,只是俺刚明确的时侯。确实大气不出,小气不断地哼了几声,出人意料到是。元芳,你怎么看?有木有!
OpenGLES 与 WebGL 中顶点属性的组织格式的误解 - 一个不好笑的笑话的更多相关文章
- 41-ssm中对象查找正确但是没有将数据库中某个属性值赋给对象的一个成员变量
原因: 变量名虽然与 数据库字段一致,但是 包含下划线,如: a_b,数据库确实也是a_b: 但是ssm开启驼峰命名了,就要将变量名改为 aB , 驼峰命名就可以了.
- [WebGL入门]十二,模型数据和顶点属性
注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中假设有我的额外说明,我会加上[lufy:].另外.鄙人webgl研究还不够深入,一些专业词语.假设翻译有误.欢迎大家指 ...
- WebGL中的OpenGL着色器语言
在webgl中,调用了OpenGL-ES-2.0的API,而在OpenGL-ES专为嵌入式设备设计,其和其它设备一样,都是使用GLSL(GL Shading Language)来编写片段程序并执行于G ...
- 【GISER&&Painter】Chapter02:WebGL中的模型视图变换
上一节我们提到了如何在一张画布上画一个简单几何图形,通过创建画布,获取WebGLRendering上下文,创建一个简单的着色器,然后将一些顶点数据绑定到gl的Buffer中,最后通过绑定buffer数 ...
- Spring 配置文件中 元素 属性 说明
<beans /> 元素 该元素是根元素.<bean /> 元素的属性 default-init // 是否开启懒加载.默认为 false default-dependency ...
- webGl中实现clipplane
webGl中实现clipplane 参考:调用glClipPlane()函数所执行的裁剪是在视觉坐标中完成的,而不是在裁剪坐标中进行的https://blog.csdn.net/shengwenj/a ...
- Html5 中获取镜像图像 - 解决 WebGL 中纹理倒置问题
Html5 中获取镜像图像 - 解决 WebGL 中纹理倒置问题 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致& ...
- IE9对HTML5中一部分属性不提供支持的原因
为什么在IE9中对于HTML5标准中的离线应用程序以及CSS3中的一部分不提供支持?笔者间接了解到了这个原因. 微软日前已经发布了Internet Explorer 9(以下简称IE9)正式版.在该版 ...
- Opengl_入门学习分享和记录_03_渲染管线(二)再谈顶点着色器以及顶点属性以及属性链接
---恢复内容开始--- 写在前面的废话:岂可修!感觉最近好忙啊,本来今天还有同学约我出去玩的.(小声bb) 正文开始:之前已经编译好的着色器中还有一些问题,比如 layout(location=0) ...
随机推荐
- MySQL Workbench关键字转成小写设置
- 【spring boot】10.spring boot下的单元测试
spring boot下的单元测试,思前想后还是需要单独用一章篇幅来看看. 然后在看了介绍和使用时候,我感觉并不想多去看了. 但是还是给后来人留下参考的路径: 官网说明:https://spring. ...
- hbase安装配置
环境准备 Java HDFS zookeeper SSH,NTP时间同步 系统调优,这个可以等安装完后改,文件打开数(ulimit和nproc) 修改Hadoop HDFS Datanode同时处理文 ...
- opencv-2.4.11编译备忘
编译完成后,想测试example中例子,但是由于没有sudo权限,不能运行pkg-config查看opencv的--cflags和--libs. 记录一下,备忘: pkg-config --libs ...
- unity3D中使用Socket进行数据通信(一)
公司今年3D产品的工作中心主要集中在提高产品深度上,通过对竞争产品的分析,发现我们的缺陷在于多人在线与后台管理部分,多人在线使用unity自带的Network能够搞定,后台部分前段时间主要研究了下Sq ...
- 手机APP自动化持续集成方案
自动化测试流程 自动化测试框架
- Python标准库:1. 介绍
标准库包括了几种不同类型的库. 首先是那些核心语言的数据类型库,比方数字和列表相关的库.在核心语言手冊里仅仅是描写叙述数字和列表的编写方式,以及它的排列,而未定义它的语义. 换一句话说,核心语言手冊仅 ...
- C/C++中作用域详解(转)
作用域规则告诉我们一个变量的有效范围,它在哪儿创建,在哪儿销毁(也就是说超出了作用域).变量的有效作用域从它的定义点开始,到和定义变量之前最邻近的开括号配对的第一个闭括号.也就是说,作用域由变量所在的 ...
- MySQL之慢查询-删除慢查询日志
一.环境 OS:CentOS release 5.8(64位) DB:MySQL5.5.17 二.操作 直接通过命令 rm -f 删除了慢查询日志 三.出现故障 慢查询日志没有自己主 ...
- Windows:小技巧
点击右键,选择打开方式的时候,列表修改:单击“开始→运行”,输入Regedit,打开注册表编辑器,定位到如下分支: HKEY_CURRENT_USER\Software\ Microsoft\Wind ...