{"title":"Efficient Morph Target Animation Using OpenGL ES 3.0","authors":"James L. Jones","doi":"10.1201/b16721-22","DOIUrl":null,"url":null,"abstract":"Demand for impressive graphics in mobile apps has given rise to ever-more powerful GPUs and new graphics APIs such as OpenGL ES 3.0. These advances enable programmers to write cleaner and more efficient implementations of computer graphics algorithms than ever before. One particular area that stands to benefit is the facial animation of characters in mobile games, a technique that is commonly implemented using morph targets. Morph target animation requires artists to pre-create multiple poses of a model offline. Later on, during application execution, these poses are mixed together in varying quantities to create animation sequences such as blinking eyes or a frowning face. When used in conjunction with skinning, the technique can serve as the foundation of a feature-rich character animation system. Historically, morph target animation has seen heavy use in PC and console games but a lack of flexibility in earlier graphics APIs has led to complicated or expensive implementations on mobile platforms. This chapter describes an efficient implementation of morph target animation that makes use of the transform-feedback API introduced in OpenGL ES 3.0. The application in this chapter is a continuation of the Gremlin demo, which was first introduced in a previous article [Senior 09]. The demo has been entirely rewritten and has been updated to take advantage of OpenGL ES 3.0 on PowerVR Series6 mobile GPUs.","PeriodicalId":150939,"journal":{"name":"GPU Pro 360 Guide to Mobile Devices","volume":"40 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"GPU Pro 360 Guide to Mobile Devices","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1201/b16721-22","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Demand for impressive graphics in mobile apps has given rise to ever-more powerful GPUs and new graphics APIs such as OpenGL ES 3.0. These advances enable programmers to write cleaner and more efficient implementations of computer graphics algorithms than ever before. One particular area that stands to benefit is the facial animation of characters in mobile games, a technique that is commonly implemented using morph targets. Morph target animation requires artists to pre-create multiple poses of a model offline. Later on, during application execution, these poses are mixed together in varying quantities to create animation sequences such as blinking eyes or a frowning face. When used in conjunction with skinning, the technique can serve as the foundation of a feature-rich character animation system. Historically, morph target animation has seen heavy use in PC and console games but a lack of flexibility in earlier graphics APIs has led to complicated or expensive implementations on mobile platforms. This chapter describes an efficient implementation of morph target animation that makes use of the transform-feedback API introduced in OpenGL ES 3.0. The application in this chapter is a continuation of the Gremlin demo, which was first introduced in a previous article [Senior 09]. The demo has been entirely rewritten and has been updated to take advantage of OpenGL ES 3.0 on PowerVR Series6 mobile GPUs.
移动应用对令人印象深刻的图形的需求催生了更强大的gpu和新的图形api(如OpenGL ES 3.0)。这些进步使程序员能够编写比以前更干净、更有效的计算机图形算法实现。一个特别的受益领域是手机游戏中角色的面部动画,这是一种通常使用变形目标实现的技术。变形目标动画需要艺术家离线预创建模型的多个姿势。随后,在应用程序执行期间,这些姿势以不同的数量混合在一起,以创建动画序列,如眨眼或皱眉的脸。当与蒙皮结合使用时,该技术可以作为功能丰富的角色动画系统的基础。从历史上看,变形目标动画在PC和主机游戏中被大量使用,但早期图像api缺乏灵活性,导致移动平台上的实现变得复杂或昂贵。本章描述了一个利用OpenGL ES 3.0中引入的转换反馈API的变形目标动画的有效实现。本章中的应用程序是Gremlin演示的延续,Gremlin演示在上一篇文章[Senior 09]中首次介绍。该演示已完全重写,并已更新,以充分利用PowerVR Series6移动gpu上的OpenGL ES 3.0。