CN101295408A - 一种3d图文渲染方法和渲染系统 - Google Patents
一种3d图文渲染方法和渲染系统 Download PDFInfo
- Publication number
- CN101295408A CN101295408A CNA2007100988073A CN200710098807A CN101295408A CN 101295408 A CN101295408 A CN 101295408A CN A2007100988073 A CNA2007100988073 A CN A2007100988073A CN 200710098807 A CN200710098807 A CN 200710098807A CN 101295408 A CN101295408 A CN 101295408A
- Authority
- CN
- China
- Prior art keywords
- rendering
- played
- transparent substance
- transparent
- unit
- 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
Images
Landscapes
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明提供一种3D图文渲染方法和渲染系统。该渲染方法包括步骤:获取场景描述数据,以获得场景信息;对场景描述数据进行解析,其中,至少包括对不透明物体和透明物体进行分类;对不透明物体进行渲染;采用多步渲染方式对透明物体进行渲染;合成所述不透明物体和透明物体的渲染结果。通过本发明,使得在复杂场景中可实时高效地对透明物体进行正确的透明渲染,生成透明物体,且生成的透明图文和其它图文/视频合成时具有正确的颜色和透明信息。
Description
技术领域
本发明涉及3D图文渲染技术,特别涉及复杂场景中生成透明物体的3D图文渲染方法和渲染系统。
背景技术
目前,3D图文广泛应用于电视包装系统中,计算机生成的3D图文效果可以混合在其它视频或图文上,3D图文中透明物件的渲染是生成适合混合的图文效果的必要步骤。
如图1所示,为现有技术中的3D图文渲染系统结构示意图。该渲染系统100包括场景解析单元101、场景描述数据存储单元102和渲染器103。
如图1所示,在现有3D图文渲染系统100中,场景解析单元101获得其它3D场景创作单元生成并保存的3D场景描述数据文件,其中,3D场景创作单元生成的3D场景描述数据文件可以是由3D、Max、Maya等3D场景创作软件生成,其保存的场景描述数据文件相应为.3ds、.ma等格式;然后,对该场景描述数据文件进行解析,其中,解析是指将不同来源、不同格式的数据文件描述的场景转换为系统设计的场景描述格式,包括物体之间的层次关系、物体灯光、材质、纹理等属性,不同来源的数据记录的格式是不同的;再将解析后的场景描述数据导入存储单元102。然后,渲染器103对存储单元102中的场景描述数据进行渲染。渲染结束后,将渲染后的数据送至混合器中与外部图文和/或视频进行混合,最后合成视频图文效果。其中,场景描述数据存储单元104存储所获得的场景描述数据,该场景描述数据记录所有要表达物体的属性,包括几何形状、纹理、光照、材质、透明度等。
场景描述数据通过渲染器105解析并将物体属性数据按照3D物体计算机生成方法进行处理,最终仿真地展现三维空间物体的几何形状和质地,这个过程称为渲染。在实时(在电视图文系统中,PAL制式时每秒渲染25帧或NTSC制式时每秒渲染30帧画面)3D图文渲染系统中,计算机图形处理硬件是用于执行渲染程序的硬件设备。
在3D图文渲染系统100中,为了表现物体的层次关系和透明材质物体,多个透明物体可以在空间上交织在一起,渲染系统100应该正确渲染这些透明物体及其层次关系。如图2所示,为现有技术中3D图文渲染系统中渲染器105的操作流程图。
首先,渲染器105接收场景描述数据(见步骤200);对场景描述数据进行物体分类,将其分为不透明物体和透明物体(见步骤201);对不透明物体进行渲染,按照深度值(Z)缓冲算法渲染(见步骤202、203);然后对透明物体进行渲染,对透明物体进行排序(见步骤204、205);最后打开混合状态,从远及近渲染透明物体(见步骤206),渲染结束。
在上述步骤205中,要对透明物体进行排序,当物体空间位置交叉或物体几何形状复杂时,为了正确处理透明物体层次需要对物体进行面片(描述物体的最小几何单元)级排序,且物体存在位置或形状动画时,每次渲染都要对所有透明物体执行一次这样的排序工作,这样,在当前计算机系统和复杂场景下,这种工作不适合实时渲染系统。其中,形状动画是指物体可以随时间变化而变形,如缩放大小、弯曲等。
现有技术中,在3D图文渲染系统中,通过透明度(Alpha)混合的方式体现透明物体的空间关系,当前计算机图形处理硬件支持以下五种混合模式,如表1所示,其中只针对RGBA(RGB表示颜色,A表示透明度)颜色模式下表示的物体颜色和透明度:
表1
混合模式 | RGB分量 | Alpha分量 |
叠加(ADD) | C=Cs×Fcs+Cd×Fcd | A=As×Fas+Ad×Fad |
减(SUBTRACT) | C=Cs×Fcs-Cd×Fcd | A=As×Fas-Ad×Fad |
反向减(REVERSE_SUBTRACT) | C=Cd×Fcd-Cs×Fcs | A=Ad×Fad-As×Fas |
最小(MIN) | C=min(Cs,Cd) | A=min(As,Ad) |
最大(MAX) | C=max(Cs,Cd) | A=max(As,Ad) |
表1中,各个系数的含义如下:
C表示颜色RGB(R:Red;G:Green;B:Blue);A(Alpha)表示透明度;(C,A)表示两个物体混合后的颜色和透明度;(Cs,As)表示上层物体(称为源)颜色和透明度;(Cd,Ad)表示下层物体(称为目标)颜色和透明度;Fcs表示混合时上层物体颜色RGB分量适用的系数;Fas表示混合时上层物体颜色Alpha分量适用的系数;Fcd表示混合时下层物体颜色RGB分量适用的系数;Fad表示混合下层物体颜色Alpha分量适用的系数。
现有技术中,上述各个系数的取值方式如表2所示。
表2
系数取值方式 | RGB混合系数Fcs(Fcsr,Fcsg,Fcsb)或Fcd(Fcdr,Fcdg,Fcdb) | Alpha混合系数Fas或Fad |
零(ZERO) | (0,0,0) | 0 |
一(ONE) | (1,1,1) | 1 |
源颜色(SRC_COLOR) | (Rs,Gs,Bs) | As |
一减源颜色(ONE_MINUS_SRC_COLOR) | (1,1,1)(Rs,Gs,Bs) | 1As |
目标颜色(DST_COLOR) | (Rd,Gd,Bd) | Ad |
一减目标颜色(ONE_MINUS_DST_COLOR) | (1,1,1)(Rd,Gd,Bd) | 1Ad |
源透明度(SRC_ALPHA) | (As,As,As) | As |
一减源透明度度(ONE_MINUS_SRC_ALPHA) | (1,1,1)(As,As,As) | 1As |
目标透明度(DST_ALPHA) | (Ad,Ad,Ad) | Ad |
一减目标透明度(ONE_MINUS_DST_ALPHA) | (1,1,1)(Ad,Ad,Ad) | 1Ad |
常量颜色(CONSTANT_COLOR) | (Rc,Gc,Bc) | Ac |
一减常量颜色(ONE_MINUS_CONSTANT_COLOR) | (1,1,1)(Rc,Gc,Bc) | 1Ac |
常量透明度(CONSTANT_ALPHA) | (Ac,Ac,Ac) | Ac |
一减常量透明度(ONE_MINUS_CONSTANT_ALPHA) | (1,1,1)(Ac,Ac,Ac) | 1Ac |
源透明饱和度(SRC_ALPHA_SATURATE) | (f,f,f)*(f,f,,f) | 1 |
在表2中,f=min(As,1-Ad),(Rc,Gc,Bc,Ac)为混合渲染中设置的常量颜色和透明度值。
一般情况下,在3D图文渲染系统中,混合渲染选择Alpha叠加方式,即表1所示的混合模式中的ADD模式,并且源混合系数选择表2中的源透明度SRC_ALPHA,目标混合系数选择表2中的一减源透明度ONE_MINUS_SRC_ALPHA,这也是电视图文系统中色键、切换台等设备进行图文和视频混合时的硬件混合方式,下面有关混合的讨论基于上述方式。
在现有技术中,Alpha混合渲染中,取RGB和Alpha分量的混合系数保持一致,从表1和表2可知,混合所用公式如下:
C=Cs×Fcs+Cd×Fcd=Cs×As+Cd×(1-As)(1)
A=As×Fas+Ad×Fad=As×As+Ad×(1-As)(2)
以下举一具体的例子对混合渲染进行说明。如图3所示,为采用上述公式描述的混合渲染的示意图。
在图3所示的Alpha混合实例中,目标物体颜色为Cd=(Rd,Gd,Bd)=(0,0,255),透明度Ad=1,源物体颜色为Cs=(Rs,Gs,Bs)=(255,0,0),透明度As=0.5。混合后的颜色为C=(255,0,0)×0.5+(0,0,255)×(1-0.5)=(128,0,128),透明度为A=0.5×0.5+1×(1-0.5)=0.75。
由上述可知,当将由公式(1)计算出的图文渲染结果(C,A)输出到混合器上用于和视频混合时,图文效果偏暗,这是因为图文中的由公式(1)计算出的C(即RGB)已经是Alpha作用后的结果,其和视频混合时又要作用以由公式(2)计算出A(即Alpha),且公式(2)计算出的Alpha值因为自乘而偏低。
由上面对现有技术中3D图文系统采用的渲染流程和透明物体混合渲染分析可知,复杂场景下,现有3D图文渲染系统不能实时对透明物体进行正确的透明渲染,特别是渲染结果用于和其它视频和图文画面合成时使得图文效果偏暗。
发明内容
鉴于现有技术中存在的上述问题,本发明实施例提供一种3D图文渲染方法和渲染系统。通过本发明实施例,使得在复杂场景中可实时高效地对透明物体进行正确的透明渲染,生成透明物体,且生成的透明图文和其它图文/视频合成时具有正确的颜色和透明信息。
本发明实施例提供一种3D图文渲染方法,包括步骤:
获取场景描述数据,以获得场景信息;
对场景描述数据进行解析,其中,至少包括对不透明物体和透明物体进行分类;
对不透明物体进行渲染;
采用多步渲染方式对透明物体进行渲染;
合成所述不透明物体和透明物体的渲染结果。
本发明实施例还提供一种3D图文渲染系统,包括场景解析单元和存储单元,其中,还包括渲染器;所述渲染器用于对从所述存储单元获取的场景描述数据进行解析,对不透明物体进行渲染,且采用多步渲染方式对透明物体进行渲染,将所述不透明物体和透明物体的渲染结果进行合成,并对合成结果进行颜色校正。
本发明实施例还提供一种渲染器,包括:解析单元、渲染单元和合成单元;其中,解析单元,用于获取所述存储单元中的场景描述数据,并对场景描述数据进行解析,其中至少包括对不透明物体和透明物体进行分类,然后将解析结果送至所述渲染单元;
渲染单元,用于对所述不透明物体进行渲染,并采用多步渲染方式对透明物体进行渲染,并将渲染结果传送至所述合成单元;
合成单元,用于接收所述渲染单元传送的所述不透明物体和透明物体的渲染结果,对所述不透明物体和透明物体的渲染结果进行合成,并对合成结果进行颜色校正。
本发明实施例的有益效果在于,在复杂场景中,通过对透明物体采用多步渲染方式,可实时高效地对透明物体进行正确的透明渲染,生成透明物体,且生成的透明图文和其它图文/视频合成时具有正确的颜色和透明信息。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1为3D图文渲染系统结构示意图;
图2为现有技术中3D图文渲染流程图;
图3为现有技术中透明度Alpha混合渲染示意图;
图4为本发明实施例3D图文渲染系统结构示意图;
图5为本发明实施例3D图文渲染器结构示意图;
图6为本发明实施例用于渲染的场景描述数据结构示意图;
图7为本发明实施例的3D图文渲染流程图;
图8为本发明实施例对透明物体进行多步渲染流程图;
图9为本发明实施例的合成处理流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
本发明实施例提供一种3D图文渲染方法和渲染系统。以下结合附图对本发明进行详细说明。
实施例一
本发明实施例提供一种3D图文渲染系统,如图4所示,该图文渲染系统400包括:场景解析单元401和存储单元404,其中,还包括渲染器405。
本实施例中,场景解析单元401,用于获得其它3D场景创作单元生成并保存的3D场景描述数据文件,其中,3D场景创作单元生成的3D场景描述数据文件可以是由3D、Max、Maya等3D场景创作软件生成,其保存的场景描述数据文件相应为.3ds、.ma等格式;然后,对该场景描述数据文件进行解析,其中,解析是指将不同来源、不同格式的数据文件描述的场景转换为系统设计的场景描述格式,包括物体之间的层次关系、物体灯光、材质、纹理等属性,不同来源的数据记录的格式是不同的;再将解析后的场景描述数据导入存储单元403中。
存储单元404,用于储存场景解析单元401传送的场景描述数据。
渲染器405,用于对从存储单元404获取的场景描述数据进行解析,对不透明物体进行渲染,且采用多步渲染方式对透明物体进行渲染,将不透明物体和透明物体的渲染结果进行合成,并对合成结果进行颜色校正。
因此,在复杂场景中,通过对透明物体采用多步渲染方式,可实时高效地对透明物体进行正确的透明渲染,生成透明物体,且生成的透明图文和其它图文/视频合成时具有正确的颜色和透明信息。
本实施例中,渲染系统400还可包括内置物件创建单元403,与存储单元404连接,用于创建参数化的内置物件,并将该内容物件作为场景描述数据保存至存储单元404。其中,例如,直方图、三维饼图、星形等,从商用软件生成数据文件导入场景后物体都是以三角形面片形式存在,不再能够按参数修改形状(如球体不能再通过修改半径改变其大小,圆柱不能通过修改高度值而改变其高度),而渲染系统400的上述内置物件可以通过参数修改其形状,如星形可以通过控制“角数”而展现为五角星、八角形等。
此外,渲染系统400还可包括场景编辑单元402,该场景编辑单元402用于对存储单元404中储存的场景描述数据进行编辑。其中,采用场景编辑单元402进行编辑的目的是再加工场景,如改变其中某个物体的颜色、位置等,或者为物体的某些属性创建动画效果。编辑是图文应用的需要,就是说不仅可以用其他人已经创作好的效果,还可以根据现场要求而修改。
由上述可知,本实施例中,存储单元404中的场景描述数据有三种来源:一是由渲染系统400的场景解析单元401获得的其它3D创作单元生成并保存的3D场景描述数据文件,经过解析后导入场景描述数据存储单元404;二是由渲染系统400的内置物件创建单元403将其生成的物件,如直方图、星形、饼图等导入场景描述数据存储单元404;三是由场景编辑单元402对由场景解析单元401和内置物件创建单元403已经进入渲染系统400的场景描述数据进行修改。
其中,场景描述数据记录所有要表达物体的属性,包括几何形状、纹理、光照、材质、透明度等。本实施例中,场景描述数据的结构如图6所示。
本实施例中,采用多步渲染方式对透明物体进行渲染是指:对所有透明物体进行多步渲染,直至渲染到再没有像素被记录在帧缓冲中为止;其中,每一步渲染均获得包含纯粹颜色和透明度信息的图像数据层。
其中,帧缓冲是一个渲染设备上的内存块,此处可理解为就是一幅RGBA图像。没有像素记录在帧缓冲中,即内存中RGBA图为空。
另外,“纯粹”是指颜色RGB是没有和透明度Alpha数据相乘的物体颜色,透明度Alpha是单层物体表面自身的透明度信息,没有其它信息参与计算而来。
本实施例中,可采用如图5所示的渲染器405。其中,渲染器405包括解析单元501、渲染单元502和合成单元503;其中,
解析单元501,用于获取存储单元404中所存储的场景描述数据,并对场景描述数据进行解析,其中至少包括对不透明物体和透明物体进行分类,然后将解析结果送至渲染单元502;此外,解析的目的还是执行渲染操作,如碰到灯光部件就要设置渲染时的灯光信息,碰到材质部件就要设置渲染时物体使用的材质;而因为透明物体和不透明物体具有不同的渲染流程,因此通过解析分类透明和不透明物体。
渲染单元502,用于对不透明物体进行渲染,并采用多步渲染方式对透明物体进行渲染,并将渲染结果传送至合成单元503;
合成单元503,用于接收渲染单元502传送的不透明物体和透明物体的渲染结果,对不透明物体和透明物体的渲染结果进行合成,并对合成结果进行颜色校正。
由上述可知,在复杂场景中,通过对透明物体采用多步渲染方式,可实时高效地对透明物体进行正确的透明渲染。
实施例二
本发明实施例还提供一种3D图文渲染方法。下面以实施例一中的3D图文渲染系统为例,对本发明实施例的3D图文渲染方法进行详细说明。
本实施例中,如图7所示,为3D图文渲染方法流程图。该渲染方法包括步骤:渲染器405的解析单元501从存储单元404中获取场景描述数据,以获得场景信息(见步骤701);对场景描述数据进行解析,其中至少包括对不透明物体和透明物体进行分类,此外,解析的目的还是执行渲染操作,如碰到灯光部件就要设置渲染时的灯光信息,碰到材质部件就要设置渲染时物体使用的材质(见步骤702);
在渲染单元502中,对不透明物体进行渲染,以获得图像数据层,其中可采用深度值(Z)缓冲算法进行渲染(见步骤703),即就是根据深度值决定最终哪些物体对应的像素被记录在最后的帧缓冲中,如先渲染物体A,再渲染物体B,如果物体B在位置空间上处于物体A的后面,则物体B的Z值大于物体A的Z值,这时物体B不会被最后记录,但不限于此种方式;然后,采用多步渲染方式对透明物体进行渲染,以获得多层包含纯粹颜色(RGB)和透明度(Alpha)信息的图像数据(见步骤704);
最后,合成单元503对不透明物体和透明物体的渲染结果进行合成(见步骤705)。
本实施例中,存储单元404中的场景描述数据有三种来源:一是由渲染系统400的场景解析单元401获得其它3D创作单元生成并保存的3D场景描述数据文件,经过解析后导入场景描述数据存储单元404;二是由渲染系统400的内置物件创建单元403将其生成的物件,如直方图、星形、饼图等导入场景描述数据存储单元404;三是由场景编辑单元402对由场景解析单元401和内置物件创建单元403已经进入渲染系统400的场景描述数据进行修改。
在上述步骤704中采用多步渲染方式对透明物体进行渲染时,不需要排序。本实施例中,该无需排序的多步渲染方式是指:同等对待所有透明物体,关闭混合设置,打开深度缓冲设置,每一步渲染获得一层包含纯粹RGB和Alpha信息的图像数据。
上述多步渲染中,若进行到第i步渲染时,则包括步骤:渲染所有透明物体,根据所获得的第i-1表面的深度信息丢弃第i-1表面已经包含的所有像素,得到第i表面图像数据信息和每像素对应的深度;
判断是否有像素被记录在帧缓冲中;若判断结果为有像素被记录在帧缓冲中,则进行第i+1步渲染;其中,i为1至n的整数。
本实施例中,如图8所示,对多步渲染采用的步骤进行详细说明。
首先,关闭混合设置,打开深度缓冲设置,其中,打开深度缓冲是指打开深度缓冲状态,深度缓冲就是Z缓冲,深度缓冲是一个渲染设备上的内存块,只有打开深度缓冲状态时渲染过程才会将物体深度值写进去,其中也包括设置深度缓冲初始值。
本实施例中,将深度(Z)缓冲值设置为不透明物体渲染后的深度Z值,将其作为初始值(见步骤801);
第一步渲染,渲染所有透明物体,根据初始值获得离视点最近的第一表面图像信息和每像素对应的深度,具体步骤为;
渲染所有透明物体,丢弃深度Z值小于等于对应点中Z缓冲值的片段,记录保留片段的颜色值和透明度值,即RGBA值和深度值Z,获得一层包含透明信息的RGBA图和一个深度图,将深度图设置为Z缓冲值(见步骤802、803、804);
判断是否有像素记录在帧缓冲中,若判断结果为是,则结束渲染。若判断结果为否,则返回步骤802,继续第二步渲染;
依此类推,直至渲染到再没有像素被记录在帧缓冲中为止。
本实施例中,在步骤705中,合成单元503对不透明物体和透明物体的渲染结果进行合成,可采用如图9所示的流程。
如图9所示,合成不透明物体和透明物体的渲染结果,包括步骤:
初始化帧缓冲值为黑色全透明,即(0,0,0,0),设置Fcs=SRC_ALPHA,Fcd=ONE_MINUS_SRC_ALPHA,Fas=ONE,Fad=ONE_MINUS_SRC_ALPHA(见步骤901);
按照与透明物体渲染顺序相反的顺序合成每一步渲染所获得的图像数据层,即按与渲染顺序相反的次序对透明物体渲染图层执行Alpha叠加混合,如采用公式(1)、(2),最后的结果与不透明物体渲染图层执行Alpha叠加混合(见步骤902);
对所获得的混合结果,即RGBA图层执行RGB颜色校正,本实施例中,RGB=RGB/A(见步骤903),其中,RGB表示颜色,A表示透明度。
由上述实施例可知,通过对透明物体采用多步渲染方式,可在复杂场景中,实时高效地对透明物体进行正确的透明渲染,并且仅仅对合成的图形数据层进行一次校正,即可获得正确的颜色和透明信息。
以下以具体的实例来说明上述渲染方法。
如场景包括四个球体A、B、C和D,其中,
A为不透明物体,颜色为RGB=(128,0,240),空间位置任意,可以摭挡住其它三个球体,本实施例中设其摭住球B的一半。
B、C、D为空心透明球体,其中,
B的透明度为0.8,外表面颜色为RGB=(255,0,0),内表面颜色为RGB=(128,0,0);
C的透明度为0.6,外表面颜色为RGB=(0,255,0),内表面颜色为RGB=(0,128,0);
D的透明度为0.4,外表面颜色为RGB=(0,0,255),内表面颜色为RGB=(0,0,128)。
在空间上,C摭挡住D,D摭挡住B,则渲染流程如下:
步骤1,关闭混合状态,打开深度缓冲状态,渲染物体A,获得帧缓冲内容为图像C1=(128,0,240),A1=1(不透明),Z缓冲值为Z1;
步骤2,设深度缓冲值为Z=0,置帧缓冲值为RGBA=(0,0,0,0);
步骤3,渲染球B、C、D,渲染中凡是Z值大于等于Z1的像素都被丢弃,根据前面已知条件可以确认最后写入帧缓冲的是球C的前半球外表面颜色C2=(0,255,0),A2=0.6,深度缓冲值记为Z2;
步骤4,重复执行步骤2、3,深度缓冲值设为Z2,渲染中Z值大于等Z2或Z1的像素被丢弃,可以知道这一过程最后写入帧缓冲的是球C的后半球内表面颜色C3=(0,128,0),A3=0.6,深度缓冲值记为Z3;
步骤5,重复执行步骤2、3,深度缓冲值设为Z3,渲染中Z值大于等Z3或Z1的像素被丢弃,可以知道这一过程最后写入帧缓冲的是球D的前半球外表面颜色C4=(0,0,255),A4=0.4,深度缓冲值记为Z4;
步骤6,重复执行步骤2、3,深度缓冲值设为Z4,渲染中Z值大于等Z4或Z1的像素被丢弃,可以知道这一过程最后写入帧缓冲的是球D的后半球内表面颜色C5=(0,0,128),A5=0.4,深度缓冲值记为Z5;
步骤7,重复执行步骤2、3,深度缓冲值设为Z5,渲染中Z值大于等Z5或Z1的像素被丢弃,可以知道这一过程最后写入帧缓冲的是球B的前半球外表面的一半(另一半被物体A摭住,这是利用深度缓冲Z1做判断条件的结果),颜色C6=(255,0,0),A6=0.8,深度缓冲值记为Z6;
步骤8,重复执行步骤2、3,深度缓冲值设为Z6,渲染中Z值大于等Z6或Z1的像素被丢弃,可以知道这一过程最后写入帧缓冲的是球B的后半球内表面的一半(另一半被物体A摭住,这是利用深度缓冲Z1做判断条件的结果),颜色C7=(128,0,0),A7=0.8,深度缓冲值记为Z7;
步骤9,重复执行步骤2、3,深度缓冲值设为Z7,渲染中Z值大于等Z7或Z1的像素被丢弃,可以知道这一过程最后写入帧缓冲的内容为空,结束透明物体渲染循环;
步骤10,按渲染的逆序执行混合,置帧缓冲值为RGBA=(0,0,0,0),关闭深度缓冲状态,打开混合状态,设Alpha混合系数为Fcs=SRC_ALPHA,Fcd=ONE_MINUS_SRC_ALPHA,Fas=ONE,Fad=ONE_MINUS_SRC_ALPHA;
步骤11,向帧缓冲绘制颜色C7,A7,这时帧缓冲已知值是RGBA=(0,0,0,0),Fcs=A7=0.8,Fcd=1-A7=0.2,Fas=1,Fad=1-A7=0.2,最后得到帧缓冲内容为RGB=(102,0,0),A=0.8;
步骤12,向帧缓冲绘制颜色C6,A6,这时帧缓冲已知值是RGB=(102,0,0),A=0.8,Fcs=A6=0.8,Fcd=1-A6=0.2,Fas=1,Fad=1-A6=0.2,最后得到帧缓冲内容为RGB=(225,0,0),A=0.96;
步骤13,向帧缓冲绘制颜色C5,A5,这时帧缓冲已知值是RGB=(225,0,0),A=0.96,Fcs=A5=0.4,Fcd=1-A5=0.6,Fas=1,Fad=1-A5=0.6,最后得到帧缓冲内容为RGB=(135,0,51),A=0.976;
步骤14,向帧缓冲绘制颜色C4,A4,这时帧缓冲已知值是RGB=(135,0,51),A=0.976,Fcs=A4=0.4,Fcd=1-A4=0.6,Fas=1,Fad=1-A4=0.6,最后得到帧缓冲内容为RGB=(75,0,133),A=0.9856;
步骤15,向帧缓冲绘制颜色C3,A3,这时帧缓冲已知值是RGB=(75,0,133),A=0.9856,Fcs=A3=0.6,Fcd=1-A3=0.4,Fas=1,Fad=1-A3=0.4,最后得到帧缓冲内容为RGB=(30,77,53),A=0.99424;
步骤16,向帧缓冲绘制颜色C2,A2,这时帧缓冲已知值是RGB=(30,77,53),A=0.99424,Fcs=A2=0.6,Fcd=1-A2=0.4,Fas=1,Fad=1-A2=0.4,最后得到帧缓冲内容为RGB=(12,184,21),A=0.997696;
步骤17,将步骤16获得的图像混合在不透明物体A的图像C1=(128,0,240),A1=1上,在物体A没有摭挡物体B的位置上颜色最后为RGB=(128,0,240),A=1,物体A摭挡物体B的位置上颜色最后为RGB=(12,184,21),A=0.997696;
步骤18,对最后获得颜色校正,在物体A没有摭挡物体B的位置上颜色最后为RGB=(128,0,240),A=1,物体A摭挡物体B的位置上颜色最后为RGB=(12,184,21),A=0.997696,显然因为最后A接近1,颜色校正后没有变化。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种3D图文渲染方法,其特征在于包括步骤:
获取场景描述数据,以获得场景信息;
对场景描述数据进行解析,其中,至少包括对不透明物体和透明物体进行分类;
对不透明物体进行渲染;
采用多步渲染方式对透明物体进行渲染;
合成所述不透明物体和透明物体的渲染结果。
2.根据权利要求1所述的3D图文渲染方法,其特征在于:所述采用多步渲染方式对透明物体进行渲染,包括步骤:
打开深度缓冲设置;
对所有透明物体进行多步渲染,直至渲染到没有像素被记录在帧缓冲中为止;其中,每一步渲染均获得包含纯粹颜色和透明度信息的图像数据层。
3.根据权利要求2所述的3D图文渲染方法,其特征在于:在所述多步渲染中,第i步渲染包括步骤:
渲染所有透明物体,根据所获得的第i-1表面的深度信息丢弃第i-1表面已经包含的所有像素,得到第i表面图像数据信息和每像素对应的深度;
判断是否有像素被记录在帧缓冲中;若判断结果为有像素被记录在帧缓冲中,则进行第i+1步渲染;其中,i为1至n的整数。
4.根据权利要求3所述的3D图文渲染方法,其特征在于:若判断结果为没有像素被记录在帧缓冲中,则停止渲染。
5.根据权利要求1至4的任意一项权利要求所述的3D图文渲染方法,其特征在于:所述合成不透明物体和透明物体的渲染结果,包括步骤:
初始化帧缓冲值为黑色全透明;
按照与所述透明物体渲染顺序相反的顺序合成每一步渲染所获得的图像数据层;
将合成结果与对不透明物体进行渲染所获得的图像数据层进行混合;
对所获得的混合结果进行颜色校正。
6.根据权利要求5所述的3D图文渲染方法,其特征在于:所述进行颜色校正采用公式:RGB=RGB/A,其中,RGB表示颜色,A表示透明度。
7.一种3D图文渲染系统,包括场景解析单元和存储单元,其特征在于还包括渲染器;所述渲染器用于对从所述存储单元获取的场景描述数据进行解析,对不透明物体进行渲染,且采用多步渲染方式对透明物体进行渲染,将所述不透明物体和透明物体的渲染结果进行合成,并对合成结果进行颜色校正。
8.根据权利要求7所述的3D图文渲染系统,其特征在于:所述渲染器至少包括解析单元、渲染单元和合成单元;其中,
解析单元,用于获取所述存储单元中的场景描述数据,并对场景描述数据进行解析,其中至少包括对不透明物体和透明物体进行分类,然后将解析结果送至所述渲染单元;
渲染单元,用于对所述不透明物体进行渲染,并采用多步渲染方式对透明物体进行渲染,并将渲染结果传送至所述合成单元;
合成单元,用于接收所述渲染单元传送的所述不透明物体和透明物体的渲染结果,对所述不透明物体和透明物体的渲染结果进行合成,并对合成结果进行颜色校正。
9.根据权利要求7所述的3D图文渲染系统,其特征在于:所述采用多步渲染方式对透明物体进行渲染是指:对所有透明物体进行多步渲染,直至渲染到再没有像素被记录在帧缓冲中为止;其中,每一步渲染均获得包含纯粹颜色和透明度信息的图像数据层。
10.根据权利要求7所述的3D图文渲染系统,其特征在于:所述渲染系统还包括内置物件创建单元,与所述存储单元连接,用于创建参数化的内置物件,并将该内容物件作为场景描述数据保存至所述存储单元。
11.根据权利要求7所述的3D图文渲染系统,其特征在于:所述渲染系统还包括场景编辑单元,所述场景编辑单元用于对所述存储单元中储存的场景描述数据进行编辑。
12.一种渲染器,其特征在于包括:解析单元、渲染单元和合成单元;其中,
解析单元,用于获取所述存储单元中的场景描述数据,并对场景描述数据进行解析,其中至少包括对不透明物体和透明物体进行分类,然后将解析结果送至所述渲染单元;
渲染单元,用于对所述不透明物体进行渲染,并采用多步渲染方式对透明物体进行渲染,并将渲染结果传送至所述合成单元;
合成单元,用于接收所述渲染单元传送的所述不透明物体和透明物体的渲染结果,对所述不透明物体和透明物体的渲染结果进行合成,并对合成结果进行颜色校正。
13.根据权利要求12所述的渲染器,其特征在于:所述采用多步渲染方式对透明物体进行渲染是指:对所有透明物体进行多步渲染,直至渲染到再没有像素被记录在帧缓冲中为止;其中,每一步渲染均获得包含纯粹颜色和透明度信息的图像数据层。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100988073A CN101295408A (zh) | 2007-04-27 | 2007-04-27 | 一种3d图文渲染方法和渲染系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100988073A CN101295408A (zh) | 2007-04-27 | 2007-04-27 | 一种3d图文渲染方法和渲染系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101295408A true CN101295408A (zh) | 2008-10-29 |
Family
ID=40065669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007100988073A Pending CN101295408A (zh) | 2007-04-27 | 2007-04-27 | 一种3d图文渲染方法和渲染系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101295408A (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101799931A (zh) * | 2010-04-08 | 2010-08-11 | 西安交通大学 | 基于颜色特征学习的绘画渲染方法 |
CN102063734A (zh) * | 2009-11-18 | 2011-05-18 | 新奥特(北京)视频技术有限公司 | 一种三维图像的呈现方法和装置 |
CN102646284A (zh) * | 2012-04-11 | 2012-08-22 | Tcl集团股份有限公司 | 一种3d渲染系统中透明物体的渲染顺序获取方法及系统 |
CN103918012A (zh) * | 2011-11-07 | 2014-07-09 | 史克威尔·艾尼克斯控股公司 | 渲染系统、渲染服务器、其控制方法、程序及记录媒体 |
CN103955957A (zh) * | 2014-04-22 | 2014-07-30 | Tcl集团股份有限公司 | 一种3d图形渲染方法及系统 |
CN105825469A (zh) * | 2015-01-27 | 2016-08-03 | 想象技术有限公司 | 在图形处理系统中处理具有未解析片段的基元 |
CN105894570A (zh) * | 2015-12-01 | 2016-08-24 | 乐视致新电子科技(天津)有限公司 | 虚拟现实场景模型建立方法及装置 |
CN106327458A (zh) * | 2016-08-31 | 2017-01-11 | 上海交通大学 | 一种基于图像分层渲染的方法 |
CN106652007A (zh) * | 2016-12-23 | 2017-05-10 | 网易(杭州)网络有限公司 | 虚拟海面渲染方法及系统 |
CN108648249A (zh) * | 2018-05-09 | 2018-10-12 | 歌尔科技有限公司 | 一种图像渲染方法、装置及智能穿戴设备 |
CN109389664A (zh) * | 2017-08-04 | 2019-02-26 | 腾讯科技(深圳)有限公司 | 模型贴图渲染方法、装置及终端 |
CN109903347A (zh) * | 2017-12-08 | 2019-06-18 | 北大方正集团有限公司 | 一种颜色混合的方法、系统、计算机设备及存储介质 |
CN110392904A (zh) * | 2017-08-25 | 2019-10-29 | 谷歌有限责任公司 | 使用阿尔法混合的动态图像颜色重新映射的方法 |
WO2019223119A1 (zh) * | 2018-05-23 | 2019-11-28 | 歌尔科技有限公司 | 一种3d场景对象显示方法、装置、设备及存储介质 |
CN112258613A (zh) * | 2020-10-23 | 2021-01-22 | 南京维伍网络科技有限公司 | 一种archicad到d5渲染器实时渲染的数据转换方法 |
CN112652025A (zh) * | 2020-12-18 | 2021-04-13 | 完美世界(北京)软件科技发展有限公司 | 图像渲染方法、装置、计算机设备及可读存储介质 |
CN112837402A (zh) * | 2021-03-01 | 2021-05-25 | 腾讯科技(深圳)有限公司 | 场景渲染方法、装置、计算机设备和存储介质 |
CN113205583A (zh) * | 2021-04-28 | 2021-08-03 | 北京字跳网络技术有限公司 | 场景渲染方法、装置、电子设备及可读存储介质 |
CN116630516A (zh) * | 2023-06-09 | 2023-08-22 | 广州三七极耀网络科技有限公司 | 一种基于3d特性的2d渲染排序方法、装置、设备及介质 |
-
2007
- 2007-04-27 CN CNA2007100988073A patent/CN101295408A/zh active Pending
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063734A (zh) * | 2009-11-18 | 2011-05-18 | 新奥特(北京)视频技术有限公司 | 一种三维图像的呈现方法和装置 |
CN102063734B (zh) * | 2009-11-18 | 2015-06-17 | 新奥特(北京)视频技术有限公司 | 一种三维图像的呈现方法和装置 |
CN101799931A (zh) * | 2010-04-08 | 2010-08-11 | 西安交通大学 | 基于颜色特征学习的绘画渲染方法 |
CN101799931B (zh) * | 2010-04-08 | 2011-08-31 | 西安交通大学 | 基于颜色特征学习的绘画渲染方法 |
CN103918012A (zh) * | 2011-11-07 | 2014-07-09 | 史克威尔·艾尼克斯控股公司 | 渲染系统、渲染服务器、其控制方法、程序及记录媒体 |
CN102646284A (zh) * | 2012-04-11 | 2012-08-22 | Tcl集团股份有限公司 | 一种3d渲染系统中透明物体的渲染顺序获取方法及系统 |
CN103955957A (zh) * | 2014-04-22 | 2014-07-30 | Tcl集团股份有限公司 | 一种3d图形渲染方法及系统 |
CN105825469A (zh) * | 2015-01-27 | 2016-08-03 | 想象技术有限公司 | 在图形处理系统中处理具有未解析片段的基元 |
US11928776B2 (en) | 2015-01-27 | 2024-03-12 | Imagination Technologies Limited | Processing primitives which have unresolved fragments in a graphics processing system |
US11176733B2 (en) | 2015-01-27 | 2021-11-16 | Imagination Technologies Limited | Processing primitives which have unresolved fragments in a graphics processing system |
CN105894570A (zh) * | 2015-12-01 | 2016-08-24 | 乐视致新电子科技(天津)有限公司 | 虚拟现实场景模型建立方法及装置 |
CN106327458A (zh) * | 2016-08-31 | 2017-01-11 | 上海交通大学 | 一种基于图像分层渲染的方法 |
CN106652007B (zh) * | 2016-12-23 | 2020-04-17 | 网易(杭州)网络有限公司 | 虚拟海面渲染方法及系统 |
CN106652007A (zh) * | 2016-12-23 | 2017-05-10 | 网易(杭州)网络有限公司 | 虚拟海面渲染方法及系统 |
CN109389664A (zh) * | 2017-08-04 | 2019-02-26 | 腾讯科技(深圳)有限公司 | 模型贴图渲染方法、装置及终端 |
CN109389664B (zh) * | 2017-08-04 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 模型贴图渲染方法、装置及终端 |
CN110392904A (zh) * | 2017-08-25 | 2019-10-29 | 谷歌有限责任公司 | 使用阿尔法混合的动态图像颜色重新映射的方法 |
CN109903347A (zh) * | 2017-12-08 | 2019-06-18 | 北大方正集团有限公司 | 一种颜色混合的方法、系统、计算机设备及存储介质 |
CN108648249A (zh) * | 2018-05-09 | 2018-10-12 | 歌尔科技有限公司 | 一种图像渲染方法、装置及智能穿戴设备 |
CN108648249B (zh) * | 2018-05-09 | 2022-03-29 | 歌尔科技有限公司 | 一种图像渲染方法、装置及智能穿戴设备 |
WO2019223119A1 (zh) * | 2018-05-23 | 2019-11-28 | 歌尔科技有限公司 | 一种3d场景对象显示方法、装置、设备及存储介质 |
CN112258613A (zh) * | 2020-10-23 | 2021-01-22 | 南京维伍网络科技有限公司 | 一种archicad到d5渲染器实时渲染的数据转换方法 |
CN112258613B (zh) * | 2020-10-23 | 2023-11-03 | 南京维伍网络科技有限公司 | 一种archicad到d5渲染器实时渲染的数据转换方法 |
CN112652025B (zh) * | 2020-12-18 | 2022-03-22 | 完美世界(北京)软件科技发展有限公司 | 图像渲染方法、装置、计算机设备及可读存储介质 |
CN114612579A (zh) * | 2020-12-18 | 2022-06-10 | 完美世界(北京)软件科技发展有限公司 | 图像渲染方法、装置、计算机设备及可读存储介质 |
CN112652025A (zh) * | 2020-12-18 | 2021-04-13 | 完美世界(北京)软件科技发展有限公司 | 图像渲染方法、装置、计算机设备及可读存储介质 |
CN114612579B (zh) * | 2020-12-18 | 2024-10-15 | 完美世界(北京)软件科技发展有限公司 | 图像渲染方法、装置、计算机设备及可读存储介质 |
CN112837402A (zh) * | 2021-03-01 | 2021-05-25 | 腾讯科技(深圳)有限公司 | 场景渲染方法、装置、计算机设备和存储介质 |
CN113205583A (zh) * | 2021-04-28 | 2021-08-03 | 北京字跳网络技术有限公司 | 场景渲染方法、装置、电子设备及可读存储介质 |
WO2022227868A1 (zh) * | 2021-04-28 | 2022-11-03 | 北京字跳网络技术有限公司 | 场景渲染方法、装置、电子设备及可读存储介质 |
CN116630516A (zh) * | 2023-06-09 | 2023-08-22 | 广州三七极耀网络科技有限公司 | 一种基于3d特性的2d渲染排序方法、装置、设备及介质 |
CN116630516B (zh) * | 2023-06-09 | 2024-01-30 | 广州三七极耀网络科技有限公司 | 一种基于3d特性的2d渲染排序方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101295408A (zh) | 一种3d图文渲染方法和渲染系统 | |
CN105354872B (zh) | 一种基于3d网页游戏的渲染引擎、实现方法及制作工具 | |
US7081892B2 (en) | Image with depth of field using z-buffer image data and alpha blending | |
US7142709B2 (en) | Generating image data | |
TWI244050B (en) | Recirculating shade tree blender for a graphics system | |
US8351689B2 (en) | Apparatus and method for removing ink lines and segmentation of color regions of a 2-D image for converting 2-D images into stereoscopic 3-D images | |
CN110650368A (zh) | 视频处理方法、装置和电子设备 | |
CN103500465A (zh) | 基于增强现实技术的古代文物场景快速渲染方法 | |
US20120147004A1 (en) | Apparatus and method for generating digital actor based on multiple images | |
CN104272377B (zh) | 运动图片项目管理系统 | |
CN108257204A (zh) | 运用于Unity引擎的顶点色绘制烘焙方法及系统 | |
CN109671158A (zh) | 一种游戏画面的优化方法 | |
CN112446939A (zh) | 三维模型动态渲染方法、装置、电子设备及存储介质 | |
CN106375830A (zh) | 虚拟现实视频上叠加跟随视角的图文和视频内容的方法 | |
JP4686602B2 (ja) | 3d画面に動映像を挿入する方法及びその記録媒体 | |
CN113546410B (zh) | 地形模型渲染方法、装置、电子设备和存储介质 | |
CN114283233A (zh) | 一种在3d环境中纹理表面播放视频的实现方法 | |
CN103024318A (zh) | 电视图形加速处理方法及装置 | |
US20050162435A1 (en) | Image rendering with multi-level Z-buffers | |
CN115830210A (zh) | 虚拟对象的渲染方法、装置、电子设备及存储介质 | |
Hanika et al. | Camera space volumetric shadows | |
Papaioannou et al. | Enhancing Virtual Reality Walkthroughs of Archaeological Sites. | |
EP0919044B1 (en) | Fast processing of image primitives | |
Rossoni et al. | Physically Based Rendering of Animated Point Clouds for EXtended Reality | |
US11380048B2 (en) | Method and system for determining a spectral representation of a color |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20081029 |