拿来主义往往束缚人们对新事物的研究与发现 - 记于 OpenGLES 模型移动研究过程中的感悟

本文主要是介绍拿来主义往往束缚人们对新事物的研究与发现 - 记于 OpenGLES 模型移动研究过程中的感悟,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

拿来主义往往束缚人们对新事物的研究与发现 - 记于 OpenGLES 模型移动研究过程中的感悟

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino否则,出自本博客的文章拒绝转载或再转载,谢谢合作。

OpenGLES 在 iOS 上的研究工作已经持续近 7 个月了,中间发布的体验版本不下十几个,每一个版本都保留着,这是研究过程中的里程碑,也是本人在 OpenGLES 方面成长的见证。

有人说,结婚拍婚纱照没啥用,明明订的一两千的套系,拍完一选片儿,居然加到五七八千去了,更是不值。

其实,就拍与不拍这个事情来说,本人的观点是,一定要拍,真正看的时侯,并不多,比如俺家的,已经忘记压在哪个柜子下面了,但至少存在着,就是一个见证。

然后,预算的超支,那个就因人而异了,有的人,对这种见证,更要求细致,总是怕漏下某一个细节;而有的人天生记性好,比如老一辈人,结婚就一张大像框照片,就解决一辈子的问题,和和睦睦,白头到老。

至于我,总是爱把关键时刻的照片留下来,留做纪念。而到现在,人生经历过的事情,崎岖坎坷、春风得意,从我一身的病,就足以记得很深了,至于照片,真心没那个必要。

话题扯得有些远了,不过还是老话常谈,博客就是我对技术研究历程中,自已觉得很回味的,即使很熟了,还要研究上几回的,倍感亲切,确实值得记录一下。

然而,有些时侯,确流于形式,随波逐流,丧失自我,这是最让我无法忍受的,出现这样的状况,我就会像写什么云笔记...一样,好几个笔记应用,最终都变成了储物柜,和婚纱照一样,成了压箱底儿的东西了。

感觉博客也一样,真心要甩掉那些个东西,才会让我有兴趣写下去。

在我看来,博客有几个作用:

1、记录当时研究的灵感和场景,一是下回这个技术会用,或这个问题会解决;二也是最重要的,思考问题的方式;

2、博客文章,不光是给别人看的,最重要是给自已看的,反复看过后,才知道哪些思路还有不足,哪些可以进行扩展,正所谓书读百遍,其意自现,自个儿做过的事情,反复过几遍电影之后,不明白的部分,自然流露出来,无需花太多脑汁去想为什么,自然就知道了。

3、最后一点,就是通过之前的总结记录,会不自然的有机结合出新的东西来,比如新的方案,更重要的是思考问题的维度增加了,思维面儿要广了,解决问题的适应性就更强了。


回归主题,这么长时间以来,写有关 OpenGLES 的博文,总是小心翼翼的,生怕哪里写得不对,一是误人子弟,二是没脸儿。

然而正是这种心态,博文中总是缺少一些大胆的总结,致使无法自然地总结形成新的思维模式,一大损失!

再有,评论功能,之前我是关闭着的,后来打开了,确实想得到高人的指点、帮助,然而,收效甚微,还是主动出击有效果,尤其从老外的博文中,能找到独到的,浅显的观点。


一直以来,没有对 OpenGLES 的各个部分做总结,一是工作时间紧,没有那个精力;二是总感觉没到那个层次,没有发言权;

其实两者都错了,工作紧,孰不知,总结之后,虽然占用了些工作时间,但这是为了更好地工作,提高工作效率,磨刀不误砍材工,就是这个道理;

至于没有发言权,只是个借口,可能更想把现成的东西发给别人看,然而,别人真的不一定吃得下,而研究过程中的点滴感悟才是别人灵感的来源,也是自已需要的进一步研究的基石,对自已其实也一样。


最后,其实就是那么一个事儿,OpenGLES 模型的移动,真的不用笨笨地去重建修正以达到挪那么大的顶点数据的目的;

