CN100463004C - 一种渲染模型残影效果的方法 - Google Patents
一种渲染模型残影效果的方法 Download PDFInfo
- Publication number
- CN100463004C CN100463004C CNB2006100582050A CN200610058205A CN100463004C CN 100463004 C CN100463004 C CN 100463004C CN B2006100582050 A CNB2006100582050 A CN B2006100582050A CN 200610058205 A CN200610058205 A CN 200610058205A CN 100463004 C CN100463004 C CN 100463004C
- Authority
- CN
- China
- Prior art keywords
- model
- screen surfaces
- transparency
- ghost
- screen
- 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.)
- Active
Links
Images
Landscapes
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开一种渲染模型残影效果的方法。该方法包括:设定所需渲染的残影个数,创建透明的离屏表面,将需要渲染残影效果的模型渲染到离屏表面上;重复以下步骤直至达到预先设定的残影个数:改变离屏表面上模型的颜色,使离屏表面上模型的颜色变浅,将需要渲染残影效果的模型渲染到离屏表面上,遮盖离屏表面上已有的模型。本发明所提供的方法每帧只渲染一次模型,只产生很小的开销,效率较高。
Description
技术领域
本发明涉及动画制作方法,尤其涉及一种渲染模型残影效果的方法。
背景技术
当前,越来越多的游戏和动画都在追求特色,各种华丽的特效应运而生,其中,渲染出残影效果就是一种可以使游戏或动画更富有炫目表现力的手段。残影效果是指在一帧画面中既可以看到物体在本帧画面中的影像又可以看到颜色逐渐变浅的物体在以前帧中的影像。参见图1和图2,图1和图2分别是在一帧画面中渲染的8个无残影效果和有残影效果的物体的示意图。从图1和图2中可以看到,残影效果可以使物体更有表现力。
通常情况下,渲染是以像素为单位,根据像素的颜色、透明度和位置等在屏幕上一一绘制各个像素,每一屏幕的内容可以看作是一帧画面。在一帧画面中渲染物体或者称为模型(Model)的残影效果,常常采用的方法是:首先,计算模型在当前帧之前的各个帧中的位置以及每个位置相对于当前帧应该具有的透明度;然后将按照所计算的位置和透明度渲染模型,使之形成残影。也就是说,如果在一帧画面中渲染一个具有n-1个残影的模型,那么首先需要计算模型在前n-1帧中的位置以及每个位置相对于当前帧应该具有的透明度;然后按照所计算的位置和透明度渲染模型,形成n-1个残影。每次在进行下一帧的渲染时,需要将屏幕上当前帧的所有内容清掉,于是,需要重新计算模型的位置和透明度,然后再进行一一渲染。
按照现有的这种渲染方法,当在连续的n帧中都需要渲染有残影效果的模型时,每一帧都需要计算前面帧中所有模型的位置和透明度,然后一一渲染,也就是说,每一帧都需要重复地渲染多个模型,由于渲染是以像素为单位进行的,对于复杂的模型来说,多次渲染,开销很大,尤其是在主要瓶颈是模型渲染的三维(3D,3 Dimension)场景的渲染中,在每一帧中都对模型进行多次渲染会造成很大的负荷。
发明内容
有鉴于此,本发明的目的在于提供一种渲染模型残影效果的方法,每帧只渲染一次模型,只产生很小的开销。
为了实现上述发明目的,本发明提供一种渲染模型残影效果的方法,包括:设定所需渲染的残影个数,该方法包括:
A、创建透明的离屏表面,将需要渲染残影效果的模型渲染到离屏表面上;
B、改变离屏表面上模型的颜色,使离屏表面上模型的颜色变浅;
C、将需要渲染残影效果的模型渲染到步骤B所述的离屏表面上,遮盖离屏表面上已有的模型;
D、判断是否达到预先设定的残影个数,如果未达到,返回执行步骤B;否则,结束本过程。
步骤B中所述改变离屏表面上模型的颜色,为:在离屏表面上渲染与离屏表面大小相同的、透明度不为零的平面,同时调用函数使离屏表面的透明度变为离屏表面当前透明度乘以平面的透明度。在所述步骤B之后,该方法进一步包括:改变所述平面的透明度,调整残影的长度。
步骤B中所述改变离屏表面上模型的颜色,为:设置离屏表面上组成模型的像素的表示颜色的RGB值。
在所述步骤B之后,该方法进一步包括:调整离屏表面上组成模型的像素的RGB值来调节离屏表面上模型颜色变浅的程度,调整残影的长度。
在设置离屏表面上组成模型的像素的表示颜色的RGB值,使离屏表面上模型的颜色变浅之后,该方法进一步包括:在离屏表面上渲染与离屏表面大小相同的、透明度不为零的平面,同时调用函数使离屏表面的透明度变为离屏表面当前透明度乘以平面的透明度。在渲染所述平面之后,该方法进一步包括:改变所述平面的透明度,调整残影的长度。
步骤C中所述遮盖离屏表面上已有的模型,为:调用函数取消表示像素远近关系的Zbuffer。
从以上技术方案可以看到,本发明所提供的渲染模型残影效果的方法具有以下有益效果:本发明通过创建透明的离屏表面,将需要渲染残影效果的模型先渲染到离屏表面上,在接下来每一帧的渲染中,通过使离屏表面上模型的颜色变浅来形成残影,而不必一一计算模型在以前各帧中的位置和透明度,于是,每一帧只需要渲染一次模型,只产生很小的开销,对于解决主要瓶颈是模型渲染的3D场景渲染非常有效。另外,由于每帧只渲染一次模型,不用计算以前各帧模型的位置和透明度,效率也因此得到提高。
附图说明
图1是在一帧画面中渲染的8个无残影效果的物体的示意图;
图2是在一帧画面中渲染的8个有残影效果的物体的示意图;
图3是根据本发明实施例的渲染方法的流程图;
图4A至图4D是根据本发明实施例的渲染残影效果的示意图;
图5A至图5C是根据本发明实施例的通过调整透明度改变残影长度的效果示意图。
具体实施方式
为了使本发明的特征和优点更加清楚明白,下面参照附图结合具体实施例对本发明作进一步的描述。
本发明的主要思想是:首先创建透明的离屏表面(surface),将需要渲染残影效果的模型渲染到离屏表面上,在进行接下来每一帧的渲染之前,使离屏表面上模型的颜色变浅,形成残影,然后再将需要渲染残影效果的模型渲染到离屏表面上,于是,就可以出现模型的残影效果。
具体地,以在3D场景中渲染具有残影效果的黑色球模型为例,也就是说,在本发明的实施例中,需要渲染残影效果的模型是黑色球,组成该黑色球模型的所有像素的透明度为1,颜色为黑色。根据3D场景的需要,预先设定所需渲染的残影个数n。参见图3和图4A至图4D,图3是根据本发明实施例的渲染方法的流程图;图4A至图4D是根据本发明实施例的渲染残影效果的示意图。具体过程和操作步骤如下:
步骤301、创建透明的离屏表面,将需要渲染残影效果的模型渲染到所创建的离屏表面上;
所谓离屏表面就是一种独立于屏幕的表面,如同一张薄膜覆盖在屏幕上,可以与整个屏幕一样大小,因为需要渲染残影的模型不一定能充满整个离屏表面,为了在场景渲染时调用离屏表面不影响场景中的其它物体和模型,所以,所创建的离屏表面必须是透明的,也就是透明度为零,无颜色。将黑色球渲染到离屏表面上时,由于渲染是以像素为单位进行的,所以在渲染黑色球模型的每个像素时,都调用已有函数,使离屏表面的透明度等于所渲染的像素的透明度,于是黑色球所覆盖的离屏表面的区域透明度变为1,颜色为黑色,于是,在离屏表面上就形成一个黑色球,如图4A所示。随后,可以在进行场景渲染时,调用离屏表面,将其渲染到3D场景中,形成第一帧画面。
步骤302、使渲染在离屏表面上的模型的颜色变浅;
步骤301中在离屏表面上渲染了模型本身,下面将制作模型残影。调整离屏表面上模型的颜色,使之变浅,作为残影,而不用像现有技术那样,首先计算模型的位置和透明度,再渲染模型的残影。具体地,可以在离屏表面上渲染一个与离屏表面大小相同的、透明度为alpha的平面,渲染该平面的同时,调用已有函数,该函数表示渲染完该平面之后离屏表面的透明度等于渲染之前离屏表面的透明度乘以所渲染的平面的透明度alpha,于是,在渲染这样一个平面后,离屏表面上透明度为零的区域,透明度仍然保持不变,而透明度不为零的区域,也就是被黑色球模型覆盖的区域,透明度乘以alpha,这相当于将离屏表面上黑色球的透明度降低alpha,于是在离屏表面上的黑色球由于透明度的降低,颜色变浅,如图4B所示。另外,也可以直接设置或调整离屏表面上已经渲染的模型像素的RGB(R:Red,G:Green,B:Blue)值,使离屏表面上的模型颜色变浅,其中不同的RGB值表示不同的颜色。同样地,还可以在渲染与离屏表面大小相同的、透明度为alpha的平面后,再调整离屏表面上已经渲染的模型像素的RGB值;反过来,适当调整模型像素的RGB值后,再渲染与离屏表面大小相同的、透明度为alpha的平面同样适用。
步骤303、将待渲染残影效果的模型渲染到离屏表面上,使刚渲染的模型遮盖离屏表面上已有的模型;
经过步骤302之后,离屏表面上已经有一个颜色变浅的球,再渲染黑色球模型时,会首先根据属性Zbuffer的值判断各个像素的远近关系,Zbuffer是屏幕上每个像素都具有的值,用于表示像素的远近关系,Zbuffer的值越小,表示呈现在屏幕上的像素距离观察者越近,于是,有可能出现离屏表面上颜色变浅的球呈现在屏幕上时距离观察者更近,从而导致遮盖黑色球的情况,事实上,在最终希望得到的场景中,应该是模型遮盖模型的残影,也就是黑色球应该遮盖颜色变浅的球,所以,渲染黑色球时利用已有函数取消Zbuffer,不去判断各个像素的远近关系,使新渲染的黑色球遮盖颜色变浅的球,如图4C所示。随后,在进行场景渲染时,调用离屏表面,将其渲染到3D场景中,就可以形成又一帧的画面。
步骤304、判断是否达到预先设定的残影个数n,如果不是,返回执行步骤302;否则,结束本过程。
当达到预先设定的残影个数n时,说明渲染完毕,结束本过程。当没有达到预定设定的残影个数n时,说明还需要继续渲染,此时,返回执行步骤302,继续在离屏表面上渲染与离屏表面大小相同且透明度为alpha的平面,同时调用函数,使渲染该平面后,离屏表面上透明度为零的区域,透明度保持不变,而透明度不为零的区域,透明度上再乘以alpha,于是,离屏表面上越是先渲染的球颜色越浅,因此形成层次关系良好的残影,然后取消Zbuffer,再将黑色球模型渲染到离屏表面上。重复执行步骤302和步骤303,直至达到预先设定的残影个数n,就可以看到如图4D所示的残影效果。
经过以上步骤就可以在离屏表面上实现渲染残影效果的目的,并且可以在渲染3D场景的同时随时调用离屏表面,在3D场景中形成残影效果。
从以上步骤可以看到,本发明实施例中每一帧只需要渲染一次模型,虽然增加了创建离屏表面、使离屏表面上渲染的模型颜色变浅以及调用离屏表面的步骤,但是增加这样步骤的开销远远小于在一帧中多次渲染模型的开销,尤其是在3D场景的渲染中,本发明提供的方法非常有效。
另外,参见图5A至图5C,图5A至图5C是根据本发明实施例的通过调整渲染在离屏表面上的平面的透明度改变残影长度的效果示意图,透明度的值越小所形成的残影长度越长,相反,透明度的值越大所形成的残影长度越短,所以图5B中渲染在离屏表面上的平面的透明度值最小,图5A的次之,图5C的最低。类似地,通过改变离屏表面上模型颜色变浅的程度,比如调整离屏表面上模型像素的RGB值,同样可以调整最终形成的残影长度。另外,在采用渲染平面使离屏表面上模型的颜色变浅的情况下,还可以同时调整平面的透明度和模型像素的RGB值,以改变残影长度。
以上仅以在3D场景中渲染黑色球的残影为例,对本发明所提供的方法进行描述,然而,本发明所提供的方法同样适合其它游戏、动画等场景中各种模型残影的渲染。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (3)
1.一种渲染模型残影效果的方法,其特征在于,设定所需渲染的残影个数,该方法包括:
A、创建透明的离屏表面,将需要渲染残影效果的模型渲染到离屏表面上;
B、在离屏表面上渲染与离屏表面大小相同的、透明度不为零的平面,同时调用函数使离屏表面的透明度变为离屏表面当前透明度乘以平面的透明度,使离屏表面上模型的颜色变浅;
C、将需要渲染残影效果的模型渲染到步骤B所述的离屏表面上,遮盖离屏表面上已有的模型;
D、判断是否达到预先设定的残影个数,如果未达到,返回执行步骤B;否则,结束本过程。
2.根据权利要求1所述的方法,其特征在于,在所述步骤B之后,该方法进一步包括:
改变所述平面的透明度,用以调整残影的长度。
3.根据权利要求1所述的方法,其特征在于,在所述步骤B之后,该方法进一步包括:
调整离屏表面上组成模型的像素的RGB值来调节离屏表面上模型颜色变浅的程度,调整残影的长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100582050A CN100463004C (zh) | 2006-02-24 | 2006-02-24 | 一种渲染模型残影效果的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100582050A CN100463004C (zh) | 2006-02-24 | 2006-02-24 | 一种渲染模型残影效果的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101025828A CN101025828A (zh) | 2007-08-29 |
CN100463004C true CN100463004C (zh) | 2009-02-18 |
Family
ID=38744097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100582050A Active CN100463004C (zh) | 2006-02-24 | 2006-02-24 | 一种渲染模型残影效果的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100463004C (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101799931B (zh) * | 2010-04-08 | 2011-08-31 | 西安交通大学 | 基于颜色特征学习的绘画渲染方法 |
CN104766361B (zh) * | 2015-04-29 | 2018-04-27 | 腾讯科技(深圳)有限公司 | 一种残影效果的实现方法,及装置 |
CN107067455B (zh) * | 2017-04-18 | 2019-11-19 | 腾讯科技(深圳)有限公司 | 一种实时渲染的方法及设备 |
CN108055477B (zh) * | 2017-11-23 | 2020-08-25 | 北京美摄网络科技有限公司 | 一种实现拖影特效的方法和装置 |
CN110365927B (zh) * | 2018-04-09 | 2022-03-01 | 腾讯科技(深圳)有限公司 | 视频录制方法、装置、存储介质和计算机设备 |
CN109040837B (zh) * | 2018-07-27 | 2021-09-14 | 北京市商汤科技开发有限公司 | 视频处理方法及装置、电子设备和存储介质 |
CN111951342B (zh) * | 2020-07-28 | 2023-06-06 | 中煤科工重庆设计研究院(集团)有限公司 | 一种基于离屏渲染的背面构件剔除方法、系统和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1656518A (zh) * | 2002-05-21 | 2005-08-17 | 科乐美股份有限公司 | 三维图像处理程序、三维图像处理方法、以及视频游戏设备 |
US6956576B1 (en) * | 2000-05-16 | 2005-10-18 | Sun Microsystems, Inc. | Graphics system using sample masks for motion blur, depth of field, and transparency |
CN1695169A (zh) * | 2002-11-01 | 2005-11-09 | 索尼电子有限公司 | 基于图像和几何场景合成的统一表面模型 |
-
2006
- 2006-02-24 CN CNB2006100582050A patent/CN100463004C/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6956576B1 (en) * | 2000-05-16 | 2005-10-18 | Sun Microsystems, Inc. | Graphics system using sample masks for motion blur, depth of field, and transparency |
CN1656518A (zh) * | 2002-05-21 | 2005-08-17 | 科乐美股份有限公司 | 三维图像处理程序、三维图像处理方法、以及视频游戏设备 |
CN1695169A (zh) * | 2002-11-01 | 2005-11-09 | 索尼电子有限公司 | 基于图像和几何场景合成的统一表面模型 |
Non-Patent Citations (3)
Title |
---|
. . |
用Flash制作残影效果. flashsj.电脑,第1期. 2003 |
用Flash制作残影效果. flashsj.电脑,第1期. 2003 * |
Also Published As
Publication number | Publication date |
---|---|
CN101025828A (zh) | 2007-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100463004C (zh) | 一种渲染模型残影效果的方法 | |
CN110650368B (zh) | 视频处理方法、装置和电子设备 | |
CN107694092B (zh) | 具有类似光度的图像自动图像处理的系统、方法和介质 | |
CN108022223B (zh) | 一种基于对数映射函数分块处理融合的色调映射方法 | |
JP4481166B2 (ja) | ユーザによる合成画像およびビデオ画像のリアルタイムのミキシングを可能にする方法およびシステム | |
CN104469179A (zh) | 一种将动态图片结合到手机视频中的方法 | |
CN109862389B (zh) | 一种视频处理方法、装置、服务器及存储介质 | |
US10192517B2 (en) | Method of adapting a source image content to a target display | |
CN105574918A (zh) | 一种3d模型的材质添加方法、装置及终端 | |
CN113129391B (zh) | 基于多曝光图像特征分布权重的多曝光融合方法 | |
CN109035383A (zh) | 一种体积云的绘制方法、装置及计算机可读存储介质 | |
CN106846454A (zh) | 镜头光晕绘制方法及装置 | |
JPWO2020076526A5 (zh) | ||
US20030193496A1 (en) | Image processing system, image processing method, semiconductor device, computer program, and recording medium | |
JPH06223168A (ja) | カラーの混合と発生システムおよびグラフィックスシステム | |
US20110018890A1 (en) | Computer graphics method for creating differing fog effects in lighted and shadowed areas | |
CN111161685B (zh) | 一种虚拟现实显示设备及其控制方法 | |
US20030001862A1 (en) | Method for the minimization of artifacts in full frame animations transferred to NTSC interlaced video | |
CN114004923B (zh) | 一种基于WebGL的三维模型光影映射纹理渲染方法 | |
CN102572297A (zh) | 一种高效高质量的视频特效的渲染方法 | |
CN113691796B (zh) | 通过二维模拟的三维场景互动方法及计算机可读存储介质 | |
CN104581196A (zh) | 一种视频图像处理的方法及装置 | |
KR102550124B1 (ko) | 웹툰 배경을 위한 멀티패스 레이어 타입 카툰 쉐이더 방법 | |
JPH03186978A (ja) | 自然画像の合成処理方式 | |
McTaggart et al. | High dynamic range rendering in valve's source engine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |