【技术实现步骤摘要】
渲染方法、渲染装置和渲染引擎
本专利技术涉及图像处理
,尤其涉及一种渲染方法、渲染装置和渲染引擎。
技术介绍
随着Feed流(feedflow,信息流)广告创新的需要,越来越多包含特效、可动元素的创意被提出。实现这些特效往往难度极大,需要数学、图形学的知识作为支撑。在Feed流中实现图形学特效的方案有:使用苹果UIKit(UserInterfaceKit,用户界面工具)、CoreGraphics(核心图形)等原生框架提供的少量特效接口,接入成熟的第三方游戏引擎。苹果提供的接口能够满足部分特效的需求,但对于高级创意如着色器特效无法实现,局限性大且性能不可控。成熟的第三方游戏引擎往往体积庞大,且无法支持多实例渲染。在Feed流中只能支持一个实例动,并不能实现多个实例同时动。综上,目前的渲染引擎存在架构不兼容、体积庞大或是无法多实例化渲染等问题。
技术实现思路
本专利技术实施例提供一种渲染方法、渲染装置和渲染引擎,以解决现有技术中的一个或多个技术问题。第一方面,本专利技术实施例提供了一种渲染方法,包括:控制各画布对象监听渲染驱动通知;控制监听到所述渲染驱动通知的各画布对象依次触发渲染事件;获取已触发渲染事件的画布对象自身的各待渲染效果;按照各所述待渲染效果对所述已触发渲染事件的画布对象内的待渲染图形进行渲染。在一种实施方式中,控制各画布对象监听渲染驱动通知,包括:控制多个画布对象同时监听核心控制器抛出的渲染驱动通知,其中,所述核心控制 ...
【技术保护点】
1.一种渲染方法,其特征在于,包括:/n控制各画布对象监听渲染驱动通知;/n控制监听到所述渲染驱动通知的各画布对象依次触发渲染事件;/n获取已触发渲染事件的画布对象自身的各待渲染效果;/n按照各所述待渲染效果对所述已触发渲染事件的画布对象内的待渲染图形进行渲染。/n
【技术特征摘要】
1.一种渲染方法,其特征在于,包括:
控制各画布对象监听渲染驱动通知;
控制监听到所述渲染驱动通知的各画布对象依次触发渲染事件;
获取已触发渲染事件的画布对象自身的各待渲染效果;
按照各所述待渲染效果对所述已触发渲染事件的画布对象内的待渲染图形进行渲染。
2.根据权利要求1所述的方法,其特征在于,控制各画布对象监听渲染驱动通知,包括:控制多个画布对象同时监听核心控制器抛出的渲染驱动通知,其中,所述核心控制器在接收到系统屏幕刷新通知类的渲染驱动事件后抛出所述渲染驱动通知;
控制监听到所述渲染驱动通知的各画布对象依次触发渲染事件,包括:控制监听到渲染驱动通知的多个画布对象,按照各画布对象的创建顺序依次触发渲染事件,其中,触发渲染事件的顺序包括:在当前画布对象触发渲染事件并完成渲染后,下一画布对象触发渲染事件。
3.根据权利要求1所述的方法,其特征在于,获取已触发渲染事件的画布对象自身的各待渲染效果,包括:
遍历所述已触发渲染事件的画布对象自身的效果列表,获取至少一个待渲染效果。
4.根据权利要求1所述的方法,其特征在于,按照各所述待渲染效果对所述已触发渲染事件的画布对象内的待渲染图形进行渲染,包括:
触发所述待渲染效果的计算事件,以计算所述待渲染效果的效果参数;
利用所述待渲染效果的效果参数判断所述待渲染效果是否需要重绘;
如果所述待渲染效果需要重绘,则触发准备渲染事件,以处理GPU资源;
在处理GPU资源之后,触发图形渲染事件,以生成渲染上下文;
将所述渲染上下文传递给所述待渲染效果的渲染对象,以调用渲染应用程序编程接口的渲染命令,所述渲染命令用于对所述待渲染图形进行渲染。
5.根据权利要求4所述的方法,其特征在于,处理GPU资源,包括:
生成GPU缓冲区和/或生成纹理资源。
6.根据权利要求4所述的方法,其特征在于,触发图形渲染事件,以生成渲染上下文,包括:
控制所述待渲染效果执行开始准备渲染、计算变换矩阵和计算光源描述子中的至少一个动作,以生成渲染上下文。
7.根据权利要求4所述的方法,其特征在于,将所述渲染上下文传递给所述待渲染效果的渲染对象,以调用渲染应用程序编程接口的渲染命令,包括:
控制顶点内容渲染对象和片源内容渲染对象将所述渲染上下文更新到CPU与GPU共享的缓冲区;
控制所述片源内容渲染对象从CPU向GPU上传纹理;
控制所述顶点内容渲染对象调用渲染应用程序编程接口的渲染命令。
8.根据权利要求1至7中任一项所述的方法,其特征在于,还包括:
在GPU中预先缓存需要GPU编译的耗时资源,所述耗时资源包括画布对象的渲染管线、内置图形的关键数据和预设贴图中的至少一项,其中所述内置图形的关键数据包括所述内置图形的顶点数据和索引数据中的至少一项。
9.一种渲染装置,其特征在于,包括:
监听模块,用于控制各画布对象监听渲染驱动通知;
触发模块,用于控制监听到所述渲染驱动通知的各画布对象依次触发渲染事件;
获取模块,用于获取已触发渲染事件的画布对象自身的各待渲染效果;
渲染模块,用于按照各所述待渲染...
【专利技术属性】
技术研发人员:郑宇琦,
申请(专利权)人:百度在线网络技术北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。