无法从&php quot 转换;方法组&php quot 转换; 转换为&php quot 转换;UnityAction&php quot 转换;

习近平改革方法论:用&督察&&督&出改革实效
【学习进行时】习近平总书记日前在主持召开中央全面深化改革领导小组第34次会议时强调,督察是抓落实的重要手段,各地区各部门要把抓改革落实摆到重要位置,投入更多精力抓督察问效。全面深化改革大幕开启以来,习总书记就一直高度重视督察工作。为何督察工作对于推进全面深化改革如此重要?为何习总书记在这次会议上专门强调抓督察?各地各部门又该如何用好督察手段促进改革落实?今天,新华社《学习进行时》原创品牌栏目“讲习所”推出《习近平改革方法论·用“督察”“督”出改革实效》,为您解读。
习近平总书记近日在中央全面深化改革领导小组第34次会议上强调,要通过抓好改革督察促进改革落实。
在中央深改组已经召开的34次会议的消息中,“督察”一词共出现了69次,而2016年以来的15次会议就出现了44次,可见中央对于改革督察越来越重视。而“实效”二字,正是习总书记如此高度强调抓改革督察工作的要义所在。
全面深化改革推进到今天,抓落实的要求越来越突出。作为推进改革落实的重要举措和机制,改革督察工作同样需要进一步加大力度。正如习近平总书记所强调的,督察是抓落实的重要手段。各地区各部门要把抓改革落实摆到重要位置,投入更多精力抓督察问效,加强和改进督察工作,拓展督察工作广度和深度,点面结合,多管齐下,提高发现问题、解决问题的实效。
如何才能通过督察工作“督”出改革的实效?
关键在于做好“三个善于”。
其一,善于统筹点面“督”出改革实效。督察工作要根据全面深化改革推进的进程“与时俱进”,改革越到了着力抓落实的阶段,督察工作也就越需要在“督”落实上加大力度。一方面,要继续抓好重点改革方案的落实情况,尤其是一些核心的改革方案落实情况要紧抓不放;另一方面,也要督察改革的机制建设、工作部署、推进力度等面上的情况。这就要把抓重点改革任务和抓面上改革工作结合起来。尤其是抓面上的改革工作,就是要通过督察看一看推动改革的动力是不是存在不足、推进改革落实的机制是不是不够健全、完成改革落实的各项任务是不是不折不扣等,尤其是要督察各地区各部门贯彻落实党中央改革部署的情况,看看有没有共性的问题,怎么解决这些问题。
另外,督察也要注重树正面典型。既要举鞭子,也要有正向激励。一个成功的改革案例,其示范带动作用往往胜于一堆文件,要及时发现总结基层创新举措和鲜活经验,加以推广,激励带动更多的地方、单位推动改革落地见效。
其二,善于抓住问题“督”出改革实效。发现问题、解决问题是督察工作的重点。抓不到问题、停留于形式,改革督察也就成了走过场。怎么发现问题、解决问题?督察和改革一样,也要注意方法。首先,就是要深入实际、深入基层。全面深化改革推进以来,督察工作取得了较好的成效,形成了一些有效的机制,同时也出现了一些问题,比如有些地方开展督察工作“听听汇报、收收材料”就算完事,搞一些“来料加工”式的改革督察,这显然不符合要求。抓改革督察,不仅要掌握面上的情况,也需要扎扎实实地深入实际、深入基层,一竿子插到底,直至探到真问题、找到真方法,真正“督”出改革的实效。其次,要做好“回头看”。推进改革的过程,就是一个不断遇到问题、解决问题的过程,尤其是很多问题会相继出现、重复出现,很难“毕其功于一役”地解决。因此,做好“回头看”,一是要看看此前遇到的问题是否彻底化解了、是否出现“死灰复燃”,二就是要看看解决了旧的问题是否又出现了新的问题,以此不断地发现问题、解决问题,为推动改革落实“保驾护航”。再次,要列出问题和责任清单。从各地各部门的实践看,一些抓改革成效显著的地方和部门,工作都做得非常细:对督察发现的问题,明确责任人、明确分工、明确落实的时间表,就像建立改革督察落实情况的台账,把任务细化到人头。这样,成效自然就会更好。与此同时,改革督察工作,也要学会举一反三、由点及面,既看看在同一个地方类似的问题有没有,也看看此一处出现的问题在其他地方其他部门是否也存在,通过这样的方式统筹把握,从面上推动一并解决。
其三,善于盯住责任主体“督”出改革实效。目前,从中央到各地方各部门,自上而下推进改革督察的工作大格局已经形成,建立了有效的机制。现在,就是要使之形成合力,形成既能各司其职又能相互配合的有效架构。这就需要进一步明确责任和任务。
谁是责任主体?此次中央深改组会议也明确指出了,牵头部门和地方是抓改革的责任主体。这个责任主体,既是抓改革推进落实的责任主体,也是抓改革督察的责任主体。所以,作为最清楚方方面面情况的牵头部门和地方,就要担负起这个双重责任,统筹好各方面的工作,既要一抓到底、负责到底,也要加强改革自查和督察,要定期跟踪并报告改革落实情况。为什么很多改革中出现的问题不能及时处置?一个重要原因就在于没有及时发现,没有及时向上级部门乃至中央报告,延误了应对、调整的时机。因此,作为责任主体,改革督察工作不能到了一定阶段才来一次“总攻”,平时则轻描淡写,而是需要作为一项日常工作来开展,形成常态机制,对改革进程中出现的问题及时预警、及时亮红灯,这样才能起到预警监督的作用。
当然,抓改革督察,既要充分发挥自身的力量,也要合理地调动群众、媒体等多方力量,形成内外监督的合力,促使改革收到更好的实效。
一分部署,九分落实。全面深化改革推进到今天,愈加需要在抓改革落实上投入更多的精力,这个时候,各地各部门尤其需要以钉钉子精神把改革督察作为经常性工作长期抓下去,抓铁有痕、踏石留印,真正让改革部署结出更多让人民群众有满满获得感的果实。
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点有&颜&又有&力&!专为90后设计的运动型轿车
本人90后小伙一枚,虽然不敢说多么时尚,但是也是有一颗年轻闷骚的心的!,年轻人买车第一肯定要颜值犀利,动力一点要强,就像别人说的,动力就像存在银行里的钱,没必要天天拿出来显摆,但是一定要有,工作多年,攒了一些钱,再加上工作闲暇之余在一个微信公众号(钱途大道)上玩玩小投资 一个月也能赚个千把块,油钱是来了 父母已经给买了房,所以就决定买车了。 预计买个十万左右的车,买车的目的主要是自用,所以也没考虑的太多但是一定要有感觉买个十来万的就差不多了,太便宜的不值当,太贵的买了也没什么意义!
中间选车的经历很简单:什么马3、卡罗拉、速腾、思域等等等等。经过在一系列的对比之后,发现思域的优势很大,首先说空间,思域的轴距和卡罗拉、马3持平,但优于速腾,这代表思域空间很不错;还有动力,十代思域的发动机是177马力,是这几款中最高的;最重要的是,思域的配置在这些车中是最丰富的,包括自动驻车、全LED大灯、倒车影像等等,别人有的它基本都有,别人没有的,它也有,性价比非常的高!所以决定重点考察这款车了。
之后去4S店进行了试驾,感觉无论是动力还是操控都非常的不错!所以试驾完之后,当场就订了车。中间经过几周的等待(新车上市就是这样,供不应求),终于4S店来电话告诉车到了。提车的前天晚上没睡好觉,第二天顶着两个黑眼圈就去提车了。
中间经历一系列手续什么的,这里就不多说了,顺利的把车提回了家。下面简单说一下驾驶感受吧!首先起步没有前窜的感觉,开起来之后感觉动力平稳顺畅,而且加速度时能感受到背推感。虽然只是1.5T,但是中段加速能力依然非常优秀,所以日常超车并线完全不是问题。思域的操控感觉也很好,方向盘指向非常精准,而且没什么虚位,所以开车的时候,对方向的掌控可以非常的精准、线性和流畅。而且思域装配有弯道扭力智能分配系统,所以在过弯时非常的灵活。感觉非常的好。该说的都说完了,下面正式放图!!!
这台车可以说征服了我所有的需求:符合年轻人的所有购车需求。
年轻人买车无非是帅一点、快一点、大一点、个性一点、省一点。十代思域可以说在对年轻人的需求把控上是无敌的,与其说最满意的一点,不如说是思域是台最能抓住客户需求的车,我相信这肯定是本田做了大量市场调研实现的。所以,对十代思域最满意的一点就是,它是思域,Civic X。
接受一台车,就要接受他的缺点:如果非要鸡蛋里挑骨头,那就挑好了~离地间隙对我个人来说有些低,105的满载最低间隙,5个人后确实很不自在。为什么会说不自在,是因为自己知道离地间隙很低,无法让小车在路上跑起来,处处都要小心提防,苦有一身劲儿无处释放的感觉,感觉好尴尬啊。哈哈哈。
不缺面子,和李子:从不对轰大的车空间有任何质疑,当外观和空间发生冲突时,轰大总是能给人奇迹,这奇迹也发生在十代思域身上,溜背造型和后部空间的反差,别不信,不信进来坐坐!还有随处可见的储物空间,没人不说好的,谁说车好看就要牺牲空间!靓≠胸小! 不能说是随叫随到,基本是随叫。。随到:这种体验只有在大脚油门时才有,一般D档不会太夸张,可以说是从容不迫,也可以说是淡定的让人害怕。每次红绿灯起步,对我这个新手来说,都能第一个冲出去,过线基本在40-50左右的速度了,回头看,很多车才刚刚起步(新手,没有抢灯)。再说下开出去之后的稳定感受,实在找不出形容词,反正就是很容易让人超速就对了,速度稳步上升的让人觉察不出,相信有很多人都和我有同样的感受,起步后很快就能到50左右,随后60,随后70,随后超速???
稳重的方向盘手感:说不出操控的感觉,只是看了别人发的视频,200多的时速躲车竟然没事???希望各位不要做出以上危险动作,希望“操控”不要被动触发。说一点自己开起来的感受,自动档低速收油时有轻微顿挫,偶发。方向盘指向精准,但也有时不时变沉的情况。这些都是小问题,总结两个字:好开!
尴尬的油耗:目前新车跑了1800公里,差不多10个油,没上过高速,纯市区代步了,红绿灯频繁,再加上我们大洛阳最拥堵的路段,相信我以后可以把分跑下去的。发现CVT在起步和低速跟车时很废油。所以对新手来说跟车最难,废油是自然的,没出新手村的我油耗参考价值不大,当然,对于新手来说如果和我开的差不多,路况又差不多,那就握手吧!
不按套路出牌的底盘和隔音:都知道本田的操行:硬、吵。十代思域不一样,不硬,不吵。坐过高7,NVH比高7不差,坐过威郎,后排韧劲儿比威郎不弱。当然,打开窗户就是另一个世界,这套静音胎不如换名字叫认路胎,在特别好的路面上真的一点声音都没有,差劲一点的就像突然把声音从0开到了80~胎噪大的堪比XRV(对不住XRV了)。
有驾驶欲望的外观:动感,感动,有个性!试问,年轻人谁会不喜欢十代思域的外形。历代思域外观都走在车市最前沿,十代更胜!外观不做过多点评,有人说,有的车内饰会让人有开他的冲动,我想说,思域的外观也有同样的效果。
年轻的内饰设计:科技感十足,液晶仪表盘,超炫点火仪表画面,带呼吸灯的无钥匙启动,悬浮式安卓平板电脑,除了门板和座椅是布的,其他能接触到的地方都是软性材质的塑料,相比同价位的日系车,确实很凉心,用料也很足。
需求、产品、价位契合的一台车:13.99万的价位,给到6气囊、胎压监测、日行灯、大屏、电动后视镜调节、双区自动空调、ESP、1.5T涡轮增压车,还有什么好说的~对比好了!性价比:性能超强,8秒以内的百公里加速成绩;价格公道,15万以内落地首选、必选、唯一可选;比?随便比!
最后的一些话:提车两个月,1900公里的里程很少,没什么好的经验和大家分享,说一下遇到的问题吧:1、目前遇到冷车启动有“嘎”一声的情况,偶发,不到1秒,热车没遇到过;2、方向盘偶有变沉的情况,我知道速度快时会变沉,但有时候慢速也会变沉,沉是比神车方向盘还沉,有阻力感,不过现在已经适应了这个感觉,开朋友的408已经觉得像玩具了;3、DA屏重启过一次。有遇到以上问题的车友可以一起分享下。
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
excel考试题
下载积分:2000
内容提示:excel考试题
文档格式:DOC|
浏览次数:2|
上传日期: 15:39:45|
文档星级:
全文阅读已结束,如果下载本文需要使用
 2000 积分
