Author Archives

leegoonz

Difference between Texture Array and Texture Atlas (simplified version)

在Unity 做Rendering相关优化时不得不使用TextureArray 。这是因为Unity里为了减少 DrawCall 而使用的 Batching。简单来说新画的material和Mesh种类越多,DrawCall 就会越多。但是 DrawCall 不便宜,会消耗很大的CPU性能。所以Unity 会自动进行 Batching 。使用同样的material就会自动捆绑,使用同样的Mesh也会自动捆绑。所以 Batching 跟 DrawCall 次数是一样的概念。 为了减少 Batching 的次数,减少material的方法对应的就是 TextureArray 。比这个还常用的方法是 TexutreAtlas ,但这种方法很单纯。在一张贴图上添加所有图片,修改UV的时候才会用。一般是在UI 图片上设置Sprite的时候会用到, Unity有一种把 Sprite合并在UGUI 功能上做成 TextureAtlas 的功能。但是3D 物体的UV 就不一样了。UV 坐标是 0和 1之间的值组成的,如果想把很多张贴图设置在一起的UV坐标合并在一起重新设置的话会非常麻烦。如果合并前的贴图在合并后又增加的话就更麻烦了。这样最终就成了生产效率的问题,所以会用其他方法,而这个方法就是 TextureArray 。 TextureArray的概念很简单,是把贴图按列进行捆绑,只要有Index就可以一个个参考使用。就是说跟UV的2D坐标一起,再有一个Index就可以。TextureArray的优点是,不会跟TextureAtlas一样需要一直合并和修改UV,只要根据 Mesh设置Index就可以很容易操作。而且不管贴图的数量是多少, material 可以维持一个的状态所以很便捷。但是要用在Unity有几个缺点。因为不支持Asset生成,所以很麻烦,显示的GUI在Unity内部也是不支持的。为了使用起来方便,需要亲自编辑代码。当然直接生成也没关系,但考虑生产效率的问题就不是很好了。而且Shader代码也要亲自替换,有很多需要设置的地方。所以很贵。 现在适用到 Unity 里看下。 需要做的有三件事。 把Mesh 里的简单的2D UV坐标 换成持有(UV + Texture Index)坐标的3D坐标。 生成TextureArray并适用 在Shader […]

一个好领导需要记住的三件事。

一个好领导需要记住的三件事。 组织生活已经很长一段时间了,现在组织里比起比我职位高的人,职位低的人更多了。回头一看我经历了各种各样的负责人。也遇到过想树立为榜样的领导。通过他我要选出想当个好组长绝对不能忘记的三件事。 1. 无论何时都会信任并倾听 前组长和现在的组长都算得上是男子汉高手。年龄相近,工作经验和规模都差不多,都是在同一位领导下升到组长,谁看两个人都是比较对象的人物。但是,小辈的喜好过于明显,我认为最大的差异源于“人情的悠闲”。其中一个人总是心神不宁,总是战战兢兢地怕被别人抢走,争先恐后地想多争夺一个东西。并且不相信组员们都会做好,时不时地训斥他们,甚至连非常琐碎的小事都希望拿到报告。结果总是自己最忙,只要有任何事情在预想之外,因为一直处于紧张的状态所以会随时爆发,甚至连更细微的东西都想掌控,所以更不能放松,而且是无限循环。反之另一方同样有很多工作,但也总是有很多闲暇,对任何琐碎的小事也给予真心的关心,每次担心他忙而小心翼翼地进去讨论什么的话,我从来没有听他回答过“我忙”。总是有一起苦恼的余地,不做报告也不追究,直接结算后就过掉了。以前是为了“做报告”而去,总是堵得喘不过气来。但是实际去的时候,又因为他忙而回去的情况也很多。相反,虽然现在不要求报告,但还是会说,即使是微不足道的进展,我也会想“自发地”地分享,一起讨论。 2. 能够实际解决团队成员层面无法解决的问题 这可以是知识,专业领域的知识,也可以是公司内部人脉,或是沟通能力。我有事或遇到困难时,最先向组长跑去的理由,既不是怕以后被揭穿后会被骂,也不是为了天天发牢骚产生交情。是因为我们确信无论如何在我水平上看不到的答案,只要去组长那儿就能找到答案。当然这个方法不能不时地用。我也在各方面付出了足够的努力,从多方面想过,但在这件事还是很困难,这种时候就会坦率地征求意见,问你是怎么想的。组长是比我拥有丰富多样经验的人,所以会从综合的角度来指出我没有看到过的解决方案,或者提出我根本就不知道的解决办法,或者发挥本人的人脉通过一个电话就可以轻松解决。我当上组长的时候,能用这样的知识、眼光和人脉来解决组员们的问题吗?只能每次感叹。从他身上学到,组长不是责怪或评价的人,而是做帮助团队成员的工作,使事情顺利进行下去的人。 3. 工作追求完美,但苦劳是肯定会认可。 一般来说,追求完美工作的人眼里看到的总是微不足道的。因此,不管做什么,只要发现小小的失误、不便、错误等,就会无法忍受并责备。在所谓“成功”的领导者中这种人相当多。但是他所忽略的,是一些不足,却又能制造出的无数的血汗和努力,在缺少资源,或者紧张的日程背景下,或者支持部门的失误不配合等无法辩解的许多幕后故事。固然执着于自己完美的成果,但肯定要认可辛苦,不能忘了向辛劳致敬。作为榜样的组长,即使因为队员们的失误而被指责了,也不会像大部分的上级一样,把感情上的气球滚到下面去,而是先会这样说,然后沉着地分享情况。“我没照顾周全,是我自己的过错。” 而且不管是责骂还是责备,总之大事结束后一定会另行贺劳。所谓的“成功”或“升到高位”的人也有过这种郁闷和悲伤的经历,逐渐上升到那个位置上后,大多数人都已经看不到血汗淋漓的苦楚,这也太神奇了。在那段时间里,我曾在7个组长手下工作过,从我的角度来看,只要是上任到大企业组长的职位,总是有他的理由的。每个人的特长和优点各不相同,并且要学习的东西也都不同。总的来说,我和组长们很合得来,现在我仍然努力只吸收他们的优点。显然他们之间存在差异,我不得不拿他们作比较。我想更接近哪种类型呢?真正想成为的模范确实存在是一件好事。而且,过早就开始自以为是并给别人留下很多伤痕之前,充分地拥有这样的学习时间是一件好事。