有一点可别忘了,OpenGLES 2.0 是可编程管线,这意味着,每一个模型的顶点坐标都是要传递给着着器,进行相应加工,才最终交给 GPU 去渲染生成画面的,那么,只要能识别出是哪一个模型,是否对该模型做某些操作,这完全可以在着急器中进行处理,或者换一个着色器进行处理。

同时,涉及另一个关题,那就是空间转换,矩阵.......的应用,这些个 3D数学计算,着实有些迷糊,上次也是到某大学,在图书馆里搜索到了几个桌上有这方面书的同学帮助解决的,虽然他们不懂 3D 数学,但至少我分解后的内容,都是基础的,他们很在行的。

这也是俺一直没有去想的部分,着色器和渲染程序始终用一个,拿来主义,不求甚解,害人非浅。

直到目前,这个问题无法解决时,才下定决心,重新思考,进度已经无法保证,无从谈起的时侯,才会想起先保证可行,否则就一直爬在别人的后背上,以便轻松地,快捷地过河,这就是病根儿。


一年多来,完全“掌握”了现有工作环境中的这种工作和思维方式,之前也想过要放下,拿起以前的自已的方式,但大环境下,无法改变。

惯性使然,人也只有在逼到没路可走时,才会想起来,是不是应该重新选择,或者遇到叉路口的时侯就应该去考虑一下,哪一条路通达彼岸的可能性更大,如果连这都不舍得花时间去思考,甚至认为这是一种浪费,那么困境 就在不远的将来了。(刚想起来那句:人无远虑,必有近忧!意思是,你不想远点,当远点时间成为近前时,你就会因为没有提早考虑到,而出现忧愁烦恼。)


说了这么多,要表达的意思,我是明白了,不过看客们是否明白,那就得看你是否有此经历了,现今的行业大气侯下,敏捷被当作招魂牌,只是用于更深层次地剥夺些什么的工具,好像看不明白上面这些话的同行们,少之又少。


真正的敏捷,其中缊藏着一个较深的度的问题,切不可完全由成本来控制,就像敏捷开发所讲的,信任第一,否则,你失去的不光是效率,更重要的还有潜能。

这效率本身就涉及成本,无法达到开发本身自然趋速的效率,本身成本就大大增加;

而潜能,则是活生生地被限制住了,开发人员本身有心想,也无力去使这个劲儿出来。


接下来,向着“空间转换”再一次开炮!!!



这篇关于拿来主义往往束缚人们对新事物的研究与发现 - 记于 OpenGLES 模型移动研究过程中的感悟的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/584884

相关文章

将Mybatis升级为Mybatis-Plus的详细过程

《将Mybatis升级为Mybatis-Plus的详细过程》本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现... 目录说明流程增加依赖修改配置文件注释掉MyBATisConfig里面的Bean代码生成使用IDEA生

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

SpringCloud之consul服务注册与发现、配置管理、配置持久化方式

《SpringCloud之consul服务注册与发现、配置管理、配置持久化方式》:本文主要介绍SpringCloud之consul服务注册与发现、配置管理、配置持久化方式,具有很好的参考价值,希望... 目录前言一、consul是什么?二、安装运行consul三、使用1、服务发现2、配置管理四、数据持久化总

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

Oracle存储过程里操作BLOB的字节数据的办法

《Oracle存储过程里操作BLOB的字节数据的办法》该篇文章介绍了如何在Oracle存储过程中操作BLOB的字节数据,作者研究了如何获取BLOB的字节长度、如何使用DBMS_LOB包进行BLOB操作... 目录一、缘由二、办法2.1 基本操作2.2 DBMS_LOB包2.3 字节级操作与RAW数据类型2.

C#原型模式之如何通过克隆对象来优化创建过程

《C#原型模式之如何通过克隆对象来优化创建过程》原型模式是一种创建型设计模式,通过克隆现有对象来创建新对象,避免重复的创建成本和复杂的初始化过程,它适用于对象创建过程复杂、需要大量相似对象或避免重复初... 目录什么是原型模式?原型模式的工作原理C#中如何实现原型模式?1. 定义原型接口2. 实现原型接口3