三维场景渲染方法、装置、设备及介质与流程
- 国知局
- 2024-10-09 15:05:17
本发明涉及数据处理,尤其涉及一种三维场景渲染方法、装置、设备及介质。
背景技术:
1、目前,在装修设计、游戏设计等各种领域内都会涉及到三维场景渲染需求,如在装修设计领域内通过电脑绘图的方式将桌椅等各种构件渲染成数字图像。
2、但是,现有的渲染技术需要等到所有贴图文件都全部加载完成后才开始构建完整场景以供渲染呈现,这会导致web(world wide web,全球广域网)用户在等待模型资源全部下载的过程中长时间看不到场景的任何变化,对于web三维应用的体验是很不利的一种处理方式。
技术实现思路
1、鉴于以上内容,有必要提供一种三维场景渲染方法、装置、设备及介质,旨在解决三维场景渲染过程中长时间看不到场景变化的问题。
2、一种三维场景渲染方法,所述三维场景渲染方法包括:
3、响应于对目标三维场景的渲染指令,对每个初始gltf模型进行资源预处理,得到每个目标gltf模型;
4、按照渐进式加载策略加载每个目标gltf模型;
5、获取所述目标三维场景对应的场景树;
6、当检测到有任意目标gltf模型加载完成时,将所述任意目标gltf模型渲染至所述场景树。
7、根据本发明优选实施例,所述对每个初始gltf模型进行资源预处理,得到每个目标gltf模型包括:
8、对于每个初始gltf模型,获取所述初始gltf模型的textures/目录下的所有图片作为每个初始图片;
9、在所述textures/目录下创建每个初始图片的副本图片,并记录每个副本图片的磁盘占用空间;
10、随机生成与每个副本图片对应的不为零的数字型字符串,并根据每个字符串为每个副本图片命名;其中,每个字符串不重复,且每个字符串为不超出预设位的无符号整型;
11、保持每个初始图片的命名及格式,并将每个初始图片替换为所述预设位的单像素图片;
12、对每个单像素图片进行通道填充,并在完成填充后将当前得到的每个gltf模型确定为每个目标gltf模型。
13、根据本发明优选实施例,所述对每个单像素图片进行通道填充包括:
14、获取每个单像素图片所对应的副本图片的名称,并将每个名称转换为二进制得到每个第一数据;
15、利用每个第一数据填充对应单像素图片的r通道;
16、获取每个单像素图片所对应的副本图片的磁盘占用空间,并将每个磁盘占用空间转换为二进制得到每个第二数据;
17、利用每个第二数据填充对应单像素图片的g通道;
18、将每个单像素图片的b通道置0;
19、将每个单像素图片的a通道配置为不为0;
20、其中,当每个初始图片的格式为jpg格式时,对应的单像素图片不包含所述a通道;当每个初始图片的格式为png格式时,对应的单像素图片包含所述a通道。
21、根据本发明优选实施例,所述按照渐进式加载策略加载每个目标gltf模型包括:
22、对于每个目标gltf模型,创建第一加载任务及第二加载任务;其中,所述第一加载任务用于加载所述目标gltf模型对应的.gltf文件、.bin文件,以及所述textures/目录下的所有单像素图片,所述第二加载任务用于加载所述textures/目录下的所有副本图片;
23、执行所述第一加载任务;
24、当检测到所述textures/目录下的所有单像素图片都完成加载时,执行所述第二加载任务;
25、当检测到所述第一加载任务先于所述第二加载任务完成时,根据所述目标gltf模型对应的.gltf文件、.bin文件,以及所述textures/目录下的所有单像素图片创建目标场景对象,并保存所述目标场景对象的对象引用;检测所述第二加载任务是否完成,当检测到所述第二加载任务完成时,根据所述textures/目录下的所有副本图片创建目标贴图对象,并保存所述目标贴图对象的对象引用;根据所述目标场景对象的对象引用引用所述目标场景对象,并根据所述目标贴图对象的对象引用将所述目标场景对象中的单像素图片替换为对应的副本图片;或者
26、当检测到所述第二加载任务先于所述第一加载任务完成时,根据所述textures/目录下的所有副本图片创建所述目标贴图对象,并保存所述目标贴图对象的对象引用;检测所述第一加载任务是否完成,当检测到所述第一加载任务完成时,根据所述目标gltf模型对应的.gltf文件、.bin文件,以及所述textures/目录下的所有单像素图片创建所述目标场景对象,并保存所述目标场景对象的对象引用;根据所述目标场景对象的对象引用引用所述目标场景对象,并根据所述目标贴图对象的对象引用将所述目标场景对象中的单像素图片替换为对应的副本图片。
27、根据本发明优选实施例,所述执行所述第二加载任务包括:
28、解析加载的每个单像素图片的r通道的通道值,根据每个单像素图片的r通道的通道值拼接下载地址,并根据每个下载地址定位所述textures/目录下与每个单像素图片对应的副本图片;或者
29、获取预先记录的每个单像素图片与每个副本图片间的对应关系,根据所述对应关系定位所述textures/目录下与每个单像素图片对应的副本图片;
30、加载定位到的每个副本图片。
31、根据本发明优选实施例,所述方法还包括:
32、响应于对所述目标三维场景的结构渲染指令,仅对每个目标gltf模型执行所述第一加载任务以加载每个目标gltf模型。
33、根据本发明优选实施例,所述将所述任意目标gltf模型渲染至所述场景树包括:
34、获取预先配置的描述文件;其中,所述描述文件用于记录每个目标gltf模型与所述场景树中各节点间的对应关系;
35、利用所述任意目标gltf模型在所述描述文件中进行遍历,得到在所述场景树中所述任意目标gltf模型所对应的目标节点;
36、将所述任意目标gltf模型渲染至所述目标节点。
37、一种三维场景渲染装置,所述三维场景渲染装置包括:
38、资源预处理单元,用于响应于对目标三维场景的渲染指令,对每个初始gltf模型进行资源预处理,得到每个目标gltf模型;
39、加载单元,用于按照渐进式加载策略加载每个目标gltf模型;
40、获取单元,用于获取所述目标三维场景对应的场景树;
41、渲染单元,用于当检测到有任意目标gltf模型加载完成时,将所述任意目标gltf模型渲染至所述场景树。
42、一种计算机设备,所述计算机设备包括:
43、存储器,存储至少一个指令;及
44、处理器,执行所述存储器中存储的指令以实现所述三维场景渲染方法。
45、一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被计算机设备中的处理器执行以实现所述三维场景渲染方法。
46、由以上技术方案可以看出,本发明能够对每个初始gltf模型进行资源预处理得到每个目标gltf模型,并按照渐进式加载策略加载每个目标gltf模型,当检测到有任意目标gltf模型加载完成时,将任意目标gltf模型渲染至目标三维场景对应的场景树,从而通过渐进式加载每个目标gltf模型实现了对目标三维场景的渐进式渲染,使画面呈现出渐进式变化,避免用户长时间看不到场景变化而影响用户体验。
本文地址:https://www.jishuxx.com/zhuanli/20241009/307569.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表