本申请涉及信息处理,尤其涉及一种渲染自定义几何体依附模型的方法及装置。
背景技术:
1、目前在unreal引擎中通过静态几何网格体来渲染模型。模型间依附渲染效果的实现是基于unreal内置的几何网格体形状,有很大的局限性,不能满足任意几何体形状的模型依附渲染效果,且渲染性能低,cpu计算量大。
技术实现思路
1、本申请提供一种渲染自定义几何体依附模型的方法及装置,以解决相关技术中存在的问题。
2、第一方面,本发明提供一种渲染自定义几何体依附模型的方法,包括获取自定义几何体依附模型的网格体;在unreal引擎几何体渲染线程中,每帧设置所述网格体的渲染属性,以基于所述渲染属性对几何体依附模型进行渲染;其中,每帧设置所述网格体的渲染属性包括:设置所述网格体的材质信息,在设置所述材质信息时,允许深度测试写入,其中,写入的深度信息为自定义的深度信息,所述自定义的深度信息单独渲染到一个深度通道中;将预设渲染命令对象添加到渲染命令列表中,并按照列表中的顺序执行渲染。
3、可选地,在将预设渲染命令添加到渲染命令列表中,并按照列表中的顺序执行所述渲染命令之前,所述方法还包括设置预设渲染命令:初始化第一渲染命令对象,其中,所述第一渲染命令对象包括设置正面渲染填充模式;初始化第二渲染命令对象,其中,所述第二渲染命令对象包括设置反面渲染填充模式;初始化第三渲染命令对象,其中,所述第三渲染命令对象在被执行时,通过深度测试和模板测试保留网格体和其他模型重叠部分像素。
4、可选地,初始化第一渲染命令对象包括:针对网格体设置正面渲染填充模式;在正面渲染填充模式下,通过深度测试保留第一预设深度值的像素;将保留的预设深度值的像素作为模板值写入gpu模板缓存中;针对所述网格体设置默认渲染着色器,其中,在设置默认渲染着色器时不写入颜色值。
5、可选地,初始化第二渲染命令对象包括:针对网格体设置反面渲染填充模式;在反面渲染填充模式下,通过深度测试保留第二预设深度值的像素;将保留的所述第二预设深度值的像素作为模板值写入gpu模板缓存中;针对所述网格体数据设置默认渲染着色器,其中,在设置默认渲染着色器时不写入颜色值。
6、可选地,在正面渲染填充模式下,通过深度测试保留第一预设深度值的像素包括:在正面渲染填充模式下,比较所述网格体与其他模型在每个像素位置上的深度值;在深度测试时,如果其他模型在像素位置上的深度值大于所述网格体的深度值,保留所述其他模型在该像素位置上的像素,得到第一预设深度值的像素。
7、可选地,在反面渲染填充模式下,通过深度测试保留第二预设深度值的像素包括:在反面渲染填充模式下,比较所述网格体与其他模型在每个像素位置上的深度值;在深度测试时,如果其他模型在像素位置上的深度值小于所述网格体的深度值,保留所述其他模型在该像素位置上的像素,得到第二预设深度值的像素。
8、第二方面,本发明提供一种渲染自定义几何体依附模型的装置,包括获取单元,被配置成获取自定义几何体依附模型的网格体;渲染单元,被配置成在unreal引擎几何体渲染线程中,每帧设置所述网格体的渲染属性,以基于所述渲染属性对几何体依附模型进行渲染;其中,每帧设置所述网格体的渲染属性包括:设置所述网格体的材质信息,在设置所述材质信息时,允许深度测试写入,其中,写入的深度信息为自定义的深度信息,所述自定义的深度信息单独渲染到一个深度通道中;将预设渲染命令对象添加到渲染命令列表中,并按照列表中的顺序执行渲染命令。
9、可选地,在将预设渲染命令添加到渲染命令列表中,并按照列表中的顺序执行所述渲染命令之前,所述方法还包括设置预设渲染命令:初始化第一渲染命令对象,其中,所述第一渲染命令对象包括设置正面渲染填充模式;初始化第二渲染命令对象,其中,所述第二渲染命令对象包括设置反面渲染填充模式;初始化第三渲染命令对象,其中,所述第三渲染命令对象在被执行时,通过深度测试和模板测试保留网格体和其他模型重叠部分像素。
10、第三方面,本发明提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一项所述的方法。
11、第四方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面提供的一种渲染自定义几何体依附模型的方法。
12、本发明公开了一种渲染自定义几何体依附模型的方法及装置,其中方法包括获取自定义几何体依附模型的网格体;在unreal引擎几何体渲染线程中,每帧设置所述网格体的渲染属性,以基于所述渲染属性对几何体依附模型进行渲染;其中,每帧设置所述网格体的渲染属性包括:设置所述网格体的材质信息,在设置所述材质信息时,允许深度测试写入,其中,写入的深度信息为自定义的深度信息,所述自定义的深度信息单独渲染到一个深度通道中;将预设渲染命令对象添加到渲染命令列表中,并按照列表中的顺序执行渲染。通过在自定义几何体依附模型渲染过程中,引入自定义深度、模板缓存机制实现了自定义几何网格体模型间重叠部分渲染效果,提升了cpu计算性能,克服了相关技术中,模型间依附渲染效果的实现是基于unreal内置的几何网格体形状,有很大的局限性,不能满足任意几何体形状的模型依附渲染效果,且渲染性能低,cpu计算量大的缺陷。
1.一种渲染自定义几何体依附模型的方法,其特征在于,包括:
2.根据权利要求1所述的渲染自定义几何体依附模型的方法,其特征在于,在将预设渲染命令添加到渲染命令列表中,并按照列表中的顺序执行所述渲染命令之前,所述方法还包括设置预设渲染命令:
3.根据权利要求2所述的渲染自定义几何体依附模型的方法,其特征在于,初始化第一渲染命令对象包括:
4.根据权利要求3所述的渲染自定义几何体依附模型的方法,其特征在于,初始化第二渲染命令对象包括:
5.根据权利要求2所述的渲染自定义几何体依附模型的方法,其特征在于,在正面渲染填充模式下,通过深度测试保留第一预设深度值的像素包括:
6.根据权利要求3所述的渲染自定义几何体依附模型的方法,其特征在于,在反面渲染填充模式下,通过深度测试保留第二预设深度值的像素包括:
7.一种渲染自定义几何体依附模型的装置,其特征在于,包括:
8.根据权利要求7所述的渲染自定义几何体依附模型的装置,其特征在于,在将预设渲染命令添加到渲染命令列表中,并按照列表中的顺序执行所述渲染命令之前,所述方法还包括设置预设渲染命令:
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~6任一项所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~6任一项所述的方法。