CN116764188A - 渲染方法及电子设备 - Google Patents
渲染方法及电子设备 Download PDFInfo
- Publication number
- CN116764188A CN116764188A CN202210222772.4A CN202210222772A CN116764188A CN 116764188 A CN116764188 A CN 116764188A CN 202210222772 A CN202210222772 A CN 202210222772A CN 116764188 A CN116764188 A CN 116764188A
- Authority
- CN
- China
- Prior art keywords
- preset
- complexity
- rendering
- feedback information
- channel feedback
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 361
- 238000000034 method Methods 0.000 title claims abstract description 112
- 230000005540 biological transmission Effects 0.000 claims abstract description 96
- 239000002245 particle Substances 0.000 claims description 237
- 230000033001 locomotion Effects 0.000 claims description 208
- 230000008569 process Effects 0.000 claims description 62
- 230000008859 change Effects 0.000 claims description 56
- 238000004088 simulation Methods 0.000 claims description 51
- 230000000694 effects Effects 0.000 claims description 42
- 238000003860 storage Methods 0.000 claims description 15
- 230000006399 behavior Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 7
- 239000000523 sample Substances 0.000 claims 2
- 230000000875 corresponding effect Effects 0.000 description 314
- 238000010586 diagram Methods 0.000 description 26
- 238000012545 processing Methods 0.000 description 19
- 238000013507 mapping Methods 0.000 description 15
- 238000012360 testing method Methods 0.000 description 15
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 8
- 239000012634 fragment Substances 0.000 description 5
- 238000002156 mixing Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 244000025254 Cannabis sativa Species 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000007664 blowing Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000008264 cloud Substances 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000003897 fog Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000002844 melting Methods 0.000 description 1
- 230000008018 melting Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/33—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/538—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本申请实施例提供了一种渲染方法及电子设备。该方法包括:首先,获取编码传输信道的信道反馈信息,其中,编码传输信道用于传输渲染后的图像对应的编码码流;随后,从多组预设渲染输入信息中,确定信道反馈信息对应的渲染输入信息,其中,多组预设渲染输入信息的复杂度不同;然后,基于信道反馈信息对应的渲染输入信息进行渲染,以得到渲染后的图像,其中,得到的渲染后的图像的内容复杂度与信道反馈信息对应的渲染输入信息的复杂度是相关联的。这样,能够实现根据信道状态,调整渲染后的图像对应的编码码流大小,使得渲染后的图像对应的编码码流的大小与信道状态适配,从而保证视频的画面主观质量和视频流畅度。
Description
技术领域
本申请实施例涉及图形处理领域,尤其涉及一种渲染方法及电子设备。
背景技术
目前,很多场景(如云游戏、XR(Extended Reality,拓展现实)、电影特效)都使用了云渲染(Rendering),即在云端完成渲染,然后将渲染得到的视频图像编码成码流传输至端侧,由端侧对接收到的码流进行解码。这样,端侧可以获取到高质量的渲染内容。
对于时延要求比较高的场景(如云游戏、XR),当视频图像的内容比较复杂而导致编码码流的码率变大,或者信道带宽变窄时,会引起端侧视频的延迟,卡顿,丢帧等问题,或者使得画面质量降低。
发明内容
为了解决上述技术问题,本申请提供一种渲染方法及电子设备。该方法能够在保证视频流畅度的同时,保证视频画面质量。
第一方面,本申请实施例提供一种渲染方法,该方法包括:首先,获取编码传输信道的信道反馈信息,其中,编码传输信道用于传输渲染后的图像对应的编码码流;随后,从多组预设渲染输入信息中,确定信道反馈信息对应的渲染输入信息,其中,多组预设渲染输入信息的复杂度不同;然后,基于信道反馈信息对应的渲染输入信息进行渲染,以得到渲染后的图像。其中,得到的渲染后的图像的内容复杂度与信道反馈信息对应的渲染输入信息的复杂度是相关联的,即信道反馈信息对应的渲染输入信息的复杂度越高时,得到的渲染后的图像的内容复杂度越高;信道反馈信息对应的渲染输入信息的复杂度越低时,得到的渲染后的图像的内容复杂度越低。此外,图像的内容复杂度越高,对应的编码码流越大,图像的内容复杂度越低,对应的编码码流越小。这样,在信道质量降低后,通过降低渲染输入信息的复杂度来降低图像的内容复杂度,能够降低传输渲染后的图像的编码码流所需带宽;进而,能够保持(或者尽可能的保持)原来画面主观质量和视频流畅度,使得用户观看的视频画面不会突然变模糊或者突然卡顿,提高了用户体验。在信道质量增强后,可以提供更大的带宽来传输码流,进而可以通过恢复或部分恢复(或增强)渲染输入信息的复杂度,来恢复或部分恢复(或增强)图像的内容复杂度。
示例性的,在得到渲染后的图像后,可以对渲染后的图像进行编码,得到渲染后的图像对应的编码码流;接着,可以通过编码传输信道来传输该编码码流,以将该编码码流传输至接收端。然后由接收端对该编码码流进行解码,得到对应解码后的图像并显示。这样,当信道状态发生变化时,接收端显示的视频图像也不会突然变模糊或者突然卡顿。
示例性的,每组预设渲染输入信息可以包括以下至少一种:预设三维物体模型、预设运动模型、预设粒子模型和预设纹理贴图。应该理解的是,预设渲染输入信息还可以包括影响图像的内容复杂度的其他输入信息,本申请对此不作限制。
示例性的,当预设渲染输入信息为模型时,预设渲染输入信息存在对应的多个参数。例如,当预设渲染输入信息为预设三维物体模型时,预设三维物体模型对应的参数可以包括顶点数/面片数。又例如,当预设渲染输入信息为预设运动模型时,预设运动模型对应的参数可以包括物理仿真单元的粒度。还例如,当预设渲染输入信息为预设粒子模型时,预设粒子模型对应的渲染输入信息可以包括各种粒子行为参数。此时,可以根据预设渲染输入信息对应的参数,来确定预设渲染输入信息的复杂度。当预设渲染输入信息为图像时,可以根据图像纹理复杂度,确定预设渲染输入信息的复杂度。
示例性的,图像的内容复杂度可以是图像中物体细节的精细度,图像中物体表面纹理的复杂度,图像中物体的运动复杂度,以及图像中的粒子运动复杂度(当图像中包括粒子特效时该项因素存在)等各项因素的综合表现。
示例性的,图像中物体的运动复杂度,可以根据物体的运动精细度确定,图像中物体的运动精细度越高,对应的图像中物体的复杂度越高;反之,图像中物体的运动精细度越低,对应的图像中物体的复杂度越低。其中,运动精细度可以是指图像的局部区域中作相似运动或相同运动的区域大小或像素数。
示例性的,粒子特效如绽放的烟花、燃烧的火焰等;粒子运动复杂可以根据粒子行为参数确定。粒子行为参数可以包括但不限于:粒子生成速度(用于确定单位时间粒子生成的数目)、粒子初始速度向量(用于描述每个时刻粒子的运动方向)、粒子寿命(即粒子湮灭的生命周期)、粒子颜色、粒子大小、粒子透明度、在粒子生命周期中的变化以及其它参数等等。
示例性的,假设存在针对同一场景渲染得到的两个视频序列,对于这两个视频序列中同一时刻对应的两帧图像:若这两帧图像中物体表面纹理的复杂度相同,图像中物体的运动复杂度相同,以及粒子运动复杂度相同,则物体细节的精细度越高的图像,其内容复杂度越高。若这两张图像中物体细节的精细度相同,图像中物体的运动复杂度相同,以及粒子运动复杂度相同,则物体表面纹理越复杂的图像,其内容复杂度越高。若这两张图像中物体细节的精细度相同,物体表面纹理的复杂度相同,以及粒子运动复杂度相同,则图像中物体的运动复杂度越高的图像,其内容复杂度越高。若这两张图像中物体细节的精细度相同,物体表面纹理的复杂度相同,以及图像中物体的运动复杂度相同,则粒子运动复杂度越高的图像,其内容复杂度越高。
根据第一方面,信道反馈信息对应的渲染输入信息包括以下至少一种:三维物体模型、运动模型、粒子模型和纹理贴图。
根据第一方面,或者以上第一方面的任意一种实现方式,当每组预设渲染输入信息包括预设三维物体模型时,从多组预设渲染输入信息中,确定信道反馈信息对应的渲染输入信息,包括:从多个预设三维物体模型中,确定信道反馈信息对应的三维物体模型,多个预设三维物体模型对应同一个物体,多个预设三维物体模型的复杂度不同;基于信道反馈信息对应的渲染输入信息进行渲染,以得到渲染后的图像,包括:基于信道反馈信息对应的三维物体模型进行渲染,以得到渲染后的图像。其中,渲染后的图像的内容复杂度与信道反馈信息对应的三维物体模型的复杂度相关联,即信道反馈信息对应的三维物体模型的复杂度越高时,渲染后的图像中物体细节的精细度越高,则渲染后的图像的内容复杂度越高;信道反馈信息对应的三维物体模型的复杂度越低时,渲染后的图像中物体细节的精细度越低,则渲染后的图像的内容复杂度越低。
这样,通过基于复杂度与信道状态对应的三维物体模型进行渲染,使得渲染后的图像中物体细节的精细度与信道状态适配,进而实现渲染后的图像对应的编码码流的大小与信道状态适配,从而保证视频的画面主观质量和视频流畅度,提升了用户体验。
此外,当信道反馈信息对应的三维物体模型的复杂度越低时,需要渲染的面片数/顶点数越少,进而渲染复杂度越低,渲染速度越快。以及当信道反馈信息对应的三维物体模型的复杂度越高时,渲染后的图像中物体细节越精细,进而能够增加图像中物体的细节,从而提高用户体验。
根据第一方面,或者以上第一方面的任意一种实现方式,预设三维物体模型为面片模型,预设三维物体模型的复杂度依据预设三维物体模型的面片数确定;或,预设三维物体模型为点云模型,预设三维物体模型的复杂度依据预设三维物体模型的顶点数确定。
示例性的,当预设三维物体模型为点云模型(也就是预设三维物体模型由点云构成)时,预设三维物体模型的复杂度可以依据预设三维物体模型的顶点数确定;例如,采用预设三维物体模型的顶点数,表征预设三维物体模型的复杂度;又例如,根据预设三维物体模型的顶点数确定复杂度等级,采用复杂度等级表征预设三维物体模型的复杂度;等等,本申请对此不作限制。其中,预设三维物体模型的顶点数越多,预设三维物体模型的复杂度越高,预设三维物体模型也就越精细;反之,预设三维物体模型的顶点数越少,预设三维物体模型的复杂度越低,预设三维物体模型也就越粗疏。
示例性的,当预设三维物体模型为面片模型(也就是预设三维物体模型由面片构成)时,预设三维物体模型的复杂度可以根据面片数确定;例如,采用预设三维物体模型的面片数,表征预设三维物体模型的复杂度;又例如,根据预设三维物体模型的面片数确定复杂度等级,采用复杂度等级表征预设三维物体模型的复杂度;等等,本申请对此不作限制。其中,预设三维物体模型的面片数越多,预设三维物体模型的复杂度越高,预设三维物体模型也就越精细;反之,预设三维物体模型的面片数越少,预设三维物体模型的复杂度越低,预设三维物体模型也就越粗疏。
根据第一方面,或者以上第一方面的任意一种实现方式,当每组预设渲染输入信息包括预设运动模型时,从多组预设渲染输入信息中,确定信道反馈信息对应的渲染输入信息,包括:从多个预设运动模型中,确定信道反馈信息对应的运动模型,多个预设运动模型对应同一个运动过程,多个预设运动模型的复杂度不同;基于信道反馈信息对应的渲染输入信息进行渲染,以得到渲染后的图像,包括:基于信道反馈信息对应的运动模型进行渲染,以得到渲染后的图像。其中,渲染后的图像的内容复杂度与信道反馈信息对应的运动模型的复杂度相关联;即信道反馈信息对应的运动模型的复杂度越高时,渲染后的图像中物体的运动复杂度越高,则渲染后的图像的内容复杂度越高;信道反馈信息对应的运动模型的复杂度越低时,渲染后的图像中物体的运动复杂度越低,则渲染后的图像的内容复杂度越低。
这样,通过基于复杂度与信道状态对应的运动模型进行渲染,使得渲染后的视频序列中物体的运动复杂度与信道状态适配;由于当图像中物体的运动复杂度越低时,帧间时域相关性更高,编码过程中帧间预测越容易,压缩更容易,进而得到编码码流的码率越低,因此能够实现渲染后的图像对应的编码码流的大小与信道状态适配,从而保证视频的画面主观质量和视频流畅度,提高了用户体验。
此外,当信道反馈信息对应的运动模型的复杂度越低时,需要物理仿真的物理仿真单元数量越少,进而渲染复杂度越低,渲染速度越快。当信道反馈信息对应的运动模型的复杂度越高时,渲染后的图像中物体的运动复杂度越高,对应视频序列中所展示的物体运动过程就越真实,从而提高用户体验。
根据第一方面,或者以上第一方面的任意一种实现方式,预设运动模型的复杂度依据预设运动模型的物理仿真单元粒度确定,物理仿真单元粒度是指三维物体模型被划分为用于物理仿真的单元的粒度。
示例性的,预设运动模型定义了物理仿真单元粒度。其中,物理仿真单元粒度是指三维物体模型被划分为用于物理仿真的单元的粒度,物理仿真单元粒度的最小值可以为一个面片或一个顶点。示例性的,预设运动模型的复杂度可以根据物理仿真单元粒度确定,例如,采用预设运动模型的物理仿真单元粒度,表征预设运动模型的复杂度;又例如,根据预设运动模型的物理仿真单元粒度确定复杂度等级,采用复杂度等级表征预设运动模型的复杂度;等等,本申请对此不作限制。示例性的,预设运动模型的物理仿真单元的粒度越大,预设运动模型的复杂度越低;反之,预设运动模型的物理仿真单元的粒度越小,预设运动模型的复杂度越高。其中,物理仿真单元粒度包含的面片数/顶点数越多,表明物理仿真单元粒度越大。
示例性的,物理仿真单元粒度越大,图像中物体的运动精细度越低;反之,物理仿真单元粒度越小,图像中物体的运动精细度越高。
根据第一方面,或者以上第一方面的任意一种实现方式,当每组预设渲染输入信息包括预设粒子模型时,从多组预设渲染输入信息中,确定信道反馈信息对应的渲染输入信息,包括:从多个预设粒子模型中,确定信道反馈信息对应的粒子模型,多个预设粒子模型对应同一种粒子特效,多个预设粒子模型的复杂度不同;基于信道反馈信息对应的渲染输入信息进行渲染,以得到渲染后的图像,包括:基于信道反馈信息对应的粒子模型进行粒子渲染,以得到渲染后的图像。其中,渲染后的图像的内容复杂度与信道反馈信息对应的粒子模型的复杂度相关联,即信道反馈信息对应的粒子模型的复杂度越高时,则渲染后的图像的内容复杂度越高;信道反馈信息对应的粒子模型的复杂度越低时,则渲染后的图像的内容复杂度越低。
这样,通过根据复杂度与信道状态适应的粒子模型进行粒子渲染,使得渲染后的图像中粒子运动复杂度与信道状态适配,进而实现渲染后的图像对应的编码码流的大小与信道状态适配,从而保证视频的画面主观质量和视频流畅度,提升了用户体验。
此外,当信道反馈信息对应的粒子模型的模型复杂度越低时,渲染复杂度越低,渲染速度越快。当信道反馈信息对应的粒子模型的模型复杂度越高时,渲染后的图像中的粒子运动复杂度越高,对应视频序列展示的粒子运动过程就越真实,进而使得粒子特效更逼真,从而提高用户体验。
根据第一方面,或者以上第一方面的任意一种实现方式,预设粒子模型的复杂度依据预设粒子模型的粒子行为参数确定。
根据第一方面,或者以上第一方面的任意一种实现方式,当每组预设渲染输入信息包括预设纹理贴图时,从多组预设渲染输入信息中,确定信道反馈信息对应的渲染输入信息,包括:从多个预设纹理贴图中,确定信道反馈信息对应的纹理贴图,多个预设纹理贴图对应同一个物体,多个预设纹理贴图的纹理复杂度不同;基于信道反馈信息对应的渲染输入信息进行渲染,以得到渲染后的图像,包括:基于信道反馈信息对应的纹理贴图进行渲染,以得到渲染后的图像。其中,渲染后的图像的内容复杂度与信道反馈信息对应的纹理贴图的纹理复杂度相关联,即信道反馈信息对应的纹理贴图的复杂度越高时,渲染后的图像中物体表面的纹理复杂度越高,则渲染后的图像的内容复杂度越高;信道反馈信息对应的纹理贴图的复杂度越低时,渲染后的图像中物体表面的纹理复杂度越低,则渲染后的图像的内容复杂度越低。
这样,通过基于复杂度与信道状态适应的纹理贴图进行渲染,使得渲染后的图像中物体表面的纹理复杂度与信道状态适配,进而实现渲染后的图像对应的编码码流的大小与信道状态适配,从而保证视频的画面主观质量和视频流畅度,提升了用户体验。
此外,当信道反馈信息对应的纹理贴图的纹理复杂度越低时,渲染复杂度越低,进而渲染速度越快。当信道反馈信息对应的纹理贴图的纹理复杂度越高时,渲染后的图像中物体的表面纹理的复杂度越高,进而能够增加图像中物体纹理的细节,使得图像中物体更逼真,从而提高用户体验。
示例性的,预设纹理贴图的复杂度可以是指纹理复杂度。示例性的,确定预设纹理贴图的纹理复杂度的方式可以包括多种,如计算预设纹理贴图的灰度直方图的方差,采用该方差来确定预设纹理贴图的纹理复杂度(如采用预设纹理贴图的方差,表征预设纹理贴图的复杂度;又例如,根据预设纹理贴图的方差确定复杂度等级,采用复杂度等级表征预设纹理贴图的复杂度;等等,本申请对此不作限制)。又例如,计算预设纹理贴图的梯度,采用计算得到的梯度来确定预设纹理贴图的纹理复杂度(如采用预设纹理贴图的梯度,表征预设纹理贴图的复杂度;又例如,根据预设纹理贴图的梯度确定复杂度等级,采用复杂度等级表征预设纹理贴图的复杂度;等等,本申请对此不作限制)。应该理解的是,还可以采用其他方式确定预设纹理贴图的纹理复杂度,本申请对此不作限制。
根据第一方面,或者以上第一方面的任意一种实现方式,该方法还包括:根据信道反馈信息,确定信道状态变化程度;当信道状态变化程度大于预设变化阈值时,执行从多组预设渲染输入信息中,确定信道反馈信息对应的渲染输入信息的步骤。这样,可以降低渲染输入信息的切换频率,以及降低预设渲染输入信息的数量。
根据第一方面,或者以上第一方面的任意一种实现方式,信道反馈信息包括以下至少一种:网络传输带宽;网络传输延迟;网络抖动值;网络丢包率。
第二方面,本申请实施例提供一种渲染装置,该装置包括:信道信息获取模块,用于获取编码传输信道的信道反馈信息,编码传输信道用于传输渲染后的图像对应的编码码流;
输入信息确定模块,用于从多组预设渲染输入信息中,确定信道反馈信息对应的渲染输入信息,其中,多组预设渲染输入信息的复杂度不同;
渲染模块,用于基于信道反馈信息对应的渲染输入信息进行渲染,以得到渲染后的图像,其中,渲染后的图像的内容复杂度与信道反馈信息对应的渲染输入信息的复杂度相关联。
根据第二方面,渲染输入信息包括以下至少一种:三维物体模型、运动模型、粒子模型和纹理贴图。
根据第二方面,或者以上第二方面的任意一种实现方式,输入信息确定模块,具体用于当每组预设渲染输入信息包括预设三维物体模型时,从多个预设三维物体模型中,确定信道反馈信息对应的三维物体模型,多个预设三维物体模型对应同一个物体,多个预设三维物体模型的复杂度不同;
渲染模块,具体用于基于信道反馈信息对应的三维物体模型进行渲染,以得到渲染后的图像,其中,渲染后的图像的内容复杂度与信道反馈信息对应的三维物体模型的复杂度相关联。
根据第二方面,或者以上第二方面的任意一种实现方式,预设三维物体模型为面片模型,预设三维物体模型的复杂度依据预设三维物体模型的面片数确定;或,预设三维物体模型为点云模型,预设三维物体模型的复杂度依据预设三维物体模型的顶点数确定。
根据第二方面,或者以上第二方面的任意一种实现方式,输入信息确定模块,具体用于当每组预设渲染输入信息包括预设运动模型时,从多个预设运动模型中,确定信道反馈信息对应的运动模型,多个预设运动模型对应同一个运动过程,多个预设运动模型的复杂度不同;渲染模块,具体用于基于信道反馈信息对应的运动模型进行渲染,以得到渲染后的图像,其中,渲染后的图像的内容复杂度与信道反馈信息对应的运动模型的复杂度相关联。
根据第二方面,或者以上第二方面的任意一种实现方式,预设运动模型的复杂度依据预设运动模型的物理仿真单元粒度确定,物理仿真单元粒度是指三维物体模型被划分为用于物理仿真的单元的粒度。
根据第二方面,或者以上第二方面的任意一种实现方式,输入信息确定模块,具体用于当每组预设渲染输入信息包括预设粒子模型时,从多个预设粒子模型中,确定信道反馈信息对应的粒子模型,多个预设粒子模型对应同一种粒子特效,多个预设粒子模型的复杂度不同;渲染模块,具体用于基于信道反馈信息对应的粒子模型进行粒子渲染,以得到渲染后的图像,其中,渲染后的图像的内容复杂度与信道反馈信息对应的粒子模型的复杂度相关联。
根据第二方面,或者以上第二方面的任意一种实现方式,预设粒子模型的复杂度依据预设粒子模型的粒子行为参数确定。
根据第二方面,或者以上第二方面的任意一种实现方式,输入信息确定模块,具体用于当每组预设渲染输入信息包括预设纹理贴图时,从多个预设纹理贴图中,确定信道反馈信息对应的纹理贴图,多个预设纹理贴图对应同一个物体,多个预设纹理贴图的纹理复杂度不同;渲染模块,具体用于基于信道反馈信息对应的纹理贴图进行渲染,以得到渲染后的图像,其中,渲染后的图像的内容复杂度与信道反馈信息对应的纹理贴图的纹理复杂度相关联。
根据第二方面,或者以上第二方面的任意一种实现方式,该装置还包括:变化程度确定模块,用于根据信道反馈信息,确定信道状态变化程度;输入信息确定模块,具体用于当信道状态变化程度大于预设变化阈值时,从多组预设渲染输入信息中,确定信道反馈信息对应的渲染输入信息。
根据第二方面,或者以上第二方面的任意一种实现方式,信道反馈信息包括以下至少一种:网络传输带宽;网络传输延迟;网络抖动值;网络丢包率。
第二方面以及第二方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第二方面以及第二方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第三方面,本申请实施例提供一种电子设备,包括:存储器和处理器,存储器与处理器耦合;存储器存储有程序指令,当程序指令由处理器执行时,使得电子设备执行第一方面或第一方面的任意可能的实现方式中的渲染方法。
第三方面以及第三方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第三方面以及第三方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第四方面,本申请实施例提供一种芯片,包括一个或多个接口电路和一个或多个处理器;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行计算机指令时,使得电子设备执行第一方面或第一方面的任意可能的实现方式中的渲染方法。
第四方面以及第四方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第四方面以及第四方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第五方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序运行在计算机或处理器上时,使得计算机或处理器执行第一方面或第一方面的任意可能的实现方式中的渲染方法。
第五方面以及第五方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第五方面以及第五方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第六方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括软件程序,当所述软件程序被计算机或处理器执行时,使得计算机或处理器执行第一方面或第一方面的任意可能的实现方式中的渲染方法。
第六方面以及第六方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第六方面以及第六方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
附图说明
图1a为示例性示出的应用场景示意图;
图1b为示例性示出的应用场景示意图;
图2为示例性示出的渲染过程示意图;
图3为示例性示出的渲染流程示意图;
图4a为示例性示出的渲染过程示意图;
图4b为示例性示出预设三维物体模型的示意图;
图5为示例性示出的渲染过程示意图;
图6a为示例性示出的渲染过程示意图;
图6b为示例性示出预设纹理贴图的示意图;
图7a为示例性示出的渲染过程示意图;
图7b为示例性示出的预设粒子模型的示例图;
图8为示例性示出的渲染过程示意图;
图9为示例性示出的渲染装置的示意图;
图10为示例性示出的装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
本申请实施例可以应用于AR(Augmented Reality,增强现实)场景、VR(VirtualReality,虚拟现实)场景、XR场景、云展会场景、云课堂场景、云K歌场景、云演唱会场景、云游戏场景、内容制作场景(包括电影特效制作、电视特效制作等)等需要进行云渲染的场景,本申请实施例对此不作限制。本申请实施例以云游戏场景为例进行示例性说明。
图1a为示例性示出的应用场景示意图。其中,图1a中的应用场景为云游戏场景。
图1a的云游戏场景包括:客户端和服务器。
示例性的,客户端部署有:游戏应用和解码模块。示例性的,游戏应用可以为用户提供游戏操作的人机交互界面。示例性的,解码模块可以用于对数据(如图像/视频)进行解码,可以是解码器(如视频解码器)。
示例性的,服务器部署有:解析模块、游戏逻辑处理模块、渲染模块、编码模块和传输模块。应该理解的是,服务器可以是单独的一个服务器,也可以是服务器的集群,本申请对此不作限制。
示例性的,解析模块可以用于对指示信息进行解析。
示例性的,游戏逻辑处理模块可以用于判断是否需要渲染。
示例性的,渲染模块可以用于执行渲染操作。
示例性的,编码模块可以用于对数据(如图像/视频)进行编码,可以是编码器(如视频编码器)。
示例性的,传输模块可以用于传输编码码流。
示例性的,解析模块、游戏逻辑处理模块、编码模块和传输模块,可以部署在CPU(Central Processing Unit,中央处理器)中。渲染模块可以是图形处理器,或者部署在图形处理器中。示例性的,图形处理器是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。图形处理器可以包括GPU(Graphics Processing Unit,图形处理器)。
示例性的,解析模块、游戏逻辑处理模块和传输模块,可以部署在CPU中,渲染模块和编码模块可以部署在GPU中。
继续参照图1a,云游戏的渲染过程可以如下:
S101,游戏应用接收用户操作。
示例性的,用户可以按需打开客户端中的游戏应用,并在游戏应用中执行各种操作,进行游戏。进而,游戏应用可以接收到用户操作。
S102,游戏应用向解析模块发送指示信息。
示例性的,游戏应用接收到用户操作后,可以响应于用户操作,基于与用户操作相关的信息,生成指示信息,并将指示信息发送给服务器的解析模块。
S103,解析模块向游戏逻辑处理模块发送游戏指令。
示例性的,解析模块接收到指示信息后,可以对指示信息进行解析,得到游戏指令。然后解析模块将游戏指令发送给游戏逻辑处理模块。
S104,游戏逻辑处理模块向渲染模块发送渲染指令。
示例性的,游戏逻辑处理模块接收到游戏指令后,可以基于游戏指令判断是否需要渲染。若确定需要渲染,则可以生成渲染指令并发送给渲染模块。
S105,渲染模块向编码模块发送渲染后的图像。
示例性的,渲染模块接收到渲染指令后,可以响应于该渲染指令执行渲染操作,得到渲染后的图像。接着,渲染模块可以将渲染后的图像发送给编码模块。
S106,编码模块将编码码流发送给传输模块。
示例性的,编码模块接收到渲染后的图像后,可以对渲染后的图像进行编码,得到渲染后的图像所对应的编码码流;然后将编码码流发送给传输模块。
示例性的,编码模块在对渲染后的图像进行渲染之前,可以先将渲染后的图像划分为多个宏块,然后分别将各宏块划分为多个编码块,再以编码块为单位进行编码。
示例性的,编码模块的编码过程如下:针对每个编码块,可以利用当前帧内已重建区域内像素点的像素值,对当前编码块内像素点的像素值进行预测(即帧内预测)。或者,在已重建的图像帧中,为当前帧中的当前编码块寻找匹配的参考编码块,将参考编码块中的像素点的像素值,作为当前编码块中像素点的像素值的预测信息(该过程可以称为运动估计(Motion estimation,ME));以及确定指向参考编码块的运动矢量(Motion Mector,MV),和参考编码块所在图像帧的指示信息等(即帧间预测)。在帧内或者帧间预测得到预测信息之后,可以利用当前编码块内像素点的像素值减去对应的预测信息,得到残差信息。再利用离散余弦变换(Discrete Cosine Transformation,DCT)等方法对残差信息进行变换,以及进行量化、熵编码等操作,进而完成对一个编码块的编码,得到一个编码块的编码码流。
S107,传输模块将编码码流发送给解码模块。
示例性的,传输模块对编码码流进行流化(streaming)处理,并对流化的数据进行发送传输。
示例性的,传输模块可以从解析模块中获取指示信息,并对指示信息进行解析,获取客户端的源地址。
示例性的,传输模块也可以直接从解析模块,获取客户端的源地址。
然后传输模块可以基于源地址,将编码码流发送给至客户端。
S108,解码模块将解码后的图像发送给游戏应用。
示例性的,解码模块接收到编码码流后,可以对编码码流进行解码,得到解码后的图像,然后将解码后的图像返回给游戏应用。
需要说明的是,由于编码模块对渲染后的图像进行编码(也就是压缩),会导致图像质量下降,因此解码模块发送给游戏应用的解码后的图像,与渲染模块发送给编码模块的渲染后的图像相比,是存在区别的。
示例性的,解码模块的解码过程可以如下:解码模块首先通过熵解码、反量化以及反变换等操作得到残差信息,然后确定当前编码块使用的是帧内预测编码还是帧间预测编码。如果是帧内预测编码,则利用周围已重建区域内像素点的像素值,按照编码模块所使用的帧内预测方法构建预测信息。如果是帧间预测编码,则需要解析出运动信息MV,并使用所解析出的运动信息MV,在已重建的图像中确定参考编码块,并将块内像素点的像素值作为预测信息(此过程称为运动补偿(Motion compensation,MC))。使用预测信息加上残差信息经过滤波操作便可以得到重建信息。
示例性的,游戏应用接收到解码模块返回的解码后的图像后,可以对该解码后的图像进行展示;进而实现展示用户操作对应的游戏场景(图像或视频)。
当视频图像的内容比较复杂而导致编码码流的码率变大,或者,信道状态变差时,会引起端侧视频的延迟,卡顿、丢帧等问题,或者使得画面质量降低。为了解决这些技术问题,本申请可以在服务器部署信道反馈模块,如图1b所示,信道反馈模块可以用于执行S109,即向渲染模块发送信道反馈信息。示例性的,S109可以是与S101~S108中任一步骤并行执行的,也可以是S101~S108中任一步骤之前或之后执行,本申请对此不作限制。可选地,信道反馈模块可以按照预设反馈周期向渲染模块发送信道反馈信息,预设反馈周期可以按照需求设置,本申请对此不作限制。这样,渲染模块接收到游戏逻辑处理模块发送的渲染指令后,可以根据从多组预设渲染输入信息中选取出的,与信道反馈信息对应的渲染输入信息进行渲染。其中,不同组预设渲染输入信息的复杂度不同,且预设渲染输入信息的复杂度影响着基于预设渲染输入信息渲染所得到的图像的内容复杂度,而图像的内容复杂度影响着编码码流的大小(即图像的内容复杂度越高,对应的编码码流越大,图像的内容复杂度越低,对应的编码码流越小)。这样,在信道质量降低后,通过降低渲染输入信息的复杂度来降低图像的内容复杂度,能够降低传输渲染后的图像的编码码流所需带宽;进而,能够保持(或者尽可能的保持)原来画面主观质量和视频流畅度,使得用户观看的视频画面不会突然变模糊或者突然卡顿,提高了用户体验。在信道质量增强后,可以提供更大的带宽来传输码流,进而可以通过恢复或部分恢复(或增强)渲染输入信息的复杂度,来恢复或部分恢复(或增强)图像的内容复杂度。
示例性的,每组预设渲染输入信息可以包括以下至少一种:预设三维物体模型、预设运动模型、预设粒子模型和预设纹理贴图。应该理解的是,预设渲染输入信息还可以包括影响图像的内容复杂度的其他输入信息,本申请对此不作限制。
示例性的,当预设渲染输入信息为模型时,预设渲染输入信息存在对应的多个参数。例如,当预设渲染输入信息为预设三维物体模型时,预设三维物体模型对应的参数可以包括顶点数/面片数。又例如,当预设渲染输入信息为预设运动模型时,预设运动模型对应的参数可以包括物理仿真单元的粒度。还例如,当预设渲染输入信息为预设粒子模型时,预设粒子模型对应的渲染输入信息可以包括各种粒子行为参数。此时,可以根据预设渲染输入信息对应的参数,来确定预设渲染输入信息的复杂度。当预设渲染输入信息为图像时,可以根据图像纹理复杂度,确定预设渲染输入信息的复杂度。
示例性的,图像的内容复杂度可以是图像中物体细节的精细度,图像中物体表面纹理的复杂度,图像中物体的运动复杂度,以及图像中的粒子运动复杂度(当图像中包括粒子特效时该项因素存在)等各项因素的综合表现。
示例性的,图像中物体的运动复杂度,可以根据物体的运动精细度确定,图像中物体的运动精细度越高,对应的图像中物体的复杂度越高;反之,图像中物体的运动精细度越低,对应的图像中物体的复杂度越低。其中,运动精细度可以是指图像的局部区域中作相似运动或相同运动的区域大小或像素数。
示例性的,粒子特效如绽放的烟花、燃烧的火焰等;粒子运动复杂可以根据粒子行为参数确定,粒子行为参数在后续进行说明。
示例性的,假设存在针对同一场景渲染得到的两个视频序列,对于这两个视频序列中同一时刻对应的两帧图像:若这两帧图像中物体表面纹理的复杂度相同,图像中物体的运动复杂度相同,以及粒子运动复杂度相同,则物体细节的精细度越高的图像,其内容复杂度越高。若这两张图像中物体细节的精细度相同,图像中物体的运动复杂度相同,以及粒子运动复杂度相同,则物体表面纹理越复杂的图像,其内容复杂度越高。若这两张图像中物体细节的精细度相同,物体表面纹理的复杂度相同,以及粒子运动复杂度相同,则图像中物体的运动复杂度越高的图像,其内容复杂度越高。若这两张图像中物体细节的精细度相同,物体表面纹理的复杂度相同,以及图像中物体的运动复杂度相同,则粒子运动复杂度越高的图像,其内容复杂度越高。
应该理解的是,图1a和图1b仅是本申请的是一个示例,本申请的客户端具有比图1a及图1b示出的更多的模块或程序,本申请实施例对此不作限制。以及服务器具有比图1a及图1b示出的更多的模块,本申请实施例对此不作限制。此外,图1a及图1b中部署在CPU中的解析模块、游戏逻辑处理模块、编码模块和传输模块,可以是一个整体;也可以是相互独立的模块。以及图1a及图1b中部署在GPU中的渲染模块和编码模块可以是一个整体,也可以是相互独立的模块。图1b中的信道反馈模块,可以集成在解析模块、游戏逻辑处理模块、编码模块、渲染模块和传输模块中任一模块中,也可以独立于这些模块。当然,实际应用中,服务器中的CPU、GPU也可以不进行模块划分,而是由服务器的CPU、GPU等共同完成上述步骤,本申请对此不作限制。
图2为示例性示出的渲染过程示意图。
S201,获取编码传输信道的信道反馈信息。
示例性的,编码传输信道可以是指用于传输渲染后的图像对应的编码码流的信道。例如,可以是指图1a/图1b中用于传输S106和S107的编码码流的信道。
示例性的,信道反馈信息包括以下至少一种:网络传输带宽、网络传输延迟、网络抖动值以及网络丢包率。应该理解的是,信道反馈信息可以还可以包括影响编码码流传输的其他信息,如阻塞数据量的等,本申请对此不作限制。
示例性的,网络传输带宽用于表征信道实际发送数据的传输能力。
示例性的,网络传输延迟是指某一帧对应的码流从发送开始到确认接收或确认丢弃的时长。
示例性的,网络抖动值是指最大网络传输延迟与最小网络传输延迟的时间差。
示例性的,网络丢包率是指数据包丢失部分与所传数据包总数的比值。
示例性的,阻塞数据量是指发送设备(如服务器)缓存区内当前存储的待发送数据量或帧数。
S202,从多组预设渲染输入信息中,确定信道反馈信息对应的渲染输入信息。
示例性的,可以预先存储多组预设渲染输入信息,不同组预设渲染输入信息的复杂度不同,预设渲染输入信息的复杂度影响着基于预设渲染输入信息渲染所得到的图像的内容复杂度。在获取到信道反馈信息后,可以从多组预设渲染输入信息中,查找与信道反馈信息对应的一组渲染输入信息。
示例性的,信道状态越好,确定的渲染输入信息的复杂度越高;反之,信道状态越差,确定的渲染输入信息的复杂度越低。
S203,基于信道反馈信息对应的渲染输入信息进行渲染,以得到渲染后的图像。
示例性的,在确定信道反馈信息对应的渲染输入信息后,可以将信道反馈信息对应的渲染输入信息加载到三维场景中,然后进行渲染,以得到渲染后的图像。
进而,渲染后的图像的内容复杂度与信道反馈信息对应的渲染输入信息的复杂度是相关联的,即信道反馈信息对应的渲染输入信息的复杂度越高时,得到的渲染后的图像的内容复杂度越高;信道反馈信息对应的渲染输入信息的复杂度越低时,得到的渲染后的图像的内容复杂度越低。
这样,通过基于复杂度与信道状态对应的渲染输入信息进行渲染,使得渲染后的图像的内容复杂度与信道状态适配,实现根据用于传输渲染后的图像对应的编码码流的信道状态,调整渲染后的图像对应的编码码流大小,使得渲染后的图像对应的编码码流的大小与信道状态适配,从而保证视频的画面主观质量和视频流畅度,提升了用户体验。
为了便于对从多组预设渲染输入信息中,确定信道反馈信息对应的渲染输入信息的过程说明,以下先对渲染过程进行介绍。
图3为示例性示出的渲染流程示意图。其中,图3是实现渲染的一种图形渲染管线。应该理解的是,图3仅是图形渲染管线的一个示例,本申请用于实现渲染的图形渲染管线可以包括比图3所示的更多或更少的阶段或者包括其他阶段,或者采用其他图形渲染管线实现渲染;本申请对此不作限制。
参照图3,示例性的,渲染过程可以包括如下多个阶段:顶点数据的输入阶段、顶点着色器阶段、曲面细分阶段、几何着色器阶段、图元组装阶段、光栅化阶段、片段着色器阶段以及混合测试阶段。其中,曲面细分阶段和几何着色器阶段,可以是可选阶段。
示例性的,顶点数据的输入阶段所执行的操作是:输入顶点数据。其中,顶点数据可以包括三维物体模型(也可以称为3D(3-dimensional,三维)物体模型)顶点的属性信息,例如,可以包括:顶点坐标、纹理坐标、顶点法线、顶点颜色、顶点之间的连接关系等。示例性的,可以先创建3D场景,包括设置3D场景的原点、光源以及相机位置、观察参数(如近平面的位置、远平面的位置、宽高比和视场角等)等。然后可以将顶点数据加载到创建的3D场景中。其中,3D场景是在世界空间下创建的。
示例性的,顶点着色器阶段所执行的操作是:对顶点坐标进行坐标变换。示例性的,3D物体模型是在模型空间中的创建的,而3D场景是在世界空间中创建的,因此将3D模型加载到3D场景后,可以将各3D物体模型的顶点坐标分别由模型空间变化到世界空间。示例性的,3D场景中是以相机为视点观察3D场景中的物体的,因此为了保证3D场景中的物体都在视野内,可以将顶点坐标由世界空间变化到观察空间。示例性的,由于仅位于近平面和远平面之间的物体才能被观察到,因此可以将顶点坐标由观察空间变化到裁剪空间,以便于对以相机为视点与近平面和远平面形成的视锥体进行裁剪。
示例性的,曲面细分阶段所执行的操作是:对三角面进行细分,来增加物体表面的三角面的数量。
示例性的,几何着色器阶段所执行的操作是:调整图元的数量。例如,可以将点或线扩展为多边形、或者扩展点、线,其中,图元可以包括点、线、线条、三角面。
示例性的,图元组装阶段所执行的操作是:将输入的顶点组装成指定的图元。图元组装阶段会进行裁剪和背面剔除相关的优化,以减少进入光栅化阶段的图元的数量,加速渲染过程。
示例性的,在光栅化阶段之前,还会进入屏幕映射阶段。其中,屏幕映射阶段所执行的操作是:透视除法和视口变换。其中,经过图元组装阶段以及屏幕映射阶段后,顶点坐标变换到了屏幕空间。
示例性的,光栅化阶段所执行的操作是:将连续的3D物体转化为离散屏幕像素点。
示例性的,片段着色器阶段所执行的操作是:确定屏幕上像素的最终颜色。在这个阶段会进行光照计算以及阴影处理,和纹理贴图等。
示例性的,测试混合阶段包括测试阶段和混合阶段。其中,测试阶段包括裁切测试、Alpha测试(α测试)、模板测试和深度测试等。混合阶段用于针对每一像素,根据裁切测试的结果、Alpha测试的结果、模板测试的结果和深度测试的结果,确定该像素的最终颜色。
示例性的,渲染物体运动过程(如水流)时,可以根据该物体对应的运动模型进行物理仿真,然后根据物理仿真结果进行渲染,从而得到多帧图像所组成的视频序列,也就是物体的运动过程所对应的视频序列。其中,物理仿真可以是指对现实世界中物体的某些属性进行参数化,并结合所得参数对物体在现实中的运动等特征进行建模,用于对物体的各种虚拟分析与预测。例如,在渲染水流时,会对水流进行建模,分析水流中各个部分的受力,结合水本身的材质等特征(如粘稠度)进行物理仿真然后渲染,进而模拟出逼近现实的动态效果。
需要说明的是,对于无法预测运动状态的物体(如数字人),可以根据每个时刻对应的三维物体模型进行渲染。
示例性的,粒子渲染是渲染的一种,通常用于渲染烟、雾、云、水、火等各种粒子特效。
示例性的,针对于每种粒子特效,渲染可以得到一个视频序列。渲染视频序列中一帧图像的过程可以如下:
(1)根据粒子模型生成粒子。其中,粒子模型定义了粒子行为参数,粒子行为参数可以包括但不限于:粒子生成速度(用于确定单位时间粒子生成的数目)、粒子初始速度向量(用于描述每个时刻粒子的运动方向)、粒子寿命(即粒子湮灭的生命周期)、粒子颜色、粒子大小、粒子透明度、在粒子生命周期中的变化以及其它参数等等。进而,可以根据粒子模型定义的生成速度,以及视频序列的帧间隔计算新粒子的数目,然后在三维空间中生成粒子。
(2)根据粒子模型配置各个粒子的属性,属性包括但不限于:初始位置、初始速度、初始大小、初始颜色、初始透明度、形状、生命周期等。
(3)将三维空间内超过粒子寿命的粒子消灭。
(4)根据物理运动模型对剩余的粒子进行变换与移动。
(5)将存活的粒子渲染至一帧图像中。示例性的,对剩余的粒子进行变换与移动后,可能会存在部分粒子游离至观察区域之外或者透明度下降到指定的阈值,这些游离至观察区域之外以及透明度下降到指定的阈值的粒子是无法观察到的,也就是对图像没有贡献。因此,可以修剪游离观察区域之外的以及透明度下降到指定的阈值的粒子,也就是消灭这些粒子,得到最终存活的粒子。
示例性的,每组预设渲染输入信息包括以下至少一种:预设三维物体模型、预设运动模型、预设粒子模型和预设纹理贴图。应该理解的是,预设渲染输入信息还可以包括影响渲染后的图像的内容复杂度的其他输入信息,本申请对此不作限制。
图4a为示例性示出的渲染过程示意图。在图4a的实施例中,描述了当每组预设渲染输入信息均包括预设三维物体模型时,确定信道反馈信息对应的三维物体模型的过程。
S401,获取编码传输信道的信道反馈信息。
示例性的,信道反馈信息中的网络传输带宽可以是指预设反馈周期内多个时刻的网络传输带宽的平均值,可以参照如下公式确定:
其中,W'i为第i个时刻的网络传输带宽,N1为预设反馈周期内所包含的时刻数,N1为正整数,A1为预设反馈周期内的网络传输带宽。
示例性的,信道反馈信息中的网络传输延迟可以是指预设反馈周期内多个时刻的网络传输延迟的平均值。示例性的,可以按照下述方式确定网络传输延迟:
其中,E1为预设反馈周期内的网络传输延迟,N1预设反馈周期内所包含的时刻数,N1为正整数,Yi为第i个时刻的网络传输延迟。
示例性的,网络抖动值可以是指预设反馈周期内,网络传输延迟的最大值与网络传输延迟的最小值之间的差值。
示例性的,网络丢包率可以是指预设反馈周期内,客户端接收到的数据量与服务器发送的总数据量的比值。
S402,从多个预设三维物体模型中,确定信道反馈信息对应的三维物体模型,多个预设三维物体模型对应同一个物体,多个预设三维物体模型的复杂度不同。
示例性的,服务器中存储了多个物体(如花、草、树、建筑、桌、椅、山等)对应的预设三维物体模型。其中,针对每个物体,存储了该物体对应的多个预设三维物体模型;本申请以一个物体对应的多个预设三维物体模型为例进行示例性说明。
示例性的,一个物体对应的多个预设三维物体模型中,每个预设三维物体模型对应的复杂度不同。
示例性的,当预设三维物体模型为点云模型(也就是预设三维物体模型由点云构成)时,预设三维物体模型的复杂度可以依据预设三维物体模型的顶点数确定;例如,采用预设三维物体模型的顶点数,表征预设三维物体模型的复杂度;又例如,根据预设三维物体模型的顶点数确定复杂度等级,采用复杂度等级表征预设三维物体模型的复杂度;等等,本申请对此不作限制。其中,预设三维物体模型的顶点数越多,预设三维物体模型的复杂度越高,预设三维物体模型也就越精细;反之,预设三维物体模型的顶点数越少,预设三维物体模型的复杂度越低,预设三维物体模型也就越粗疏。
示例性的,当预设三维物体模型为面片模型(也就是预设三维物体模型由面片构成)时,预设三维物体模型的复杂度可以根据面片数确定;例如,采用预设三维物体模型的面片数,表征预设三维物体模型的复杂度;又例如,根据预设三维物体模型的面片数确定复杂度等级,采用复杂度等级表征预设三维物体模型的复杂度;等等,本申请对此不作限制。其中,预设三维物体模型的面片数越多,预设三维物体模型的复杂度越高,预设三维物体模型也就越精细;反之,预设三维物体模型的面片数越少,预设三维物体模型的复杂度越低,预设三维物体模型也就越粗疏。
图4b为示例性示出预设三维物体模型的示意图。其中,图4b(1)、4b(2)和4b(3)示出的是同一棵树对应的3个预设三维物体模型,且这3个预设三维物体模型都是面片模型。示例性的,图4b(1)中的预设三维物体模型的面片数为30000个,图4b(2)中的预设三维物体模型的面片数为70000个,图4b(3)中的预设三维物体模型的面片数为150000个。对比图4b(1)、4b(2)和4b(3)可知,图4b(2)中的预设三维物体模型的复杂度,大于图4b(1)中的预设三维物体模型的复杂度,图4b(3)中的预设三维物体模型的复杂度,大于图4b(2)中的预设三维物体模型的复杂度。
一种可能的方式中,针对每一个预设三维物体模型,可以根据预设三维物体模型的复杂度设置对应的预设参数范围;然后建立该预设三维物体模型与对应的预设参数范围之间关联。
一种可能的方式中,预设参数范围可以包括以下至少一种:网络传输带宽范围、网络传输延迟范围、网络抖动范围、网络丢包率范围。其中,预设三维物体模型的复杂度越高,则对应的预设参数范围中网络传输带宽范围的边界值越大,网络传输延迟范围的边界值、网络抖动范围的边界值以及网络丢包率范围的边界值越小;反之,预设三维物体模型的复杂度越低,则对应的预设参数范围中网络传输带宽范围的边界值越小,网络传输延迟范围的边界值、网络抖动范围的边界值以及网络丢包率范围的边界值越大。
这样,在获取到信道反馈信息后,可以将信道反馈信息与各预设三维物体模型分别关联的预设参数范围进行比对,来从多个预设三维物体模型中,选取与信道反馈信息对应的三维物体模型。
示例性的,若信道反馈信息包括:网络传输带宽,网络传输延迟,网络抖动值和网络丢包率,则针对一个预设三维物体模型,可以将信道反馈信息包含的网络传输带宽,与该预设三维物体模型关联的网络传输带宽范围比对;以及将信道反馈信息包含的网络传输延迟,与该预设三维物体模型关联的网络传输延迟范围比对;将信道反馈信息中的网络抖动值,与该预设三维物体模型关联的网络抖动范围比对;以及将信道反馈信息包含的网络丢包率,与该预设三维物体模型关联的网络丢包率范围比对。
示例性的,当信道反馈信息包含的网络传输带宽,属于与该预设三维物体模型关联的网络传输带宽范围;且信道反馈信息包含的网络传输延迟,属于与该预设三维物体模型关联的网络传输延迟范围;且信道反馈信息包含的网络抖动值;属于与该预设三维物体模型关联的网络抖动范围;且信道反馈信息包含的网络丢包率,属于与该预设三维物体模型关联的网络丢包率范围时,可以将该预设三维物体模型,确定为与信道反馈信息对应的三维物体模型。
一种可能的方式中,预设参数范围可以是指信道状态范围,信道状态可以采用基于信道反馈信息所包含的信息确定的信道状态指示信息表征(例如,采用网络传输带宽、网络传输延迟、网络抖动值以及网络丢包率等加权值表征,其中,信道反馈信息所包含的所有信息的权重可以按照需求设置,本申请对此不作限制)。其中,预设三维物体模型的复杂度越高,则对应的信道状态范围的边界值越大;反之,预设三维物体模型的复杂度越低,则对应的信道状态范围的边界值越小。
这样,在获取到信道反馈信息后,可以计算信道反馈信息所包含的所有信息的加权值;然后将该加权值,与各预设三维物体模型分别关联的信道状态范围进行比对;当该加权值属于与某一信道状态范围时,可以将与该信道状态范围关联的预设三维物体模型,确定为与信道反馈信息对应的三维物体模型。
一种可能的方式中,针对每个预设三维物体模型,根据预设三维物体模型的复杂度,为该预设三维物体模型标识对应的复杂度等级;例如,预设三维物体模型的复杂度越高,对应的复杂度等级越高。然后根据所有复杂等级中任意两种复杂度等级差值,确定复杂度等级波动值集合。例如:图4b中包括3种预设三维物体模型,图4b(1)对应的复杂度等级为L1,图4b(2)对应的复杂度等级为L2,图4b(3)对应的复杂度等级为L3。可以确定的复杂度等级波动值集合包括:+2(L1→L3)、+1(L1→L2,L2→L3),-1(L2→L1,L3→L2),-2(L3→L1)。接着,针对复杂度等级波动值集合中每种复杂度等级波动值,设置对应信道状态变化范围,以及将各种复杂度等级波动值与对应的信道状态变化范围进行关联。例如:复杂度等级波动值+1,对应的信道状态变化范围为[Δ,2×Δ);复杂度等级波动值+2,对应的信道状态变化范围为[2×Δ,3×Δ];复杂度等级波动值-1,对应的信道状态变化范围为[-2×Δ,-Δ);复杂度等级波动值-2,对应的信道状态变化范围为[-3×Δ,-2×Δ];其中,Δ为正数,可以按照需求设置,本申请对此不作限制。其中,复杂度等级波动值越大,对应的信道状态变化范围的边界值就越大。
示例性的,在获取到信道反馈信息后,可以根据本次获取的信道反馈信息和上一次获取的信道反馈信息,确定信道状态变化程度;然后,可以确定该信道状态变化程度所属的目标信道状态变化范围。接着,可以根据与目标信道状态变化程度关联的复杂度等级波动值和上一次确定的复杂度等级,确定与信道反馈信息对应的三维物体模型。示例性的,可以将与目标信道状态变化程度关联的复杂度等级波动值和上一次确定的复杂度等级之和,确定目标复杂度等级;然后,将目标复杂度等级对应的预设三维物体模型,确定为与信道反馈信息对应的三维物体模型。
例如,根据本次获取的信道反馈信息和上一次获取的信道反馈信息,确定的信道状态变化程度属于[Δ,2×Δ)这个信道状态变化范围,则可以确定复杂度等级波动值为+1;若上一次渲染采用的三维物体模型对应的复杂度等级为L1,则可以将复杂度等级为L2的预设三维物体模型,作为本次渲染所需的三维物体模型,也就是与信道反馈信息对应的三维物体模型。
一种可能的方式中,可以根据本次信道反馈信息,计算本次的信道状态指示信息;以及根据上一次获取的信道反馈信息,计算上一次的信道状态指示信息;接着,将本次的信道状态指示信息减去上一次的信道状态指示信息得到的差值,确定为信道状态变化程度。
一种可能的方式中,针对信道反馈信息所包含的每一种信息,计算本次获取的该种信息减去上一次获取的该种信息的差值,以得到该种信息的变化值。然后基于信道反馈信息所包含的所有信息的变化值,确定信道状态变化程度。
这样,当确定本次渲染需要使用多个物体的三维物体模型时,可以参照上述的描述,针对每一个物体,从该物体对应的多个预设三维物体模型中,确定信道反馈信息对应的三维物体模型。
S403,基于信道反馈信息对应的三维物体模型进行渲染,以得到渲染后的图像。
一种可能的方式中,渲染模块可以先在三维场景中加载信道反馈信息对应的三维物体模型,然后再进行渲染。进而,若是在渲染当前帧过程中获取到信道反馈信息并确定信道反馈信息对应的三维物体模型的,则在渲染下一帧时,加载信道反馈信息对应的三维物体模型后再进行渲染,得到渲染后的下一帧图像。这样,得到的渲染后的图像的内容复杂度与三维物体模型的复杂度是相关联的。
一种可能的方式中,也可以在图像渲染管线的某个阶段,在3D场景中生成三维物体模型,然后再进行渲染(这种情况下,顶点数据输入阶段输入的是所需生成的三维物体模型的模型参数)。进而若是在图像渲染管线生成三维物体模型之前接收到信道反馈信息并确定信道反馈信息对应的三维物体模型,则图像渲染管线在渲染当前帧过程中,可以生成信道反馈信息对应的三维物体模型,再进行渲染,得到渲染后的当前帧图像。
进而,渲染后的图像的内容复杂度与信道反馈信息对应的三维物体模型的复杂度是相关联的,即信道反馈信息对应的三维物体模型的复杂度越高时,渲染后的图像中物体细节的精细度越高,则渲染后的图像的内容复杂度越高;信道反馈信息对应的三维物体模型的复杂度越低时,渲染后的图像中物体细节的精细度越低,则渲染后的图像的内容复杂度越低。
这样,通过基于复杂度与信道状态对应的三维物体模型进行渲染,使得渲染后的图像中物体细节的精细度与信道状态适配,进而实现渲染后的图像对应的编码码流的大小与信道状态适配,从而保证视频的画面主观质量和视频流畅度。
此外,当信道反馈信息对应的三维物体模型的复杂度越低时,需要渲染的面片数/顶点数越少,进而复杂度越低,渲染速度越快。以及当信道反馈信息对应的三维物体模型的复杂度越高时,渲染后的图像中物体细节越精细,进而能够增加图像中物体的细节,从而提高用户体验。
图5为示例性示出的渲染过程示意图。在图5的实施例中,描述了当每组预设渲染输入信息均包括预设运动模型时,确定信道反馈信息对应的运动模型的过程。
S501,获取编码传输信道的信道反馈信息。
示例性的,S501可以参照上述S401的描述,在此不再赘述。
S502,从多个预设运动模型中,确定信道反馈信息对应的运动模型,多个预设运动模型对应同一个运动过程,多个预设运动模型的复杂度不同。
示例性的,服务器中存储了多个运动过程(如树被风吹动的过程、水流的过程、雪融化的过程、建筑摇动的过程等)对应的预设运动模型。其中,针对每个运动过程,存储了该运动过程对应的多个预设运动模型;本申请以一个运动过程对应的多个预设运动模型为例进行示例性说明。
示例性的,一个运动过程对应的多个预设运动模型中,每个预设运动模型对应的复杂度不同。
示例性的,预设运动模型定义了物理仿真单元粒度。其中,物理仿真单元粒度是指三维物体模型被划分为用于物理仿真的单元的粒度,物理仿真单元粒度的最小值可以为一个面片或一个顶点。示例性的,预设运动模型的复杂度可以根据物理仿真单元粒度确定,例如,采用预设运动模型的物理仿真单元粒度,表征预设运动模型的复杂度;又例如,根据预设运动模型的物理仿真单元粒度确定复杂度等级,采用复杂度等级表征预设运动模型的复杂度;等等,本申请对此不作限制。示例性的,预设运动模型的物理仿真单元的粒度越大,预设运动模型的复杂度越低;反之,预设运动模型的物理仿真单元的粒度越小,预设运动模型的复杂度越高。其中,物理仿真单元粒度包含的面片数/顶点数越多,表明物理仿真单元粒度越大。
示例性的,建立各预设运动模型与对应的预设参数范围的关联,或者,确定各运动模型对应的复杂度等级以及建立复杂度等级波动值与信道状态变化范围的关联;然后基于建立的关联,从多个预设运动模型中,确定与信道反馈信息对应的运动模型。具体可以参照上述图4a实施例中的描述,在此不再赘述。
示例性的,预设运动模型的复杂度越高,则对应的预设参数范围中网络传输带宽范围的边界值越大,网络传输延迟范围的边界值、网络抖动范围的边界值以及网络丢包率范围的边界值越小;反之,预设运动模型的复杂度越低,则对应的预设参数范围中网络传输带宽范围的边界值越小,网络传输延迟范围的边界值、网络抖动范围的边界值以及网络丢包率范围的边界值越大。
示例性的,预设运动模型的复杂度越高,则对应的信道状态范围的边界值越大;反之,预设运动模型的复杂度越低,则对应的信道状态范围的边界值越小。
示例性的,预设运动模型的复杂度越高,对应的复杂度等级越高。
这样,当确定本次需要对多个运动过程进行渲染时,可以参照上述的描述,针对每一个运动过程,从该运动过程所对应的多个预设运动模型中,确定信道反馈信息对应的运动模型。
S503,基于信道反馈信息对应的运动模型进行渲染,以得到渲染后的图像。
示例性的,渲染物体的运动过程得到的也是一个视频序列,因此渲染视频序列的每一帧的过程可以是:根据信道反馈信息对应的运动模型,对对应的三维物体模型进行物理仿真,得到物理仿真结果;然后再根据物理仿真结果进行渲染,进而得到一帧图像。
需要说明的是,在渲染同一个运动过程对应视频序列中的每一帧时,针对当前帧,若当前帧确定的信道反馈信息对应的运动模型和上一帧确定的信道反馈信息对应的运动模型不同时,则可以根据当前帧确定的信道反馈信息对应的运动模型和上一帧确定的信道反馈信息对应的运动模型的比对结果,当前帧与上一帧的帧间隔,以及采用当前帧确定的信道反馈信息对应的运动模型进行渲染,得到当前帧。
示例性的,若是在渲染当前帧的过程中获取到信道反馈信息并确定信道反馈信息对应的运动模型的,则在渲染下一帧的过程中,采用信道反馈信息对应的运动模型进行渲染,得到渲染后的下一帧图像。
进而,渲染后的图像的内容复杂度与信道反馈信息对应的运动模型的复杂度是相关联的,即信道反馈信息对应的运动模型的复杂度越高时,渲染后的图像中物体的运动复杂度越高,则渲染后的图像的内容复杂度越高;信道反馈信息对应的运动模型的复杂度越低时,渲染后的图像中物体的运动复杂度越低,则渲染后的图像的内容复杂度越低。
这样,通过基于复杂度与信道状态对应的运动模型进行渲染,使得渲染后的视频序列中物体的运动复杂度与信道状态适配;由于当图像中物体的运动复杂度越低时,帧间时域相关性更高,编码过程中帧间预测越容易,压缩更容易,进而得到编码码流的码率越低,因此能够实现渲染后的图像对应的编码码流的大小与信道状态适配,从而保证视频的画面主观质量和视频流畅度,提高了用户体验。
此外,当信道反馈信息对应的运动模型的复杂度越低时,需要物理仿真的物理仿真单元数量越少,进而渲染复杂度越低,渲染速度越快。以及当信道反馈信息对应的运动模型的复杂度越高时,渲染后的图像中物体的运动复杂度越高,对应视频序列中所展示的物体运动过程就越真实,从而提高用户体验。
图6a为示例性示出的渲染过程示意图。在图6a的实施例中,描述了当每组预设渲染输入信息均包括预设纹理贴图时,确定信道反馈信息对应的纹理贴图的过程。
S601,获取编码传输信道的信道反馈信息。
示例性的,S601可以参照上述S401的描述,在此不再赘述。
S602,从多个预设纹理贴图中,确定信道反馈信息对应的纹理贴图,多个预设纹理贴图对应同一个物体,多个预设纹理贴图的纹理复杂度不同。
示例性的,服务器中存储了多个物体(如花、草、树、建筑、桌、椅、山以及地毯等)对应的预设纹理贴图。其中,针对每个物体,存储了该物体对应的多个预设纹理贴图;本申请以一个物体对应的多个预设纹理贴图为例进行示例性说明。
示例性的,一个物体对应的多个预设纹理贴图中,不同预设纹理贴图对应的纹理复杂度不同。示例性的,确定预设纹理贴图的纹理复杂度的方式可以包括多种,如计算预设纹理贴图的灰度直方图的方差,采用该方差来确定预设纹理贴图的纹理复杂度(如采用预设纹理贴图的方差,表征预设纹理贴图的复杂度;又例如,根据预设纹理贴图的方差确定复杂度等级,采用复杂度等级表征预设纹理贴图的复杂度;等等,本申请对此不作限制)。又例如,计算预设纹理贴图的梯度,采用计算得到的梯度来确定预设纹理贴图的纹理复杂度(如采用预设纹理贴图的梯度,表征预设纹理贴图的复杂度;又例如,根据预设纹理贴图的梯度确定复杂度等级,采用复杂度等级表征预设纹理贴图的复杂度;等等,本申请对此不作限制)。应该理解的是,还可以采用其他方式确定预设纹理贴图的纹理复杂度,本申请对此不作限制。
图6b为示例性示出预设纹理贴图的示意图。其中,图6b示出的是同一地毯对应的4种纹理复杂度不同的预设纹理贴图。示例性的,图6b(4)中的预设纹理贴图的纹理复杂度,大于图6b(3)中的预设纹理贴图的纹理复杂度;图6b(3)中的预设纹理贴图的纹理复杂度,大于图6b(2)中的预设纹理贴图的纹理复杂度;图6b(2)中的预设纹理贴图的纹理复杂度,大于图6b(1)中的预设纹理贴图的纹理复杂度。
示例性的,建立各预设纹理贴图与对应的预设参数范围的关联,或者,确定各种纹理贴图对应的复杂度等级以及建立复杂度等级波动值与信道状态变化范围的关联;然后基于建立的关联,从多个预设纹理贴图中,确定与信道反馈信息对应的纹理贴图。具体可以参照上述图4a实施例中的描述,在此不再赘述。
示例性的,预设纹理贴图的复杂度越高,则对应的预设参数范围中网络传输带宽范围的边界值越大,网络传输延迟范围的边界值、网络抖动范围的边界值以及网络丢包率范围的边界值越小;反之,预设纹理贴图的复杂度越低,则对应的预设参数范围中网络传输带宽范围的边界值越小,网络传输延迟范围的边界值、网络抖动范围的边界值以及网络丢包率范围的边界值越大。
示例性的,预设纹理贴图的复杂度越高,则对应的信道状态范围的边界值越大;反之,预设纹理贴图的复杂度越低,则对应的信道状态范围的边界值越小。
示例性的,预设纹理贴图的复杂度越高,对应的复杂度等级越高。
这样,当确定本次渲染需要使用多个物体的三维物体模型时,可以参照上述的描述,针对每一个物体,从该物体对应的多个预设纹理贴图中,确定信道反馈信息对应的纹理贴图。
S603,基于信道反馈信息对应的纹理贴图进行渲染,以得到渲染后的图像。
示例性的,在片段着色器阶段为三维物体模型进行贴图的过程可以如下:信道反馈信息对应的纹理贴图被存储在内存中,可以从内存中读取各三维物体模型的纹理贴图(该纹理贴图与信道反馈信息对应)。针对一个三维物体模型,可以根据该三维物体模型中各顶点对应的纹理坐标,确定三维物体模型中各顶点对应在信道反馈信息对应的纹理贴图上的像素点;再依据三维物体模型中各顶点对应在信道反馈信息对应的纹理贴图上的像素点的颜色,为三维物体模型中各顶点进行着色。进而当在为当前帧的三维物体模型进行贴图之前获取到信道反馈信息并确定信道反馈信息对应的纹理贴图时,则采用信道反馈信息对应的纹理贴图,为当前帧的三维物体模型进行贴图;待片段着色器阶段完成且测试混合阶段完成后,即可得到渲染后的当前帧图像。当在为当前帧的三维物体模型进行贴图之后获取到信道反馈信息并确定信道反馈信息对应的纹理贴图时,则采用信道反馈信息对应的纹理贴图,为下一帧的三维物体模型进行贴图;待片段着色器阶段完成且测试混合阶段完成后,即可得到渲染后的下一帧图像。
进而,渲染后的图像的内容复杂度与信道反馈信息对应的纹理贴图的复杂度是相关联的,即信道反馈信息对应的纹理贴图的复杂度越高时,渲染后的图像中物体表面的纹理复杂度越高,则渲染后的图像的内容复杂度越高;信道反馈信息对应的纹理贴图的复杂度越低时,渲染后的图像中物体表面的纹理复杂度越低,则渲染后的图像的内容复杂度越低。
这样,通过基于复杂度与信道状态适应的纹理贴图进行渲染,使得渲染后的图像中物体表面的纹理复杂度与信道状态适配,进而实现渲染后的图像对应的编码码流的大小与信道状态适配,从而保证视频的画面主观质量和视频流畅度,提升了用户体验。
此外,当信道反馈信息对应的纹理贴图的纹理复杂度越低时,渲染复杂度越低,进而渲染速度越快。当信道反馈信息对应的纹理贴图的纹理复杂度越高时,渲染后的图像中物体的表面纹理的复杂度越高,进而能够增加图像中物体纹理的细节,使得图像中物体更逼真,从而提高用户体验。
图7a为示例性示出的渲染过程示意图。在图7a的实施例中,描述了当每组预设渲染输入信息均包括预设粒子模型时,确定信道反馈信息对应的粒子模型的过程。
S701,获取编码传输信道的信道反馈信息。
示例性的,S701可以参照上述S401的描述,在此不再赘述。
S702,从多个预设粒子模型中,确定信道反馈信息对应的粒子模型,多个预设粒子模型对应同一种粒子特效,多个预设粒子模型的复杂度不同。
示例性的,服务器中存储了多种粒子特效(如烟花绽放特效、雾特效、火焰特效、爆炸特效等)对应的预设粒子模型。其中,针对每种粒子特效,存储了该粒子特效对应的多个预设粒子模型;本申请以一种粒子特效对应的多个预设粒子模型为例进行示例性说明。
示例性的,一种粒子特效对应的多个预设粒子模型中,不同预设粒子模型对应的模型复杂度不同。
示例性的,预设粒子模型定义了粒子行为参数,示例性的,可以根据粒子行为参数来确定粒子模型的复杂度;例如,采用预设粒子模型的粒子数,表征预设粒子模型的复杂度;又例如,根据预设粒子模型的粒子数确定复杂度等级,采用复杂度等级表征预设粒子模型的复杂度;等等,本申请对此不作限制。示例性的,粒子数可以是指某一个时刻,空间中的粒子数,等于画面能显示出的最大粒子数。示例性的,预设粒子模型的粒子数越大,预设粒子模型的复杂度越低;反之,预设粒子模型的粒子数越小,预设粒子模型的复杂度越高。
图7b为示例性示出的预设粒子模型的示例图。其中,图7b示出的是同一粒子特效对应的3种不同复杂度的预设粒子模型。示例性的,图7b(1)中的预设粒子模型的粒子数为300个,图7b(2)中的预设粒子模型的粒子数为500个,图7b(3)中的预设粒子模型的粒子数为700个。对比图7b(1)、7b(2)和7b(3)可知,图7b(2)中的预设粒子模型的复杂度,大于图7b(1)中的预设粒子模型的复杂度,图7b(3)中的预设粒子模型的复杂度,大于图7b(2)中的预设粒子模型的复杂度。
示例性的,建立各预设粒子模型与对应的预设参数范围的关联,或者,确定各种粒子模型对应的复杂度等级以及建立复杂度等级波动值与信道状态变化范围的关联;然后基于建立的关联,从多个预设粒子模型中,确定与信道反馈信息对应的粒子模型。具体可以参照上述图4a实施例中的描述,在此不再赘述。
示例性的,预设粒子模型的复杂度越高,则对应的预设参数范围中网络传输带宽范围的边界值越大,网络传输延迟范围的边界值、网络抖动范围的边界值以及网络丢包率范围的边界值越小;反之,预设粒子模型的复杂度越低,则对应的预设参数范围中网络传输带宽范围的边界值越小,网络传输延迟范围的边界值、网络抖动范围的边界值以及网络丢包率范围的边界值越大。
示例性的,预设粒子模型的复杂度越高,则对应的信道状态范围的边界值越大;反之,预设粒子模型的复杂度越低,则对应的信道状态范围的边界值越小。
示例性的,预设粒子模型的复杂度越高,对应的复杂度等级越高。
这样,当确定本次需要对多个粒子特效进行渲染时,可以参照上述的描述,针对每一个粒子特效,从该粒子特效所对应的多个预设粒子模型中,确定信道反馈信息对应的粒子模型。
S703,基于信道反馈信息对应的粒子模型进行粒子渲染,以得到渲染后的图像。
示例性的,当在渲染当前帧的过程中获取到信道反馈信息并确定信道反馈信息对应的粒子模型时,则渲染在下一帧的过程中,采用信道反馈信息对应的粒子模型进行粒子渲染,得到渲染后的下一帧图像。
需要说明的是,在渲染同一种粒子特效对应的视频序列中的每一帧时,针对当前帧,当当前帧确定的信道反馈信息对应的粒子模型和上一帧确定的信道反馈信息对应的粒子模型不同时,则可以根据当前帧确定的信道反馈信息对应的粒子模型和上一帧确定的信道反馈信息对应的粒子模型的比对结果,当前帧与下一帧的帧间隔,以及当前帧确定的信道反馈信息对应的粒子模型确定当前帧所新生成的粒子数、粒子属性以及需要被消灭的粒子;然后将存活的粒子渲染到当前帧中。
进而,渲染后的图像的内容复杂度与信道反馈信息对应的粒子模型的复杂度是相关联的,即信道反馈信息对应的粒子模型的复杂度越高时,渲染后的图像中的粒子复杂度越高,则渲染后的图像的内容复杂度越高;信道反馈信息对应的粒子模型的复杂度越低时,渲染后的图像中的粒子复杂度越低,则渲染后的图像的内容复杂度越低。
这样,通过根据复杂度与信道状态适应的粒子模型进行粒子渲染,使得渲染后的图像中粒子运动复杂度与信道状态适配,进而实现渲染后的图像对应的编码码流的大小与信道状态适配,从而保证视频的画面主观质量和视频流畅度,提升了用户体验。
此外,当信道反馈信息对应的粒子模型的模型复杂度越低时,渲染复杂度越低,渲染速度越快。当信道反馈信息对应的粒子模型的模型复杂度越高时,渲染后的图像中的粒子运动复杂度越高,对应视频序列展示的粒子运动过程就越真实,进而使得粒子特效更逼真,从而提高用户体验。
应该理解的是,当每组预设渲染输入信息包括预设三维物体模型、预设运动模型、预设纹理贴图以及预设粒子模型中的任意两种或两种以上时,可以将上述对应的实施例进行组合,确定信道反馈信息对应的渲染输入信息,然后基于确定的渲染输入信息进行渲染,得到渲染后的图像;在此不再赘述。
示例性的,可以在信道状态变化程度较大时,根据信道反馈信息确定对应的渲染输入信息;而在信道变化程度较小时,根据上一次确定的渲染输入信息的复杂度,确定本次的渲染输入信息。这样,可以降低渲染输入信息的切换频率,以及降低预设渲染输入信息的数量。
图8为示例性示出的渲染过程示意图。
S801,获取编码传输信道的信道反馈信息。
示例性的,S801可以参照上文S401的描述,在此不再赘述。
S802,根据信道反馈信息,确定信道状态变化程度。
示例性的,可以参照上述S402中的描述,确定信道状态变化程度,在此不再赘述。
S803,判断信道状态变化程度是否大于预设变化阈值。
示例性的,可以将信道状态变化程度与预设变化阈值进行比对,来确定是否根据信道反馈信息确定对应的渲染输入信息。预设变化阈值可以按照需求设置,本申请对此不作限制。其中,确定信道状态变化程度的过程可以参照上文的描述,在此不再赘述。
S804,当信道状态变化程度大于预设变化阈值时,从多组预设渲染输入信息中,确定信道反馈信息对应的渲染输入信息。
示例性的,当确定信道状态变化程度大于预设变化阈值时,可以确定信道状态变化较大,此时可以根据信道反馈信息确定对应的渲染输入信息,也就是,从多组预设渲染输入信息中,确定信道反馈信息对应的渲染输入信息。其中,S804可以参照上述S402、S502、S602和S702的描述,在此不再赘述。
S805,当信道状态变化程度小于或等于预设变化阈值时,从多组预设渲染输入信息中,确定与上一次确定的渲染输入信息的复杂度对应的渲染输入信息。
示例性的,当信道状态变化程度小于或等于预设变化阈值时,说明信道状态变化较小,此时可以根据上一次确定的渲染输入信息的复杂度,从多组预设渲染输入信息中确定对应的渲染输入信息。
以预设渲染输入信息为预设三维物体模型为例:
一种可能的方式中,若针对每一个预设三维物体模型,设置了对应的预设参数范围;则可以先确定上一次确定的预设三维物体模型所关联的预设参数范围,将该预设参数范围作为参考参数范围。然后在确定本次渲染所需的目标物体后,针对一个目标物体,可以从该目标物体对应的多个预设三维物体模型中,查找所关联的预设参数范围与参考参数范围相同的预设三维物体模型,将该预设三维物体模型,确定为本次渲染所需的三维物体模型。
一种可能的方式中,若针对每个预设三维物体模型,标识对应的复杂度等级;则可以先确定上一次确定的预设三维物体模型所关联的复杂度等级,并该复杂度等级作为参考等级。然后在确定本次渲染所需的目标物体后,针对一个目标物体,可以从该目标物体对应的多个预设三维物体模型中,查找复杂度等级与参考等级相同的预设三维物体模型,将该预设三维物体模型,确定为本次渲染所需的三维物体模型。
S806,基于渲染输入信息进行渲染,以得到渲染后的图像。
示例性的,S806可以参照上述S403、S503、S603和S703的描述,在此不再赘述。
这样,可以降低渲染输入信息的切换频率,以及降低预设渲染输入信息的数量。
图9为示例性示出的渲染装置的示意图,可以用于执行前述实施例的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。在图9的实施例中,渲染装置可以包括:
信道信息获取模块901,用于获取编码传输信道的信道反馈信息,编码传输信道用于传输渲染后的图像对应的编码码流;
输入信息确定模块902,用于从多组预设渲染输入信息中,确定信道反馈信息对应的渲染输入信息,其中,多组预设渲染输入信息的复杂度不同;
渲染模块903,用于基于信道反馈信息对应的渲染输入信息进行渲染,以得到渲染后的图像,其中,渲染后的图像的内容复杂度与信道反馈信息对应的渲染输入信息的复杂度相关联。
需要说明的是,信道信息获取模块901、输入信息确定模块902和渲染模块903,均属于图1a及图1b中所示的渲染模块。其中,信道信息获取模块901从图1b中信道反馈信息模块获取编码传输信道的信道反馈信息。
示例性的,信道反馈信息对应的渲染输入信息包括以下至少一种:三维物体模型、运动模型、粒子模型和纹理贴图。
示例性的,输入信息确定模块902,具体用于当每组预设渲染输入信息包括预设三维物体模型时,从多个预设三维物体模型中,确定信道反馈信息对应的三维物体模型,多个预设三维物体模型对应同一个物体,多个预设三维物体模型的复杂度不同;
渲染模块903,具体用于基于信道反馈信息对应的三维物体模型进行渲染,以得到渲染后的图像,其中,渲染后的图像的内容复杂度与信道反馈信息对应的三维物体模型的复杂度相关联。
示例性的,预设三维物体模型为面片模型,预设三维物体模型的复杂度依据预设三维物体模型的面片数确定;或,预设三维物体模型为点云模型,预设三维物体模型的复杂度依据预设三维物体模型的顶点数确定。
示例性的,输入信息确定模块902,具体用于当每组预设渲染输入信息包括预设运动模型时,从多个预设运动模型中,确定信道反馈信息对应的运动模型,多个预设运动模型对应同一个运动过程,多个预设运动模型的复杂度不同;渲染模块903,具体用于基于信道反馈信息对应的运动模型进行渲染,以得到渲染后的图像,其中,渲染后的图像的内容复杂度与信道反馈信息对应的运动模型的复杂度相关联。
示例性的,预设运动模型的复杂度依据预设运动模型的物理仿真单元粒度确定,物理仿真单元粒度是指三维物体模型被划分为用于物理仿真的单元的粒度。
示例性的,输入信息确定模块902,具体用于当每组预设渲染输入信息包括预设粒子模型时,从多个预设粒子模型中,确定信道反馈信息对应的粒子模型,多个预设粒子模型对应同一种粒子特效,多个预设粒子模型的复杂度不同;渲染模块903,具体用于基于信道反馈信息对应的粒子模型进行粒子渲染,以得到渲染后的图像,其中,渲染后的图像的内容复杂度与信道反馈信息对应的粒子模型的复杂度相关联。
示例性的,预设粒子模型的复杂度依据预设粒子模型的粒子行为参数确定。
示例性的,输入信息确定模块902,具体用于当每组预设渲染输入信息包括预设纹理贴图时,从多个预设纹理贴图中,确定信道反馈信息对应的纹理贴图,多个预设纹理贴图对应同一个物体,多个预设纹理贴图的纹理复杂度不同;渲染模块903,具体用于基于信道反馈信息对应的纹理贴图进行渲染,以得到渲染后的图像,其中,渲染后的图像的内容复杂度与信道反馈信息对应的纹理贴图的纹理复杂度相关联。
示例性的,该渲染装置装置还包括:变化程度确定模块,用于根据信道反馈信息,确定信道状态变化程度;输入信息确定模块902,具体用于当信道状态变化程度大于预设变化阈值时,从多组预设渲染输入信息中,确定信道反馈信息对应的渲染输入信息。需要说明的是,变化程度确定模块可以属于图1中的渲染模块。
示例性的,信道反馈信息包括以下至少一种:网络传输带宽;网络传输延迟;网络抖动值;网络丢包率。
一个示例中,图10示出了本申请实施例的一种示意性框图装置1000,可包括:处理器1001和收发器/收发管脚1002,可选地,还包括存储器1003。
装置1000的各个组件通过总线1004耦合在一起,其中总线1004除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都称为总线1004。
可选地,存储器1003可以用于存储前述方法实施例中的指令。该处理器1001可用于执行存储器1003中的指令,并控制接收管脚接收信号,以及控制发送管脚发送信号。
装置1000可以是上述方法实施例中的电子设备或电子设备的芯片。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的渲染方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的渲染方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的渲染方法。
其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本申请各个实施例的任意内容,以及同一实施例的任意内容,均可以自由组合。对上述内容的任意组合均在本申请的范围之内。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
结合本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机可读存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (27)
1.一种渲染方法,其特征在于,所述方法包括:
获取编码传输信道的信道反馈信息,所述编码传输信道用于传输渲染后的图像对应的编码码流;
从多组预设渲染输入信息中,确定所述信道反馈信息对应的渲染输入信息,其中,所述多组预设渲染输入信息的复杂度不同;
基于所述信道反馈信息对应的渲染输入信息进行渲染,以得到所述渲染后的图像,其中,所述渲染后的图像的内容复杂度与所述信道反馈信息对应的渲染输入信息的复杂度相关联。
2.根据权利要求1所述的方法,其特征在于,所述信道反馈信息对应的渲染输入信息包括以下至少一种:三维物体模型、运动模型、粒子模型和纹理贴图。
3.根据权利要求1或2所述的方法,其特征在于,当每组预设渲染输入信息包括预设三维物体模型时,所述从多组预设渲染输入信息中,确定所述信道反馈信息对应的渲染输入信息,包括:
从多个预设三维物体模型中,确定所述信道反馈信息对应的三维物体模型,所述多个预设三维物体模型对应同一个物体,所述多个预设三维物体模型的复杂度不同;
所述基于所述信道反馈信息对应的渲染输入信息进行渲染,以得到所述渲染后的图像,包括:
基于所述信道反馈信息对应的三维物体模型进行渲染,以得到所述渲染后的图像,其中,所述渲染后的图像的内容复杂度与所述信道反馈信息对应的三维物体模型的复杂度相关联。
4.根据权利要求3所述的方法,其特征在于,
所述预设三维物体模型为面片模型,所述预设三维物体模型的复杂度依据所述预设三维物体模型的面片数确定;或,
所述预设三维物体模型为点云模型,所述预设三维物体模型的复杂度依据所述预设三维物体模型的顶点数确定。
5.根据权利要求1至4中任一项所述的方法,其特征在于,当每组预设渲染输入信息包括预设运动模型时,所述从多组预设渲染输入信息中,确定所述信道反馈信息对应的渲染输入信息,包括:
从多个预设运动模型中,确定所述信道反馈信息对应的运动模型,所述多个预设运动模型对应同一个运动过程,所述多个预设运动模型的复杂度不同;
所述基于所述信道反馈信息对应的渲染输入信息进行渲染,以得到所述渲染后的图像,包括:
基于所述信道反馈信息对应的运动模型进行渲染,以得到所述渲染后的图像,其中,所述渲染后的图像的内容复杂度与所述信道反馈信息对应的运动模型的复杂度相关联。
6.根据权利要求5所述的方法,其特征在于,
所述预设运动模型的复杂度依据所述预设运动模型的物理仿真单元粒度确定,所述物理仿真单元粒度是指三维物体模型被划分为用于物理仿真的单元的粒度。
7.根据权利要求1至6中任一项所述的方法,其特征在于,当每组预设渲染输入信息包括预设粒子模型时,所述从多组预设渲染输入信息中,确定所述信道反馈信息对应的渲染输入信息,包括:
从多个预设粒子模型中,确定所述信道反馈信息对应的粒子模型,所述多个预设粒子模型对应同一种粒子特效,所述多个预设粒子模型的复杂度不同;
所述基于所述信道反馈信息对应的渲染输入信息进行渲染,以得到所述渲染后的图像,包括:
基于所述信道反馈信息对应的粒子模型进行粒子渲染,以得到所述渲染后的图像,其中,所述渲染后的图像的内容复杂度与所述信道反馈信息对应的粒子模型的复杂度相关联。
8.根据权利要求7所述的方法,其特征在于,
所述预设粒子模型的复杂度依据所述预设粒子模型的粒子行为参数确定。
9.根据权利要求1至8中任一项所述的方法,其特征在于,当每组预设渲染输入信息包括预设纹理贴图时,所述从多组预设渲染输入信息中,确定所述信道反馈信息对应的渲染输入信息,包括:
从多个预设纹理贴图中,确定所述信道反馈信息对应的纹理贴图,所述多个预设纹理贴图对应同一个物体,所述多个预设纹理贴图的纹理复杂度不同;
所述基于所述信道反馈信息对应的渲染输入信息进行渲染,以得到所述渲染后的图像,包括:
基于所述信道反馈信息对应的纹理贴图进行渲染,以得到所述渲染后的图像,其中,所述渲染后的图像的内容复杂度与所述信道反馈信息对应的纹理贴图的纹理复杂度相关联。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述方法还包括:
根据所述信道反馈信息,确定信道状态变化程度;
当所述信道状态变化程度大于预设变化阈值时,执行所述从多组预设渲染输入信息中,确定所述信道反馈信息对应的渲染输入信息的步骤。
11.根据权利要求1至10中任一项所述的方法,其特征在于,所述信道反馈信息包括以下至少一种:
网络传输带宽;
网络传输延迟;
网络抖动值;
网络丢包率。
12.一种图形处理器,其特征在于,用于执行如权利要求1至权利要求11中任一项所述的渲染方法。
13.一种渲染装置,其特征在于,所述装置包括:
信道信息获取模块,用于获取编码传输信道的信道反馈信息,所述编码传输信道用于传输渲染后的图像对应的编码码流;
输入信息确定模块,用于从多组预设渲染输入信息中,确定所述信道反馈信息对应的渲染输入信息,其中,所述多组预设渲染输入信息的复杂度不同;
渲染模块,用于基于所述信道反馈信息对应的渲染输入信息进行渲染,以得到所述渲染后的图像,其中,所述渲染后的图像的内容复杂度与所述信道反馈信息对应的渲染输入信息的复杂度相关联。
14.根据权利要求13所述的装置,其特征在于,所述信道反馈信息对应的渲染输入信息包括以下至少一种:三维物体模型、运动模型、粒子模型和纹理贴图。
15.根据权利要求13或14所述的装置,其特征在于,
所述输入信息确定模块,具体用于当每组预设渲染输入信息包括预设三维物体模型时,从多个预设三维物体模型中,确定所述信道反馈信息对应的三维物体模型,所述多个预设三维物体模型对应同一个物体,所述多个预设三维物体模型的复杂度不同;
所述渲染模块,具体用于基于所述信道反馈信息对应的三维物体模型进行渲染,以得到所述渲染后的图像,其中,所述渲染后的图像的内容复杂度与所述信道反馈信息对应的三维物体模型的复杂度相关联。
16.根据权利要求15所述的装置,其特征在于,
所述预设三维物体模型为面片模型,所述预设三维物体模型的复杂度依据所述预设三维物体模型的面片数确定;或,
所述预设三维物体模型为点云模型,所述预设三维物体模型的复杂度依据所述预设三维物体模型的顶点数确定。
17.根据权利要求13至16中任一项所述的装置,其特征在于,
所述输入信息确定模块,具体用于当每组预设渲染输入信息包括预设运动模型时,从多个预设运动模型中,确定所述信道反馈信息对应的运动模型,所述多个预设运动模型对应同一个运动过程,所述多个预设运动模型的复杂度不同;
所述渲染模块,具体用于基于所述信道反馈信息对应的运动模型进行渲染,以得到所述渲染后的图像,其中,所述渲染后的图像的内容复杂度与所述信道反馈信息对应的运动模型的复杂度相关联。
18.根据权利要求17所述的装置,其特征在于,
所述预设运动模型的复杂度依据所述预设运动模型的物理仿真单元粒度确定,所述物理仿真单元粒度是指三维物体模型被划分为用于物理仿真的单元的粒度。
19.根据权利要求13至18中任一项所述的装置,其特征在于,
所述输入信息确定模块,具体用于当每组预设渲染输入信息包括预设粒子模型时,从多个预设粒子模型中,确定所述信道反馈信息对应的粒子模型,所述多个预设粒子模型对应同一种粒子特效,所述多个预设粒子模型的复杂度不同;
所述渲染模块,具体用于基于所述信道反馈信息对应的粒子模型进行粒子渲染,以得到所述渲染后的图像,其中,所述渲染后的图像的内容复杂度与所述信道反馈信息对应的粒子模型的复杂度相关联。
20.根据权利要求19所述的装置,其特征在于,
所述预设粒子模型的复杂度依据所述预设粒子模型的粒子行为参数确定。
21.根据权利要求13至20中任一项所述的装置,其特征在于,
所述输入信息确定模块,具体用于当每组预设渲染输入信息包括预设纹理贴图时,从多个预设纹理贴图中,确定所述信道反馈信息对应的纹理贴图,所述多个预设纹理贴图对应同一个物体,所述多个预设纹理贴图的纹理复杂度不同;
所述渲染模块,具体用于基于所述信道反馈信息对应的纹理贴图进行渲染,以得到所述渲染后的图像,其中,所述渲染后的图像的内容复杂度与所述信道反馈信息对应的纹理贴图的纹理复杂度相关联。
22.根据权利要求13至21中任一项所述的装置,其特征在于,所述装置还包括:
变化程度确定模块,用于根据所述信道反馈信息,确定信道状态变化程度;
所述输入信息确定模块,具体用于当所述信道状态变化程度大于预设变化阈值时,从多组预设渲染输入信息中,确定所述信道反馈信息对应的渲染输入信息。
23.根据权利要求13至22中任一项所述的装置,其特征在于,所述信道反馈信息包括以下至少一种:
网络传输带宽;
网络传输延迟;
网络抖动值;
网络丢包率。
24.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器与所述处理器耦合;
所述存储器存储有程序指令,当所述程序指令由所述处理器执行时,使得所述电子设备执行权利要求1至权利要求11中任一项所述的渲染方法。
25.一种芯片,其特征在于,包括一个或多个接口电路和一个或多个处理器;所述接口电路用于从电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,使得所述电子设备执行权利要求1至权利要求11中任一项所述的渲染方法。
26.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序运行在计算机或处理器上时,使得所述计算机或所述处理器执行如权利要求1至11中任一项所述的渲染方法。
27.一种计算机程序产品,其特征在于,所述计算机程序产品包含软件程序,当所述软件程序被计算机或处理器执行时,使得权利要求1至11中任一项所述的方法的步骤被执行。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210222772.4A CN116764188A (zh) | 2022-03-07 | 2022-03-07 | 渲染方法及电子设备 |
PCT/CN2023/078241 WO2023169234A1 (zh) | 2022-03-07 | 2023-02-24 | 渲染方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210222772.4A CN116764188A (zh) | 2022-03-07 | 2022-03-07 | 渲染方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116764188A true CN116764188A (zh) | 2023-09-19 |
Family
ID=87937175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210222772.4A Pending CN116764188A (zh) | 2022-03-07 | 2022-03-07 | 渲染方法及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116764188A (zh) |
WO (1) | WO2023169234A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8264493B2 (en) * | 2008-05-12 | 2012-09-11 | Playcast Media Systems, Ltd. | Method and system for optimized streaming game server |
WO2012078640A2 (en) * | 2010-12-06 | 2012-06-14 | The Regents Of The University Of California | Rendering and encoding adaptation to address computation and network bandwidth constraints |
US9412332B2 (en) * | 2013-12-20 | 2016-08-09 | Blackberry Limited | Method for wirelessly transmitting content from a source device to a sink device |
US11830225B2 (en) * | 2018-05-30 | 2023-11-28 | Ati Technologies Ulc | Graphics rendering with encoder feedback |
CN109600617B (zh) * | 2018-12-19 | 2020-07-21 | 北京东土科技股份有限公司 | 视频数据的编码、转发方法、装置、设备及存储介质 |
-
2022
- 2022-03-07 CN CN202210222772.4A patent/CN116764188A/zh active Pending
-
2023
- 2023-02-24 WO PCT/CN2023/078241 patent/WO2023169234A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2023169234A1 (zh) | 2023-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10636201B2 (en) | Real-time rendering with compressed animated light fields | |
CA2948903C (en) | Method, system and apparatus for generation and playback of virtual reality multimedia | |
US9491433B2 (en) | Moving image distribution server, moving image playback apparatus, control method, and recording medium | |
KR101536501B1 (ko) | 동화상 배포 서버, 동화상 재생 장치, 제어 방법, 기록 매체, 및 동화상 배포 시스템 | |
JP2010045776A (ja) | 映像レンダリングの方法およびシステム、そのためのコンピュータプログラム製品 | |
KR101491941B1 (ko) | 서버로부터 클라이언트로 3d 비디오 정보를 전송하기 위한 디바이스 및 방법 | |
JP7527351B2 (ja) | シーンの画像キャプチャの品質を評価するための装置及び方法 | |
US20220353486A1 (en) | Method and System for Encoding a 3D Scene | |
US20170221174A1 (en) | Gpu data sniffing and 3d streaming system and method | |
Koniaris et al. | Real-time Rendering with Compressed Animated Light Fields. | |
Lu et al. | Renderfusion: Balancing local and remote rendering for interactive 3d scenes | |
CN118229805A (zh) | 编解码方法、装置、设备、存储介质及程序产品 | |
CN117376540A (zh) | 一种基于深度图的虚拟视角合成方法和装置 | |
CN116764188A (zh) | 渲染方法及电子设备 | |
JP7326457B2 (ja) | 画像信号を生成する装置および方法 | |
US20230042078A1 (en) | Encoding and decoding views on volumetric image data | |
US11823323B2 (en) | Apparatus and method of generating an image signal | |
WO2024140685A1 (zh) | 端云协同系统、编解码方法及电子设备 | |
US20220353530A1 (en) | Method and System for Encoding a 3D Scene | |
WO2024140684A1 (zh) | 端云协同系统、编解码方法及电子设备 | |
Artois et al. | OpenDIBR: Open Real-Time Depth-Image-Based renderer of light field videos for VR | |
TWI532005B (zh) | An animation distribution server, an animation reproduction apparatus, a control method, a program, and a recording medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |