拿来主义往往束缚人们对新事物的研究与发现 - 记于 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

相关文章

pycharm远程连接服务器运行pytorch的过程详解

《pycharm远程连接服务器运行pytorch的过程详解》:本文主要介绍在Linux环境下使用Anaconda管理不同版本的Python环境,并通过PyCharm远程连接服务器来运行PyTorc... 目录linux部署pytorch背景介绍Anaconda安装Linux安装pytorch虚拟环境安装cu

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

SpringBoot项目注入 traceId 追踪整个请求的日志链路(过程详解)

《SpringBoot项目注入traceId追踪整个请求的日志链路(过程详解)》本文介绍了如何在单体SpringBoot项目中通过手动实现过滤器或拦截器来注入traceId,以追踪整个请求的日志链... SpringBoot项目注入 traceId 来追踪整个请求的日志链路,有了 traceId, 我们在排

Spring Boot 3 整合 Spring Cloud Gateway实践过程

《SpringBoot3整合SpringCloudGateway实践过程》本文介绍了如何使用SpringCloudAlibaba2023.0.0.0版本构建一个微服务网关,包括统一路由、限... 目录引子为什么需要微服务网关实践1.统一路由2.限流防刷3.登录鉴权小结引子当前微服务架构已成为中大型系统的标

Python重命名文件并移动到对应文件夹

《Python重命名文件并移动到对应文件夹》在日常的文件管理和处理过程中,我们可能会遇到需要将文件整理到不同文件夹中的需求,下面我们就来看看如何使用Python实现重命名文件并移动到对应文件夹吧... 目录检查并删除空文件夹1. 基本需求2. 实现代码解析3. 代码解释4. 代码执行结果5. 总结方法补充在

Java中对象的创建和销毁过程详析

《Java中对象的创建和销毁过程详析》:本文主要介绍Java中对象的创建和销毁过程,对象的创建过程包括类加载检查、内存分配、初始化零值内存、设置对象头和执行init方法,对象的销毁过程由垃圾回收机... 目录前言对象的创建过程1. 类加载检查2China编程. 分配内存3. 初始化零值4. 设置对象头5. 执行

SpringBoot整合easy-es的详细过程

《SpringBoot整合easy-es的详细过程》本文介绍了EasyES,一个基于Elasticsearch的ORM框架,旨在简化开发流程并提高效率,EasyES支持SpringBoot框架,并提供... 目录一、easy-es简介二、实现基于Spring Boot框架的应用程序代码1.添加相关依赖2.添

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景