下载此文档
该用户还上传了这些文档
excel考试题
关注微信公众号【人物记】你一定知道&地主&任志强, 但未必知道&任小米&
MBAClub,分享传递价值
秘书微信号:iMBAClub1;QQ群:
投稿邮箱:
合作邮箱:
任志强牵头的阿拉善《任小米》公益环保行动,就有一个项目:到阿拉善做地主。每人认购一定量小米,可参加春播秋收,收获的小米归地主。
作者:陈天庸;转自:人文经济学会
为什么我们这些企业家要从五湖四海来到阿拉善沙漠?
为什么我们要成立一个阿拉善SEE生态协会?
为什么我们要参与中国治理沙尘暴的事业?
因为我们心中有希望和梦想:我们希望中国经济愈来愈发达,人民愈来愈富裕;我们希望中华大地山清水秀,一片生机勃勃……
—— 节选自《阿拉善宣言》
2016年度的阿拉善SEE会员大会,以及阿拉善SEE生态协会首次防止荒漠化国际论坛,于10月11日在阿拉善左旗召开,当天晚宴上,刘晓光、王石、韩家寰、冯仑、任志强、钱晓华几任会长都在,任志强照例唱那首《鸿雁》,但今年他换了新歌词,改为“鸿雁,向南方,相聚阿拉善农场”,内容是宣传任小米。任志强唱得明显走调,但他认真唱完,然后歉意地说,改了歌词,找不到调了。
△ 任志强:南乡子 奔远方 窗外黄沙扬帐中,群雄议规章, 剑拔弓长千声唤 ,情商。誓让荒漠飘花香,月亮照湖乡,数载重归发已霜。碧水蓝天苦思恋,相望。凝聚梦想奔远方。
第二天我们去月亮湖,参加阿拉善自然历史博物馆开馆仪式。进月亮湖需穿越15公里沙漠,只有山地越野车能进,一路颠簸,十分惊险,老会长中刘晓光、韩家寰、冯仑、任志强都去了。
任志强与现任会长钱晓华一起,忙前忙后,招呼大家,像个“闲事婆”,什么都管,任何人拉着他合影,他都配合,冷峻的脸上,还尽量挤出一些笑容,一点也不象媒体常抱怨的“他从来不笑,与人说话总是训话式的”,倒象个憨厚的邻家大叔。
第三天一早我们去收割阿拉善沙漠节水小米,这是阿拉善SEE协会的一个公益项目,鼓励当地农民种植节水小米,每斤小米可节水一吨,减少使用地下水,防止土壤荒漠化。种出的节水小米全部由阿拉善成员成立的北京维喜农业公司收购包销,维护种植者利益与种植积极者。这事主要是任志强牵头干的,农业公司还注册了个商标,就叫任小米。销售原来主要也靠在任志强的微博上打广告。他可曾是粉丝3700万的微博大咖。
任志强一大早就在月亮湖宾馆前的停车场与摆放自助早餐的圆形会议室之间转悠,招呼我们吃早餐,吃完了就上车出发。出了沙漠,我们分乘几辆大巴,去一个半小时车程外的贺兰山脚下种植节水小米农田里收割小米。我跟任志强坐在第一车的前后排座位,他象个真正的生产队长,关照让一个晕车的队员坐前排,一路与其他队员聊天。总有人问他房地产趋势,还能不能买房,他有问必答:买,买大城市房产。
我们一行最早到了地头。要等后面的车辆到,全体一起举行收割小米比赛活动。任志强这时完全象个地主了,起劲向队员示范收割动作,一再告诫要将割下的小米禾杆摆放整齐,不然不好捆。收割时要顺势一溜下来,不能一茬一茬割,那样割得慢。
后车迟迟未到,我们在小米地头转悠。我在“经济学家告诉你”作者群里发了几张照片,也提了一下因为任志强微博被封,目前任小米销售有点困难,去年收购的800吨小米还有450吨,今年定购包销的任小米产量预计也超700吨,请大家能否帮助销售。
群里经济学家们对老任都很钦佩,喜欢他能言敢言,当场有多位经济学家表示要利用自己的公号平台帮助宣传,谢作诗教授个人有个微店,平时只卖书,他听说后马上让太太在微店里,开卖任小米。
人文经济学会秘书长周克成让我向老任转达人文经济学会对他的谢意,近年来茅于轼先生牵头的天则所与人文经济学会,经费来源减少,任志强曾动员一些企业家,为天则所与人文经济学会捐助。
我也是人文经济学会荣誉理事,我们内心对老任都很感激。我向他转达人文经济学会对他的谢意后,他微微笑一下,又恢复了他那付忧国忧民的脸色,淡淡说:“听说捐了几万,没多少。”
后车队员到了,收割小米比赛开始。按各人分到的丝带颜色分组,分九个组。我分到小粉红色丝带,恰与任志强同为第一组。收割比赛开始,各队找自己责任田在哪,忙乱了好一阵,笑语喧哗。接着大家就铆着劲力争上游了。
我跟老任并排割,开始我割四排小米,沙漠节水小米种植密度远小于水稻,所以收割起来没有割稻那么顺畅。老任割得很快,论年龄他是老大,但干起活来,比我们一般人都身手矫健,很快他就割到我们前头了。我暗暗佩服,也不甘落后,奋起追赶。
我旁边是二组的地,二组年轻人没干过这种农活,贪快,时不时留下一二排没割,结果我从开始割四排,到后来变成了割六排,就更难追上了。好在干活的人多,几个年轻人从另一头向我们这边收割,很快一块地就收割完了。
年轻人欢呼雀跃,争夸自己这组割得最快,任志强这时却低头一路捡散落在地里的小米穗,叫大家不要浪费,要颗粒归仓。这时的任志强,更象一个传统的老地主了。要知道当年的地主,就是农村最勤劳节俭最能干的农民。
收割完毕,二组获得冠军,每人分到了一张任小米粮票。任小米网店里,也可以线上购任小米粮票,转发给别人作礼物。发粮票这创意,也只有经历过当年吃饭要凭粮票的任志强们,才想得出。
我们干活时,地头已摆开几个大锅,用木柴烧了几大锅小米粥。任志强掌勺,给我们分粥,还动员:每人至少喝二碗。在贺兰山下金色的阳光里,凉风送爽,并不热,干完收割小米的体力活后,地头喝一碗小米粥汤,那香喷喷的味道,远胜于我在上海吃的山珍海味。我琢磨,明年我是否该带一些上海的企业家朋友,一起到阿拉善,分享一下做地主的美好滋味。
收割小米回来,我们“经济学家告诉你”微信公众号的同事,立即开了一家微店,帮助卖任小米。我们还将与人文经济学会一起,持续宣传推广阿拉善沙漠节水小米。我们既是参与公益环保事业,也是向这位可敬的师长与大哥,做人做事都特认真的地主一一任志强先生学习致敬!
(任志强牵头的阿拉善《任小米》公益环保行动,就有一个项目:到阿拉善做地主。每人认购一定量小米,可参加春播秋收,收获的小米归地主)
(作者陈天庸为阿拉善SEE会员、人文经济学会荣誉理事)
一粒米的力量
大家好,我是任小米,一个能担大任,且灰常不一样的小米!目前有很多盆友在义务的为我代言,帮我“推广”,但幸不辱命!因为大家的共同努力,因为任小米的耐旱和节水性,已为很多地区节约了许多宝贵的地下水。那么,接下来,我来具体说说自己↓↓↓
我生活在一个远离污染但极其缺水的地方,这里海拔超过1300米,地处寒暑交界带,风多,沙多,但水少,这里就是位居大内蒙的阿拉善地区。PS:其实这里还是华北地区沙尘暴的发源地之一。
我的“家长”
我是由“杂交谷子之父”--河北省张家口市农业科学院谷子研究所所长赵治海研制出来的节水谷种,我天生自带节水的能力,与阿拉善当地传统的农作物玉米相比,平均每亩可节省500立方水。
后来我在阿拉善SEE生态协会的呵护下正式在阿拉善“安家”,并且与有生态保护神之称的梭梭树配合,梭梭树负责在沙漠边缘化地带固沙,改善当地的生态,我负责刷新当地农户传统种植模式中比较费水的部分,掀起节水农业风~当地的人把我和梭梭树称为完美“CP”组合。
说起来到目前我也取得了很多不错的“成绩”,经过SEE生态协会的测算,与种植玉米相比(阿拉善农户传统的种植模式以玉米、小麦为主),任小米自2009年以来累计种植过万亩,每亩节水500方,累计实现节水超500万吨,相当于两个半昆明湖的蓄水量。
当然节水是一方面,惊喜的是随着任小米的丰收也带来了很多经济效益,也让当地的农户增加了很多收入,据测算,2015年参加种植任小米的农户户均增1.7万元,这也让我在阿拉善的根扎的越来越深。
不过回想一下,农户们初次接触我(任小米)时其实是“拒绝”的,但经过尝试后大家也被任小米突出的节水作用和增收效益所“折服”,更关键的是也引起了当地农户对“节水农业”的重视和认可,像我的伯乐——阿拉善第一个吃螃蟹的人林兴辉,现在不仅自己全身心的投入到节水农业中,就连他的两个女儿也在节水农业的道路上坚持了下来。很欣慰的说,这些对我来讲也是莫大的支持和鼓励!
当然除了这些我自己也浑身是宝!因为我生长环境的独特、光热充足也让我变得更加颗粒饱满、香味浓郁、粘糯适度、营养丰富。不过,关于小米的营养价值在此处省略一万字……童鞋们懂的~
以上就是关于我的一些介绍,说了很多,但总之,虽然我只是一粒小米,但我力量非凡能担大任,希望大家能支持我,到时候SEE将会把大家的支持反馈给当地和农户,继续用于任小米的推广种植和生态保护,让节水农业持续下去。
作者:陈天庸;来源:人文经济学会
注:MBAClub编辑转载,意在传播价值,如有版权异议,请联系编辑
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点&p&作为一名游戏音频设计师,这个问题被问到过很多次。几句话很难说清楚,正好趁这个机会写下来。希望越来越少的设计师会被问到这个问题。(FMOD、CRIWARE我都不够熟悉,以下只从Wwise的角度说。)&/p&&p&Wwise里面有很多很炫酷的功能,有些可以增强声音的交互性、有些可以提高声音的表现力、还有些可以提高设计师的工作效率。但是介绍这些功能的时候,往往被程序员一句“手游用不到这个”呛得半天说不出话。&/p&&br&&p&确实,在使用了Wwise的手游项目中,我们也仅仅使用了它很少一部分功能。但其中的一些功能,即使是对于手游来说也是绝对不可缺少的。&/p&&p&&b&1、用Event封装一切&/b&&/p&&p&对于Wwise来说,Event不只是一个AudioClip,而是&b&一个或多个&/b&Action。这个Action可以是播放、暂停、停止一个SoundObject(一个SoundObject可能是&b&多个&/b&wav文件),可以是控制某个声音插件的参数来实现某种复杂的声音效果,还可以是内部封装的某些操作,比如切换混音状态。这些Action有些只需要了解播放逻辑就可以完成,还有些必须了解数字音频技术、效果器处理、混音理论才能够完成。把这些操作全部交给程序员是不现实的。在Event封装之后,程序员只需要在正确的时机调用PostEvent就好,&b&完全不需要&/b&了解Event内部究竟发生了什么。&/p&&p&&b&2、音频工作站级别的总线控制&/b&&/p&&p&总线(bus)这个概念对于非音频专业出身的人来说可能有点陌生,这里我不打算详细的解释这个概念。我们可以直接从应用的层面来说明为什么总线对声音很重要。&/p&&p&首先,最简单的,我们希望在游戏中,音乐、音效、语音可以分别设置音量大小及开关。借助总线可以非常方便的实现这个功能。当然,即使没有总线,程序实现这个需求也不是非常复杂。&/p&&p&那么,进一步的。在游戏进行的过程中,有时会播放CutScene。很多游戏中,CutScene是通过在游戏摄像机前又盖了一层2D画面实现的。那么这个时候,有一个新的需求。如何让玩家只听到CutScene的声音,而屏蔽掉被CutScene覆盖的游戏画面中正在发出的声音?到这一步,程序就很难实现了。因为程序很难判断哪些声音是在CutScene中发出的,哪些声音是在游戏场景中发出的。而Wwise依靠总线依旧可以非常方便的实现这个需求。&/p&&p&接下来。对于声音设计师来说,声音是有优先级的,而声音的动态范围是有限的。玩家不可能听到所有的声音。Boss的技能总是要被听到,而小怪技能的声音优先级可以稍微低一些,玩家的脚步声只有在非常安静时才听得到。基于总线的混音功能可以满足这个需求。优先级高的声音在触发的时候可以动态的压掉优先级低的,使得在任何时候,玩家都能够听到设计师想让玩家听到的东西。很多缺乏混音处理的游戏,听起来杂乱无章没有重点,往往就是这里没有做好。&/p&&p&针对总线最大发音数限制,是性能优化中非常有效的一步。王者荣耀还在这个功能的基础上加上了RTPC控制,可以根据手机的性能、是否处于卡顿状态等情况动态修改限制的数量。到这一步可以说,没有中间件,是&b&绝对&/b&无法完成这些需求的。&/p&&p&&b&3、专业的音频插件&/b&&/p&&p&虽然手机性能有限,用到的效果器种类比较少,但是基础的混响及限制器还是会被用到。越来越多的专业效果器被集成在了Wwise中,一个好的效果器能够让游戏声音表现更上一层楼,而差的效果器足以毁掉设计师全部的心血。&/p&&p&除了效果器,我想重点说一下Wwise里的合成器。像饥荒这样的游戏,里面60%的声音可以通过合成的手段来完成。比如说背景的风声,火燃烧的声音,采集的Whoosh声。(虽然饥荒本身可能并不是这么做的。)声音合成相比传统的素材制作最大的优势是听感不会重复、零资源量、可以更多地和游戏中的参数联动。比如风声可以通过程序定义风速的参数从而控制风声的表现,这个风速还可以影响游戏中树的摇摆,使美术和声音的体验更统一。&/p&&p&相比数字音频工作站中的音频插件,Wwise内集成的插件可以获得更强的交互性。所有插件的参数都可以根据游戏中正在发生的事件平滑的更改。&/p&&p&想要了解更多可以参考Wwise官网。&/p&&a href=&//link.zhihu.com/?target=https%3A//www.audiokinetic.com/products/wwise-add-ons/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Audiokinetic Plug-ins | Audiokinetic&/a&&p&&b&4、交互音乐系统、打断机制以及3D衰减&/b&&/p&&p&对于手游来说,很多地方的声音设计都有所简化。但是音乐系统和UI系统,这两者相比端游是丝毫没有简化的。交互音乐系统、打断机制、3D衰减这三个功能放在一起说,是因为&b&仅从功能上看的话,这三者交给程序实现起来难度都不大。但是其中隐藏了巨大的沟通成本&/b&。&/p&&p&A音乐到B音乐切换时要播完当前小结再切换。B音乐到C音乐要立即切换,中间要做交叉淡化,Fade In 0.3s、Fade Out 0.5s。一个RPG手游,这样的音乐切换点有几千个。这些全让程序来做?那收到的结果一定是一切换音乐,就听到“咔”一声。&/p&&p&游戏中人物的对话,要后一句打断前一句,或者根据不同的人物分别设置不同打断。在战斗中,需要动态的触发一些对话,这里就要求前一句还没说完的情况下,后一句不能打断前一句,并且后一句不能和前一句同时播放。(崩坏3战斗中,战斗中触发的对话频繁被打断,个人认为这里的设计不够好。)&/p&&p&3D衰减也一样。要根据怪物体型、是否是boss,特效表现设置不同的3D衰减范围。Unity自带的音频系统好像有这个功能,但是并不能像Wwise中,通过Audio编组加上Share Set功能方便的实现。&/p&&p&以上功能只是简介绍了Wwise在手游开发中&b&一定会被用到&/b&的功能,并没有完整的表达Wwise的强大之处。Wwise里有些功能,例如基于采样的粒子合成系统,可以做汽车引擎声。这种声音的需求&b&只有&/b&通过中间件才能实现。&/p&&p&此外,理论上能实现和实际上能实现的差距很大。由于声音在游戏开发过程中优先级很低,很多时候,一个很简单的功能,直到游戏上线也还没有实现。程序员的工资挺贵的,把这个钱省下来买Wwise授权大家都开心。(请把软文钱打我支付宝)&/p&&br&&p&--------------------------------------------------------------------------------------------------------&/p&&p&以下是一些私货&/p&&p&前面有答主提到,音频中间件可以将程序员和设计师的工作分开,程序员只关注逻辑,设计师只关注表现。这个是非常对的。我们团队更进了一步,自己有技术音频,可以完全不依赖项目组的协助完成全部的音频开发工作。项目组只需要提供项目的SVN地址,其余的可以完全不考虑。&/p&&p&这样做的好处是显而易见的,声音团队可以百分之百的掌控游戏声音的所有问题,包括故障排除、性能优化部分。阴阳师、崩坏3这两款游戏都是用了中间件的,然而依旧有较多声音方面的bug,并且好几个版本都没有解决。(比如阴阳师即使在设置里关了声音开关,还是能听到开场动画的声音。崩坏3很多技能在被打断时,声音还是会继续播下去。开放世界的音乐总是错误的被切换。)这些bug大多发生在程序员和音频设计师对接的中间地带,这些问题对于程序员和设计师都存在盲区,加上声音问题优先级低,所以导致很多问题长期无法解决。另外,在传统开发流程中,程序员开发的音频编辑器使用起来非常不顺手,某些机械重复的步骤会占用设计师大量时间。我们自己开发配置工具后,这个问题也很顺利的解决了。&/p&&p&这样的开发模式已经持续一年了。几个工作室的几十个项目组普遍对这种模式表示满意,设计师也能&b&完全&/b&实现自己的想法。后面有机会的话,我会分享我们团队的一些工作流程、开发经验以及提升效率的工具。&/p&
作为一名游戏音频设计师,这个问题被问到过很多次。几句话很难说清楚,正好趁这个机会写下来。希望越来越少的设计师会被问到这个问题。(FMOD、CRIWARE我都不够熟悉,以下只从Wwise的角度说。)Wwise里面有很多很炫酷的功能,有些可以增强声音的交互性、有…
&figure&&img src=&https://pic2.zhimg.com/v2-f294e35beec0ec3f4dafd5ad9f745a10_b.jpg& data-rawwidth=&1920& data-rawheight=&512& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic2.zhimg.com/v2-f294e35beec0ec3f4dafd5ad9f745a10_r.jpg&&&/figure&&p&: 感谢评论区提出了一个解决方案&/p&&blockquote&这个问题,直接把编辑器环境变成opengl es2.0,具体内容在player setting pc的设置 other settings 去掉“Auto Graphics API for Windows”勾,在里面添加opengl es2.0,并且放到第一位。&/blockquote&&p&我测试了下Windows下确实可以,但是OSX下没有GLES2/3&/p&&br&&p&关于Resources和AssetBundle优劣之前已经提过很多次了(参考官方教程&a href=&https://link.zhihu.com/?target=https%3A//unity3d.com/learn/tutorials/topics/best-practices/resources-folder& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&The Resources folder &/a&),正好最近&a href=&https://www.zhihu.com/people/aa01e1f7954baaa34fa65& data-hash=&aa01e1f7954baaa34fa65& class=&member_mention& data-hovercard=&p$b$aa01e1f7954baaa34fa65& data-editable=&true& data-title=&@游侠&&@游侠&/a&
在做框架AssetBundle部分的优化,特此整理一下两个特常见的坑及对应解决办法。之前在&a href=&https://link.zhihu.com/?target=http%3A//blog.uwa4d.com/archives/QA_ResourceManagement.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&关于Unity中的资源管理,你可能遇到这些问题&/a&里有有人提到过这个问题:&/p&&blockquote&&p&Q6: 请问粒子特效的Shader是否不能使用依赖打包? 我们对Shader的模型和特效使用了依赖打包,运行的时候发现模型显示是正常的,但是粒子特效使用的Shader就不能正常运行,特效显示不正常。而在编辑器中,我们看到Material中的Shader是存在的。这时候如果重新手动给这个Material指定同样的Shader,这个粒子特效就能正常显示,请问这是什么原因引起的?&/p&&/blockquote&&p&这里主要分享如何在编辑器里模拟AssetBundle时处理Shader(之后我们会分享『如何从框架层面实现0冗余』相关经验)&/p&&p&在我们的框架里是这么区分资源的:&/p&&ul&&li&Editor模式&ul&&li&开发时直接使用UnityEditor.AssetDatabase.LoadAssetAtPath加载&/li&&li&也支持模拟真机行为,使用打包出来的AssetBundle文件&/li&&/ul&&/li&&li&Player模式:真机使用StreamingAssets下自带的或热更新下载的AssetBundle文件&/li&&/ul&&p&在开发过程中,Editor模拟模式下会有一个非常麻烦的情况:Android或iOS模式下加载出来的材质球都是紫色的。官方支持里有提到这个问题&a href=&https://link.zhihu.com/?target=https%3A//support.unity3d.com/hc/en-us/articles/-Shaders-are-pink-when-loaded-from-an-AssetBundle& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Shaders Are Pink When Loaded From An AssetBundle &/a&,论坛里也有相关讨论&a href=&https://link.zhihu.com/?target=https%3A//forum.unity3d.com/threads/shaders-and-asset-bundles.435667/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Shaders and asset bundles &/a&。根据我的理解,问题就出在:打包到AssetBundle里的Shader是移动平台版本的,但是编辑器需要的是Windows/OSX版本的。&/p&&p&找到原因之后,我们使用了以下解决方案:&/p&&ul&&li&在打包AssetBundle之后,针对所有shader重新打包一个对应编辑器版本的AssetBundle&/li&&li&载入AssetBundle时,如果是shader则载入Windows或OSX版本,同时其他资源载入对应Android或iOS版本&/li&&li&载入GameObject时,编辑器里会有额外处理:找到所有材质球,并在shader AssetBundle里找到同名shader进行替换(因为原材质球是对应的移动版本的shader)&/li&&/ul&&p&在第一步中,除了需要打包项目内本身所有Shader之外,还需要打包builtin shaders,便于后面几步查找; 第三步利用了反射来修改所有材质球&/p&&div class=&highlight&&&pre&&code class=&language-csharp&&&span&&/span&&span class=&n&&System&/span&&span class=&p&&.&/span&&span class=&n&&Type&/span& &span class=&n&&materialType&/span& &span class=&p&&=&/span& &span class=&k&&typeof&/span&&span class=&p&&(&/span&&span class=&n&&Material&/span&&span class=&p&&);&/span&
&span class=&n&&Component&/span&&span class=&p&&[]&/span& &span class=&n&&comps&/span& &span class=&p&&=&/span& &span class=&n&&go&/span&&span class=&p&&.&/span&&span class=&n&&GetComponentsInChildren&/span&&span class=&p&&&&/span&&span class=&n&&Component&/span&&span class=&p&&&();&/span&
&span class=&k&&foreach&/span& &span class=&p&&(&/span&&span class=&n&&Component&/span& &span class=&n&&comp&/span& &span class=&k&&in&/span& &span class=&n&&comps&/span&&span class=&p&&)&/span&
&span class=&p&&{&/span&
&span class=&n&&System&/span&&span class=&p&&.&/span&&span class=&n&&Type&/span& &span class=&n&&t&/span& &span class=&p&&=&/span& &span class=&n&&comp&/span&&span class=&p&&.&/span&&span class=&n&&GetType&/span&&span class=&p&&();&/span&
&span class=&kt&&var&/span& &span class=&n&&fields&/span& &span class=&p&&=&/span& &span class=&n&&t&/span&&span class=&p&&.&/span&&span class=&n&&GetFields&/span&&span class=&p&&();&/span&
&span class=&k&&foreach&/span& &span class=&p&&(&/span&&span class=&kt&&var&/span& &span class=&n&&field&/span& &span class=&k&&in&/span& &span class=&n&&fields&/span&&span class=&p&&)&/span&
&span class=&p&&{&/span&
&span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&field&/span&&span class=&p&&.&/span&&span class=&n&&FieldType&/span& &span class=&p&&==&/span& &span class=&n&&materialsType&/span&&span class=&p&&)&/span&
&span class=&p&&{&/span&
&span class=&n&&Material&/span& &span class=&n&&mat&/span& &span class=&p&&=&/span& &span class=&n&&field&/span&&span class=&p&&.&/span&&span class=&n&&GetValue&/span&&span class=&p&&(&/span&&span class=&n&&comp&/span&&span class=&p&&)&/span& &span class=&k&&as&/span& &span class=&n&&Material&/span&&span class=&p&&;&/span&
&span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&mat&/span& &span class=&p&&!=&/span& &span class=&k&&null&/span&&span class=&p&&)&/span&
&span class=&p&&{&/span&
&span class=&n&&mat&/span& &span class=&p&&=&/span& &span class=&n&&FixMaterial&/span&&span class=&p&&(&/span&&span class=&n&&mat&/span&&span class=&p&&);&/span&
&span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&mat&/span& &span class=&p&&!=&/span& &span class=&k&&null&/span&&span class=&p&&)&/span&
&span class=&n&&field&/span&&span class=&p&&.&/span&&span class=&n&&SetValue&/span&&span class=&p&&(&/span&&span class=&n&&comp&/span&&span class=&p&&,&/span& &span class=&n&&mat&/span&&span class=&p&&);&/span&
&span class=&p&&}&/span&
&span class=&p&&}&/span&
&span class=&p&&}&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&这样的最大好处在于&strong&不需要额外的操作&/strong&:还有一个解决方案是每个项目里解压一份builtin shader,然后强制使用项目内的版本而不是Resources/unity_builtin_extra下的版本。相比之下我们的解决方案只是在打包编辑器版本shader时解压出来然后及时删除,同时这样替换的比较干净(包括脚本里的public Material lineM这种也能被处理到),不需要任何人工操作。当然代价就是打包的时候比较慢,同时载入的时候使用了反射来查找所有需要替换shader的材质球也有一定的性能损失。&/p&
: 感谢评论区提出了一个解决方案这个问题,直接把编辑器环境变成opengl es2.0,具体内容在player setting pc的设置 other settings 去掉“Auto Graphics API for Windows”勾,在里面添加opengl es2.0,并且放到第一位。我测试了下Windows下确实可…
&figure&&img src=&https://pic4.zhimg.com/v2-bee7a5ee50c_b.jpg& data-rawwidth=&594& data-rawheight=&201& class=&origin_image zh-lightbox-thumb& width=&594& data-original=&https://pic4.zhimg.com/v2-bee7a5ee50c_r.jpg&&&/figure&&p&首先明确这几个概念:&/p&&p&1.如果一个资源在两个ab中存在,会占用两份磁盘空间&/p&&p&2.如果一个资源在两个ab中存在,加载时候会加载两份,占用两倍内存和加载时长&/p&&p&3.即使是Shader也不存在判重机制,会老老实实地重新编译上传&/p&&p&&br&&/p&&p&确实有的项目虽然有大量的Shader重复,内存和加载时间也没有变得不能接受……那只是因为用的Shader比较小而已。整个Unity5时期都比Unity4多一次全屏Blit(平白无故多了一屏overdraw),照样大部分开发者都没发现呢。&/p&&p&但这种亏,能不吃还是不应该去吃啊。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-ce210dae80_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&395& data-rawheight=&204& class=&content_image& width=&395&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-8a52b889c8c207eccda2c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&600& data-rawheight=&617& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic1.zhimg.com/v2-8a52b889c8c207eccda2c_r.jpg&&&/figure&&p&这个脚本会列出重复的资源。&/p&&p&并且会把所有AB里具体包含的资源和依赖关系都在下面列出来方便查证。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-de2c573af3eac94d2fcd21_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&570& data-rawheight=&405& class=&origin_image zh-lightbox-thumb& width=&570& data-original=&https://pic1.zhimg.com/v2-de2c573af3eac94d2fcd21_r.jpg&&&/figure&&p&红色表示没有Asset路径的资源,现在只有图集图片是这样的。黄色是Unity内置资源,一般都是Shader,或者像Quad这一类网格,还有粒子用的Default-Particle等。&/p&&p&而一般判定为重复的也都是这类资源。&/p&&p&&br&&/p&&p&非内置的资源都好处理,简单的将这些资源单独放在一个ab包里,自动就成为了其他ab的依赖项。但内置资源就不好办了,因为Unity没有提供对他们打包的API。&/p&&p&Unity自己也觉得这样做是在为难开发者,所以它在自己的网站内提供了内置Shader和内置资源的下载。&/p&&p&&a href=&https://link.zhihu.com/?target=https%3A//unity3d.com/cn/get-unity/download/archive& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Unity - Get Unity - Download Archive&/a&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-4ef5720c0fab7d4d755bb6dfc4918350_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1477& data-rawheight=&444& class=&origin_image zh-lightbox-thumb& width=&1477& data-original=&https://pic4.zhimg.com/v2-4ef5720c0fab7d4d755bb6dfc4918350_r.jpg&&&/figure&&p&选择对应的Unity版本下载,然后把这些内容都放到Asset目录下,以后指定内置资源的时候,指向的就是这些Asset目录下的资源,而不是内置的。就可以正常依赖打包了(不过换版本的时候会比较麻烦)&/p&&figure&&img src=&https://pic1.zhimg.com/v2-2dc1a0d346cd91d09cc7cb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&569& data-rawheight=&72& class=&origin_image zh-lightbox-thumb& width=&569& data-original=&https://pic1.zhimg.com/v2-2dc1a0d346cd91d09cc7cb_r.jpg&&&/figure&&p&如果你项目建立的时候就将这两个包放到了工程里,之后就不用再管内置资源的问题了。但如果是后来才加入这些包,则只有新建的Asset才会用这些包的内容,以前的还是用的以前的。这时候你需要把原来的Shader随便改成别的,再改回去。&/p&&p&工具也会把依赖这个重复资源的Asset列在下面方便更正。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-e8bfb017b2b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&650& data-rawheight=&551& class=&origin_image zh-lightbox-thumb& width=&650& data-original=&https://pic1.zhimg.com/v2-e8bfb017b2b_r.jpg&&&/figure&&p&&br&&/p&&p&下载地址:&/p&&p&&a href=&https://link.zhihu.com/?target=https%3A//pan.baidu.com/s/1jHNXzpk& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1jHNXzp&/span&&span class=&invisible&&k&/span&&span class=&ellipsis&&&/span&&/a&&/p&
首先明确这几个概念:1.如果一个资源在两个ab中存在,会占用两份磁盘空间2.如果一个资源在两个ab中存在,加载时候会加载两份,占用两倍内存和加载时长3.即使是Shader也不存在判重机制,会老老实实地重新编译上传 确实有的项目虽然有大量的Shader重复,内存…
&figure&&img src=&https://pic1.zhimg.com/v2-4fbbce36d120_b.jpg& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-4fbbce36d120_r.jpg&&&/figure&&p&和大家分享一下周末的演讲ppt
过几天正式的活动报道会提供下载 也欢迎大家关注、加入Unity官方社区——Unity Connect。&/p&&p&也欢迎童靴们关注我们Unity User Group的活动。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-7f0be9f5fcb80047cba7c14b5c555b3c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&4160& data-rawheight=&3120& class=&origin_image zh-lightbox-thumb& width=&4160& data-original=&https://pic2.zhimg.com/v2-7f0be9f5fcb80047cba7c14b5c555b3c_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-4fbbce36d120_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-4fbbce36d120_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-ce60cf9f4a444edcb944d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic2.zhimg.com/v2-ce60cf9f4a444edcb944d_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-c2ccc8a1a57b308b87282_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-c2ccc8a1a57b308b87282_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-d444be35bb3ed6bd9b999_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-d444be35bb3ed6bd9b999_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-6bc4b04ef5b1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-6bc4b04ef5b1_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-fbaf3fe7d4d99e7eaf7f7c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-fbaf3fe7d4d99e7eaf7f7c_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-70a61911cfee7e3de61c9f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-70a61911cfee7e3de61c9f_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-6cdfc0d54b2e25b11f8be9_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-6cdfc0d54b2e25b11f8be9_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-2f10c3ac06fff_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-2f10c3ac06fff_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-194d017cfe3cfac3d7fb5d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-194d017cfe3cfac3d7fb5d_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-575ad53f3fc0_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-575ad53f3fc0_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-6cfee0b40bfc4931bad8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-6cfee0b40bfc4931bad8_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-16c870e0f2f8ce1830211ecb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-16c870e0f2f8ce1830211ecb_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-835a2dfeb84ddcdc3272894_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-835a2dfeb84ddcdc3272894_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-346abf6ad6f8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-346abf6ad6f8_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-dde7e95d84ba6d801e05b06124c11edd_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-dde7e95d84ba6d801e05b06124c11edd_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-f6ada6f560f0cbe370e8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-f6ada6f560f0cbe370e8_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-9fae8d995e45eb6a99eb62_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-9fae8d995e45eb6a99eb62_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-eae3c273e471ee0fd5e9d9_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-eae3c273e471ee0fd5e9d9_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-1a2ae37d613f5dc66f248dbf5d9c65c1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-1a2ae37d613f5dc66f248dbf5d9c65c1_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-99eeaae87bf59e7dc0559_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-99eeaae87bf59e7dc0559_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-62140d53adcc5dfdb8cbbfe3b3d619cd_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-62140d53adcc5dfdb8cbbfe3b3d619cd_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-75b1ccb23d2c6c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-75b1ccb23d2c6c_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-2d4ffc18ba9d8c17631a3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-2d4ffc18ba9d8c17631a3_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-39f132b9ccf93ffc1fffd11eb6566456_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-39f132b9ccf93ffc1fffd11eb6566456_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-d4b0a7dc4527_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-d4b0a7dc4527_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-1d0cd9d840daec7d7fffeb192a1503d5_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-1d0cd9d840daec7d7fffeb192a1503d5_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-52d63cda04eb5cf191b670c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-52d63cda04eb5cf191b670c_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-6b45c1af99a9d593a20d684dbae56329_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic2.zhimg.com/v2-6b45c1af99a9d593a20d684dbae56329_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-b1ffde4f076f40d669d31ce_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic2.zhimg.com/v2-b1ffde4f076f40d669d31ce_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-87aee146df64c4ef9a41_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic2.zhimg.com/v2-87aee146df64c4ef9a41_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-b82dff48c93_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-b82dff48c93_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-edceee870f6dc65f781101_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-edceee870f6dc65f781101_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-041cc7b07cae3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-041cc7b07cae3_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-6eda76af66_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic2.zhimg.com/v2-6eda76af66_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-f70bf0c2249_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-f70bf0c2249_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-823f2afe0adff88e10cd_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-823f2afe0adff88e10cd_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-2ad56dbd2b75bea75f75a08763fbf6a7_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-2ad56dbd2b75bea75f75a08763fbf6a7_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-f77dce4e48db5d91ee380ec7_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic2.zhimg.com/v2-f77dce4e48db5d91ee380ec7_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-7993e06cdafcc50d5d68d78a10d9b8f0_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic2.zhimg.com/v2-7993e06cdafcc50d5d68d78a10d9b8f0_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-26b7ba07b8d24d73c899f6b3b633eed1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-26b7ba07b8d24d73c899f6b3b633eed1_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-b0d58cac8bfcc2063ab7ad_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-b0d58cac8bfcc2063ab7ad_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-adeb6733dadfa48c8fd6aabbb28282e5_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-adeb6733dadfa48c8fd6aabbb28282e5_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-7163bf35fabc7ed501a3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic2.zhimg.com/v2-7163bf35fabc7ed501a3_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-dc2bfef358c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-dc2bfef358c_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-eca8a74de96b3b221f863fe_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-eca8a74de96b3b221f863fe_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-2b5bf6cb6_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-2b5bf6cb6_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-ff042dfc86b44539edd86_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-ff042dfc86b44539edd86_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-d6f26520c6fdbd02f41cac_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic2.zhimg.com/v2-d6f26520c6fdbd02f41cac_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-8e6f6ecaef_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-8e6f6ecaef_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-8d3ed3f3ab88_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic2.zhimg.com/v2-8d3ed3f3ab88_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-2a198b6c1b181cc6dd0c0b5b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-2a198b6c1b181cc6dd0c0b5b_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-dc1266cdc28f6e3cb3ae27_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-dc1266cdc28f6e3cb3ae27_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-965b5afbe6de86946e2fba3c194cc95d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-965b5afbe6de86946e2fba3c194cc95d_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-8fade25a121c3a4c03b27c5bdcb6a031_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-8fade25a121c3a4c03b27c5bdcb6a031_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-87d146d0ff4_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-87d146d0ff4_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-2e8298cfefec_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-2e8298cfefec_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-6f1a0b88ed0fc646d6b8bfcc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&6510& data-rawheight=&3146& class=&origin_image zh-lightbox-thumb& width=&6510& data-original=&https://pic4.zhimg.com/v2-6f1a0b88ed0fc646d6b8bfcc_r.jpg&&&/figure&&p&&/p&
和大家分享一下周末的演讲ppt 过几天正式的活动报道会提供下载 也欢迎大家关注、加入Unity官方社区——Unity Connect。也欢迎童靴们关注我们Unity User Group的活动。
&p&为何要引入四元数?首先是因为欧拉角有万向节死锁的问题。&/p&&p&3D游戏或者3D电影中,比如黑客帝国中酷炫的旋转是怎么实现的?&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-979bc20dbd7e9cf3ebdefb0c5912317b_b.jpg& data-rawwidth=&320& data-rawheight=&179& class=&content_image& width=&320&&&/figure&&p&旋转的算法有很多,这里主要介绍其中一种:欧拉角。&/p&&p&&b&1 欧拉角&/b&&/p&&p&&b&1.1 欧拉角的算法思想是什么&/b&&/p&&p&陌生的你来到了成都,站在盐市口茫然四顾,想知道春熙路怎么走?&/p&&p&这个时候你选择了去问路,得到了两种回答:&/p&&ul&&li&往东经104°04′、北纬30°40′走&/li&&li&右转后一直走&/li&&/ul&&p&第一种回答,告诉了你春熙路的绝对坐标,可是很反人类啊!&/p&&p&第二种回答,告诉了你春熙路的相对坐标,很具有操作性。&/p&&p&欧拉角算法的思想就是采用的第二种回答的方式,优点在于很好理解。&/p&&p&&b&1.2 具体实现步骤&/b&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//en.wikipedia.org/wiki/Euler_angles& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&维基百科&/a& 中,有这么一副动图,清楚的表明了如何通过欧拉角来完成旋转:&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-35da80e428ca5750491ffd_b.jpg& data-rawwidth=&368& data-rawheight=&348& class=&content_image& width=&368&&&/figure&&p&具体来拆解下旋转步骤,先看图:&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-df645c9b0d0a01504d5f_b.jpg& data-rawwidth=&400& data-rawheight=&451& class=&content_image& width=&400&&&/figure&&p&图中有两组坐标:&/p&&ul&&li&&img src=&//www.zhihu.com/equation?tex=xyz& alt=&xyz& eeimg=&1&& 为全局坐标,保持不动&/li&&li&&img src=&//www.zhihu.com/equation?tex=XYZ& alt=&XYZ& eeimg=&1&& 为局部坐标,随着物体一起运动&/li&&/ul&&p&旋转步骤如下:&/p&&ul&&li&物体绕&b&全局&/b&的 &img src=&//www.zhihu.com/equation?tex=z& alt=&z& eeimg=&1&& 轴旋转 &img src=&//www.zhihu.com/equation?tex=%5Calpha+& alt=&\alpha & eeimg=&1&& 角&/li&&li&继续绕&b&自己&/b&的 &img src=&//www.zhihu.com/equation?tex=X& alt=&X& eeimg=&1&& 轴(也就是图中的 &img src=&//www.zhihu.com/equation?tex=N& alt=&N& eeimg=&1&& 轴)旋转 &img src=&//www.zhihu.com/equation?tex=%5Cbeta+& alt=&\beta & eeimg=&1&& 角&/li&&li&最后绕&b&自己&/b&的 &img src=&//www.zhihu.com/equation?tex=Z& alt=&Z& eeimg=&1&& 轴旋转 &img src=&//www.zhihu.com/equation?tex=%5Cgamma+& alt=&\gamma & eeimg=&1&& 角&/li&&/ul&&p&这里有一副动图很直观的展示了旋转过程(角度标记的有点不一样: &img src=&//www.zhihu.com/equation?tex=%5Cpsi+& alt=&\psi & eeimg=&1&& 对应 &img src=&//www.zhihu.com/equation?tex=%5Calpha+& alt=&\alpha & eeimg=&1&& , &img src=&//www.zhihu.com/equation?tex=%5Ctheta+& alt=&\theta & eeimg=&1&& 对应 &img src=&//www.zhihu.com/equation?tex=%5Cbeta+& alt=&\beta & eeimg=&1&& , &img src=&//www.zhihu.com/equation?tex=%5Cphi+& alt=&\phi & eeimg=&1&& 对应 &img src=&//www.zhihu.com/equation?tex=%5Cgamma+& alt=&\gamma & eeimg=&1&& ),图来自&a href=&//link.zhihu.com/?target=https%3A//gfycat.com/fr/gifs/detail/flakyconventionalbarnowl& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&gfycat&/a&:&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-c74e8dbd170834_b.jpg& data-rawwidth=&240& data-rawheight=&138& class=&content_image& width=&240&&&/figure&&p&可能你感到奇怪,为什么第一步是绕着全局坐标旋转?因为要和世界保持联系,否则就和世界完全没有关系了。&/p&&p&还不理解?没有关系,自己动手试试(有三个可以操作的点,分别对应三个角度):&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-549df3a0ac9f82cc63ccb1_b.jpg& data-rawwidth=&2300& data-rawheight=&804& class=&origin_image zh-lightbox-thumb& width=&2300& data-original=&https://pic3.zhimg.com/50/v2-549df3a0ac9f82cc63ccb1_r.jpg&&&/figure&&blockquote&此处有互动内容,&a href=&//link.zhihu.com/?target=http%3A//www.matongxue.com/madocs/442.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&点击此处前往操作。&/a&&/blockquote&&p&很显然,按照不同的旋转步骤,旋转的结果是不一样的。&/p&&p&就好比刚才问路的时候,回答你,“左转再右转”,和“右转再左转”,肯定到达的地点是不一样的。&/p&&p&我们需要把上面的旋转步骤按照顺序标记为 &img src=&//www.zhihu.com/equation?tex=zXZ& alt=&zXZ& eeimg=&1&& ,加上角度就是一个完整的欧拉角:&/p&&p&&img src=&//www.zhihu.com/equation?tex=zXZ-%28%5Calpha+%2C+%5Cbeta+%2C+%5Cgamma+%29& alt=&zXZ-(\alpha , \beta , \gamma )& eeimg=&1&&&/p&&p&&b&2 万向节死锁(Gimbal Lock)&/b&&/p&&p&局部坐标是很直观,但是导致欧拉角有一个重大缺陷,万向节死锁!&/p&&p&本节大部分参考了博文: &a href=&//link.zhihu.com/?target=http%3A//blog.csdn.net/AndrewFan/article/details/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&欧拉角与万向节死锁(图文版)&/a& ,博主: &a href=&//link.zhihu.com/?target=http%3A//blog.csdn.net/andrewfan& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&andrewfan&/a& 。&/p&&p&&b&2.1 什么是万向节(Gimbal)&/b&&/p&&blockquote&&b&平衡环架(英语:Gimbal)为一具有枢纽的装置,使得一物体能以单一轴旋转。由彼此垂直的枢纽轴所组成的一组三只平衡环架,则可使架在最内的环架的物体维持旋转轴不变,而应用在船上的陀螺仪、罗盘、饮料杯架等用途上,而不受船体因波浪上下震动、船身转向的影响。&/b&&br&&br&----维基百科&/blockquote&&p&长这个样子:&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-2f3d8c9c2de8c7f225abd_b.jpg& data-rawwidth=&250& data-rawheight=&250& class=&content_image& width=&250&&&/figure&&p&中间有一根竖轴,穿过一个金属圆盘。金属圆盘称为转子,竖轴称为旋转轴。转子用金属制成,应该是了增加质量,从而增大惯性。竖轴外侧是三层嵌套的圆环,它们互相交叉,带来了三个方向自由度的旋转。&/p&&p&看着不停转来转去,有点晕,接下来看下静态的。图来自百度百科:&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-115ad26c55_b.jpg& data-rawwidth=&269& data-rawheight=&220& class=&content_image& width=&269&&&/figure&&p&&b&2.2 欧拉角与万向节&/b&&/p&&p&其实欧拉角的工作方式与万向节几乎一样。&/p&&p&看几幅动图就知道(图来自 &a href=&//link.zhihu.com/?target=http%3A//www.ogre3d.org/tikiwiki/tiki-index.php%3Fpage%3DEuler%2BAngle%2BClass& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Euler Angle Class&/a& )。&/p&&p&这个旋转叫pitch,中文是俯仰:&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-c9097bcf4ad39e39c684a2fdae7ef7d8_b.jpg& data-rawwidth=&256& data-rawheight=&192& class=&content_image& width=&256&&&/figure&&p&这个旋转叫Yaw,中文叫偏航:&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-61f08ff3a9b8e2749d31_b.jpg& data-rawwidth=&256& data-rawheight=&192& class=&content_image& width=&256&&&/figure&&p&这个旋转叫Roll,中文叫桶滚:&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-bba8ed67cb1f4a6f495a157df0a5208d_b.jpg& data-rawwidth=&256& data-rawheight=&192& class=&content_image& width=&256&&&/figure&&p&可以看出,确实工作方式和万向节一样。&/p&&p&&b&2.3 死锁的产生&/b&&/p&&p&为了解释清楚问题,画了一个简单的万向节示意图(金属圆盘就省略了,丑点儿也就别管了):&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-78acd2fb18e37d77252f6_b.jpg& data-rawwidth=&326& data-rawheight=&325& class=&content_image& width=&326&&&/figure&&p&把三个Gimbal环用不同的颜色做了标记,底部三个轴向,RGB分别对应 &img src=&//www.zhihu.com/equation?tex=XYZ& alt=&XYZ& eeimg=&1&& 。&/p&&p&假设现在这个万向节被放在一艘船上,船头的方向沿着+Z轴,也就是右前方。&/p&&p&&b&2.3.1 桶滚&/b&&/p&&p&现在假设,船体发生了摇晃,是沿着前方进行旋转的摇晃,也就是桶滚。由于转子和旋转轴具有较大的惯性,只要没有直接施加扭矩,就会保持原有的姿态。由于上图中绿色的活动的连接头处是可以灵活转动的,此时将发生相对旋转,从而出现以下的情形:&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-c59686dbabcd7c68df8178cf_b.jpg& data-rawwidth=&420& data-rawheight=&340& class=&content_image& width=&420&&&/figure&&p&&b&2.3.2 俯仰&/b&&/p&&p&再次假设,船体发生了pitch摇晃,也就是俯仰。同样,由于存在相应方向的可以相对旋转的连接头(红色连接头),转子和旋转轴将仍然保持平衡,如下图:&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-5ecfced6a8a_b.jpg& data-rawwidth=&420& data-rawheight=&340& class=&content_image& width=&420&&&/figure&&p&&b&2.3.3 偏航&/b&&/p&&p&最后假设,船体发生了yaw摇晃,也就是偏航,此时船体在发生水平旋转。相对旋转发生在蓝色连接头。如下图:&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-29ea182b7bb1f34662ca_b.jpg& data-rawwidth=&420& data-rawheight=&340& class=&content_image& width=&420&&&/figure&&p&最终,在船体发生Pitch、Yaw、Roll的情况下,万向节都可以通过自身的调节,而让转子和旋转轴保持平衡。&/p&&p&&b&2.3.4 死锁&/b&&/p&&p&现在看起来,这个万向节一切正常,在船体发生任意方向摇晃都可以通过自身调节来应对。然而,真的是这样吗?&/p&&p&假如,船体发生了剧烈的变化,此时船首仰起了90度(这是要翻船的节奏。。。。),此时的陀螺仪调节状态如下图:&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-fcbc59ef7cd9c346a7ec2373dfca903e_b.jpg& data-rawwidth=&360& data-rawheight=&332& class=&content_image& width=&360&&&/figure&&p&此时,船体再次发生转动,沿着当前世界坐标的+Z轴(蓝色轴,应该正指向船底)进行转动,那么来看看发生了什么情况:&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-cabe060d9bebb30d976c7035164bcc75_b.jpg& data-rawwidth=&420& data-rawheight=&340& class=&content_image& width=&420&&&/figure&&p&现在,转子不平衡了,万向节的三板斧不起作用了。它失去了自身的调节能力。那么这是为什么呢?&/p&&p&之前万向节之所以能通过自身调节,保持平衡,是因为存在可以相对旋转的连接头。在这种情况下,已经不存在可以相对旋转的连接头了。&/p&&p&那么连接头呢?去了哪里?显然,它还是在那里,只不过从上图中,我们清楚地看到:&/p&&ul&&li&红色连接头:可以给予一个相对俯仰的自由度。&/li&&li&绿色连接头:可以给予一个相对偏航的自由度。&/li&&li&蓝色连接头:可以给予一个相对偏航的自由度。&/li&&/ul&&p&没错,三个连接头,提供的自由度只对应了俯仰和偏航两个自由度,桶滚自由度丢失了。&/p&&p&我们可以回头去试试之前的 &a href=&//link.zhihu.com/?target=http%3A//www.matongxue.com/madocs/442.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&操作页面&/a& ,在下面这样子的情况下其实就是死锁了:&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-8b612cbd78cd8a0ffc5e85_b.jpg& data-rawwidth=&2300& data-rawheight=&804& class=&origin_image zh-lightbox-thumb& width=&2300& data-original=&https://pic4.zhimg.com/50/v2-8b612cbd78cd8a0ffc5e85_r.jpg&&&/figure&&p&&b&3 视频&/b&&/p&&p&还不懂?没有关系,这里还有做得非常好的视频,以供参考:&/p&&a class=&video-box& href=&//link.zhihu.com/?target=https%3A//v.qq.com/x/cover/ew/ew.html& target=&_blank& data-video-id=&611136& data-video-playable=&true& data-name=&欧拉角旋转以及万向节死锁_腾讯视频& data-poster=&https://pic3.zhimg.com/v2-346d49b10eee41a0c38de.jpg& data-lens-id=&&&
&img class=&thumbnail& src=&https://pic3.zhimg.com/v2-346d49b10eee41a0c38de.jpg&&&span class=&content&&
&span class=&title&&欧拉角旋转以及万向节死锁_腾讯视频&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&https://v.qq.com/x/cover/ew/ew.html&/span&
&/a&&p&我对视频主要内容总结如下:&/p&&ul&&li&万向节死锁的根源在于欧拉角的定义方式&/li&&li&万向节死锁的结果,不是说不能旋转了,而是会导致旋转不自然&/li&&li&要规避万向节死锁,需要选择合适的旋转顺序(有12种旋转顺序)&/li&&/ul&&p&&b&4 总结&/b&&/p&&p&在编程中很难规避死锁问题,所以现在很多时候都使用四元数实现旋转,四元数那又是另外的话题了。&/p&
为何要引入四元数?首先是因为欧拉角有万向节死锁的问题。3D游戏或者3D电影中,比如黑客帝国中酷炫的旋转是怎么实现的?旋转的算法有很多,这里主要介绍其中一种:欧拉角。1 欧拉角1.1 欧拉角的算法思想是什么陌生的你来到了成都,站在盐市口茫然四顾,想知…
上篇实现了地形本身的切割,加载,以及Lightmap的处理。其实对于Unity来说,实现模型的动态加载更加困难。主要有两个难点,第一个是合批问题,动态加载,没法做合批处理。另一个则是lightmap处理,上一节地形的lightmap处理,相对来说很简单,因为地形是有规则的,我们直接把lightmap按比例切出来就能对应上,模型的lightmap就比较复杂了。最烦的是,这两个难点还互相参插。&/p&
我们先来看第一个问题,合批。&/p&
Unity提供了Mesh.CombineMeshs的接口:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-ac8a8d11ef_b.jpg& data-rawwidth=&1324& data-rawheight=&483& class=&origin_image zh-lightbox-thumb& width=&1324& data-original=&https://pic1.zhimg.com/v2-ac8a8d11ef_r.jpg&&&/figure&&br&&p&
针对于我们的项目,主要是有两点,一是要把同一区块的模型材质相同的合并到一起这里是需要真合并的,即:combine参数填true,具体操作就是把同一区块的模型通过坐标收集起来,按材质排序,然后进行Combine,需要注意的是这里所说的材质一样,包括,lightmap也是一样的,后续会谈到这个问题。再就是尽量把Mesh合并成SubMesh,按照Unity的规则是定点数少于6W合并到一起,比较省效率。这两个合并操作都是通过上面的这个接口很容易就实现了。&/p&&p&
第二个问题是lightmap处理:&/p&&p&
在解决这个问题之前,我们先来看看,Mesh上的LightMap数据。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-7ceae7b1369db_b.jpg& data-rawwidth=&486& data-rawheight=&408& class=&origin_image zh-lightbox-thumb& width=&486& data-original=&https://pic2.zhimg.com/v2-7ceae7b1369db_r.jpg&&&/figure&&p&我们关心的主要是BakedLightmap下的数据,这个数据对应在Unity脚本中是,MeshRender的lightmapIndex,lightmapScaleOffset。LightMapIndex表示这个Mesh引用的是第几张LightMap图,可以LightmapSettings.lightmaps[index]来找到这张图,Tile和Offset就是Unity材质的Tile和Offset了。通过上面这几个数据,其实就能知道指定的某个模型,对应到的lihgtmap是哪一块了。&/p&&p&
我们知道,lightmap烘焙完后,在那几张图上是完全无规则的,你根本不知道我这些都渲染到哪了,都有可能同一区块的几个物体,可能分布在好几张lightmap上,我们应该尽可能地调整,使得他们放到一张上。&/p&&p&
我们依然先获取区块上的所有模型,因为前面提到的,材质一样才能合并Mesh,所以要进行材质排序,如果有SubMesh的,这里要进行分开处理,即:三个SubMesh,当成三个模型进行处理。&/p&&p&
接下来就要开始拆分lightmap了,依然通过OpenExr,上面我们已经知道每个模型对应到哪张图片的哪一块了,我们只需要一个一个从源lightmap上抠出来,填到一个新的Lightmap。这里涉及到填充算法问题,可以参考NGUI生成图集的算法。拆完后,需要转换UV2用来对应上拆好了的lightmap。这里需要注意的是,为了精度问题,尽量要保证UV2的范围在0-1,然后算出新的lightmapScaleOffset。这一步说起来很简单,但是操作起来很繁琐,再还要结合上面的合并Mesh,写代码的时候一定要保证头脑很清晰。&/p&&p&
至此,模型加载基本思路完成。其实思路好像很简单,三五行就说完了,里边的坑很多,我写模型分块的代码花的时间大概是地形分块的两三倍。下面我说一下我遇到的一些坑吧。&/p&&p&
CombineMesh的时候,构建CombineInstanc的时候需要传入Mesh,千万不要直接用meshFilter.sharedMesh,因为我们需要把UV2设置进去,再进行Combine操作,不能用以前的Mesh,我当时想着,那我改完UV2,Combine完,然后再把UV2改回来不就完事了么,千万不要这么想当然}

我要回帖

更多关于 php quot 转换 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信