CN105631924A - 一种场景中扭曲效果的实现方法 - Google Patents
一种场景中扭曲效果的实现方法 Download PDFInfo
- Publication number
- CN105631924A CN105631924A CN201511000194.6A CN201511000194A CN105631924A CN 105631924 A CN105631924 A CN 105631924A CN 201511000194 A CN201511000194 A CN 201511000194A CN 105631924 A CN105631924 A CN 105631924A
- Authority
- CN
- China
- Prior art keywords
- distortion
- scene
- played
- marker
- channels
- 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.)
- Granted
Links
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请涉及三维图形仿真技术。本申请公开了一种场景中扭曲效果的实现方法,使用三维图形引擎创建场景,确定场景中需要呈现扭曲效果的位置及范围;在需要呈现扭曲效果的位置,创建游戏对象作为扭曲标示物,对场景中除了扭曲标示物之外的其他对象进行深度渲染;对扭曲标示物进行渲染,获得扭曲图;对场景中除了扭曲标示物之外的其他对象进行正常渲染,得到正常渲染的场景图;对扭曲图进行采样,将采样结果解包作为偏移量加到像素的纹理坐标上,使用处理后的纹理坐标对正常渲染的场景图进行采样,得到带有扭曲效果的场景渲染结果。
Description
技术领域
本申请涉及三维图形仿真技术,尤其涉及一种场景中扭曲效果的实现方法。
背景技术
透过密度不均的空气看到的景物会发生扭曲。温度会影响空气的密度,靠近热源的空气温度较高,密度较小,远离热源的空气温度较低,密度较大,因此在火堆周围或是日照强烈时刻的地表上方,都能看到扭曲的景象。
Unity是由UnityTechnologies公司开发的一个让用户创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型三维图形引擎。现有技术中,在Unity中模拟扭曲效果的一般做法是使用_GrabTexture。_GrabTexture是一张贴图,它是帧缓冲的拷贝。在每帧渲染的最后阶段,绘制一个全屏矩形,将_GrabTexture铺满整个矩形,并对部分区域的纹理坐标进行扰动,就产生了最终的扭曲效果。_GrabTexture会在每帧首次用到的时候由系统自动产生。产生过程慢,且要等待之前的渲染指令执行完才能开始产生。等待和产生过程还会阻塞主线程。主线程的等待时间几乎是完整渲染一帧的时间,因而这种方法效率极低,对帧率影响很大。
发明内容
本申请提供了一种场景中扭曲效果的实现方法,能够降低扭曲效果对帧率的影响。
本申请实施例提供了一种场景中扭曲效果的实现方法,包括:
使用三维图形引擎创建场景,确定场景中需要呈现扭曲效果的位置及范围;
在需要呈现扭曲效果的位置,创建游戏对象作为扭曲标示物,所述扭曲标示物的几何参数根据该位置需呈现的扭曲效果的范围而定;
对场景中除了扭曲标示物之外的其他对象进行深度渲染;对扭曲标示物进行渲染,获得扭曲图;对场景中除了扭曲标示物之外的其他对象进行正常渲染,得到正常渲染的场景图;
对扭曲图进行采样,将采样结果解包后作为偏移量加到像素的纹理坐标上,使用处理后的纹理坐标对正常渲染的场景图进行采样,得到带有扭曲效果的场景渲染结果。
可选地,所述三维图形引擎为Unity引擎。
可选地,所述深度渲染为完整的渲染,其中颜色值指定为任意的单一值。
可选地,所述对扭曲标示物进行渲染包括:
计算纹理坐标偏移量;
对噪声图进行RG双通道采样,采样结果作为双通道扭曲值;
将双通道扭曲值打包写入四通道的渲染目标中,获得四通道的扭曲图。
可选地,所述将双通道扭曲值打包写入四通道的渲染目标中之前进一步包括:将双通道扭曲值乘以一个调整系数α。
从以上技术方案可以看出,在场景中需要呈现扭曲效果的位置创建对玩家不可见的扭曲标示物,对扭曲标示物单独进行渲染得到扭曲图,对扭曲图进行采样,将采样结果解包后作为偏移量加到像素的纹理坐标上,使用处理后的纹理坐标对正常渲的染场景图进行采样,得到带有扭曲效果的场景渲染结果。该方案使主线程在一帧的渲染过程中,无需等待GPU完成对整个场景的正常渲染和场景图的复制,就可以进行下一步的工作,甚至是预先进行下一帧的渲染工作。
附图说明
图1为本申请实施例提供的基于Unity引擎的扭曲效果的实现方法流程图;
图2为本申请实施例方案的原理示意图;
具体实施方式
为使本申请技术方案的技术原理、特点以及技术效果更加清楚,以下结合具体实施例对本申请技术方案进行详细阐述。
图1为本申请实施例提供的场景中扭曲效果的实现方法流程图,图2为本申请实施例方案的原理示意图。请参照图1和图2,该流程包括:
步骤101:使用三维图形引擎创建场景201,确定场景201中需要呈现扭曲效果的位置及范围。
步骤102:在需要呈现扭曲效果的位置,创建一类特殊的游戏对象(gameobject)作为扭曲标示物(Distortionmarkobject)203。
构成扭曲标示物的要素包括几何参数、扭曲着色器(DistortionShader)以及噪声图(NoiseMap)。其中,几何参数根据该位置需呈现的扭曲效果的范围而定。扭曲着色器用于向扭曲图中写入扭曲值。噪声图用于在扭曲效果中加入随机噪声,可以是随机生成的噪声图片。
所述扭曲标示物对玩家不可见,但场景中被其遮挡住的其它对象会产生扭曲效果。
步骤103:对场景201中除了扭曲标示物之外的其他对象202进行深度渲染,渲染结果写入深度缓存206。
一次完整的渲染包括颜色渲染和深度渲染,在某些引擎中这两者可以单独进行,也可以同时进行。然而在Unity引擎中并不支持单独进行颜色渲染或深度渲染。本步骤中,所述深度渲染可以是一次完整的渲染,由于后续只使用其中的深度渲染结果,为简化处理,将其中的颜色值指定为任意的单一值。
深度渲染的作用是为下一步渲染做深度检测用的,为了保证正常物体和扭曲标示物之间遮挡关系的正确性。
步骤104:对扭曲标示物203进行渲染,获得扭曲图205。
对扭曲标示物进行渲染由扭曲着色器进行,过程具体包括:
计算纹理坐标偏移量,所述偏移量是个二维向量,与系统时间成正比,计算公式为:
offset=a*time
其中,offset表示偏移量,time表示系统时间,a是个可调参数,该参数用于控制噪声图的滚动速度。
对噪声图进行RG双通道采样,采样结果作为双通道扭曲值;
将双通道扭曲值打包写入四通道的渲染目标中,获得四通道的扭曲图(DistortionMap)。
图片可能包含红色(Red)绿色(Green)蓝色(Blue)和不透明度(Alpha)四个通道,缩写为RGBA。RG双通道采样,就是只对红色通道和绿色通道进行采样,如果噪声图除RG两通道外还有其他通道,则其它通道不被采样。
根据深度缓存确定场景中一般物体和扭曲标示物的遮挡关系,
可选地,可以对双通道扭曲值进行一定范围的调整,例如将其乘以一个调整系数α。调整系数α用于控制噪声图的重复率,具体取值根据实际需要达到的效果而定。
打包可以使用Unity自带的EncodeFloatRG函数,也可以采用其他方式实现,本申请对此不作限定。
步骤105:对场景中除了扭曲标示物之外的其他对象202进行正常渲染,结果写入帧缓存207,得到正常渲染的场景图。
步骤106:对扭曲图205进行采样,将采样结果解包后作为偏移量加到像素的纹理坐标上。
步骤107:用处理后的纹理坐标对正常渲染的场景图进行采样,得到带有扭曲效果的场景渲染结果208。
应当理解,虽然本说明书是按照各个实施方式描述的,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请的保护范围,凡在本申请技术方案的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (5)
1.一种场景中扭曲效果的实现方法,其特征在于,包括:
使用三维图形引擎创建场景,确定场景中需要呈现扭曲效果的位置及范围;
在需要呈现扭曲效果的位置,创建游戏对象作为扭曲标示物,所述扭曲标示物的几何参数根据该位置需呈现的扭曲效果的范围而定;
对场景中除了扭曲标示物之外的其他对象进行深度渲染;对扭曲标示物进行渲染,获得扭曲图;对场景中除了扭曲标示物之外的其他对象进行正常渲染,得到正常渲染的场景图;
对扭曲图进行采样,将采样结果解包后作为偏移量加到像素的纹理坐标上,使用处理后的纹理坐标对正常渲染的场景图进行采样,得到带有扭曲效果的场景渲染结果。
2.根据权利要求1所述的方法,其特征在于,所述三维图形引擎为Unity引擎。
3.根据权利要求2所述的方法,其特征在于,所述深度渲染为完整的渲染,其中颜色值指定为任意的单一值。
4.根据权利要求2所述的方法,其特征在于,所述对扭曲标示物进行渲染包括:
计算纹理坐标偏移量;所述纹理坐标偏移量与系统时间成正比;
对噪声图进行RG双通道采样,采样结果作为双通道扭曲值;
将双通道扭曲值打包写入四通道的渲染目标中,获得四通道的扭曲图。
5.根据权利要求4所述的方法,其特征在于,所述将双通道扭曲值打包写入四通道的渲染目标中之前进一步包括:将双通道扭曲值乘以一个调整系数α。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511000194.6A CN105631924B (zh) | 2015-12-28 | 2015-12-28 | 一种场景中扭曲效果的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511000194.6A CN105631924B (zh) | 2015-12-28 | 2015-12-28 | 一种场景中扭曲效果的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105631924A true CN105631924A (zh) | 2016-06-01 |
CN105631924B CN105631924B (zh) | 2018-09-11 |
Family
ID=56046808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511000194.6A Active CN105631924B (zh) | 2015-12-28 | 2015-12-28 | 一种场景中扭曲效果的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105631924B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107564085A (zh) * | 2017-10-24 | 2018-01-09 | 北京奇虎科技有限公司 | 图像扭曲处理方法、装置、计算设备及计算机存储介质 |
CN111292389A (zh) * | 2020-02-19 | 2020-06-16 | 网易(杭州)网络有限公司 | 一种图像处理的方法和装置 |
CN111311719A (zh) * | 2020-02-10 | 2020-06-19 | 网易(杭州)网络有限公司 | 一种游戏中的显示处理方法和装置 |
CN111968213A (zh) * | 2020-10-23 | 2020-11-20 | 成都完美时空网络技术有限公司 | 扭曲效果生成方法、装置、设备和存储介质 |
CN112489170A (zh) * | 2020-11-19 | 2021-03-12 | 杭州电魂网络科技股份有限公司 | 特效扭曲处理方法、装置、电子设备及介质 |
CN113181639A (zh) * | 2021-04-28 | 2021-07-30 | 网易(杭州)网络有限公司 | 一种游戏中的图形处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226645A (zh) * | 2008-02-18 | 2008-07-23 | 朱东晖 | 一种在二维图像中实现物体透视变化效果的方法 |
CN101655989A (zh) * | 2008-08-20 | 2010-02-24 | 深圳市金立通信设备有限公司 | 一种手机3d特效图形用户界面系统及方法 |
CN102509344A (zh) * | 2011-09-30 | 2012-06-20 | 北京航空航天大学 | 一种基于非均匀采样三维对象反射的实时绘制方法 |
US20140198101A1 (en) * | 2013-01-11 | 2014-07-17 | Samsung Electronics Co., Ltd. | 3d-animation effect generation method and system |
-
2015
- 2015-12-28 CN CN201511000194.6A patent/CN105631924B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226645A (zh) * | 2008-02-18 | 2008-07-23 | 朱东晖 | 一种在二维图像中实现物体透视变化效果的方法 |
CN101655989A (zh) * | 2008-08-20 | 2010-02-24 | 深圳市金立通信设备有限公司 | 一种手机3d特效图形用户界面系统及方法 |
CN102509344A (zh) * | 2011-09-30 | 2012-06-20 | 北京航空航天大学 | 一种基于非均匀采样三维对象反射的实时绘制方法 |
US20140198101A1 (en) * | 2013-01-11 | 2014-07-17 | Samsung Electronics Co., Ltd. | 3d-animation effect generation method and system |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107564085A (zh) * | 2017-10-24 | 2018-01-09 | 北京奇虎科技有限公司 | 图像扭曲处理方法、装置、计算设备及计算机存储介质 |
CN107564085B (zh) * | 2017-10-24 | 2021-05-07 | 北京奇虎科技有限公司 | 图像扭曲处理方法、装置、计算设备及计算机存储介质 |
CN111311719A (zh) * | 2020-02-10 | 2020-06-19 | 网易(杭州)网络有限公司 | 一种游戏中的显示处理方法和装置 |
CN111292389A (zh) * | 2020-02-19 | 2020-06-16 | 网易(杭州)网络有限公司 | 一种图像处理的方法和装置 |
CN111968213A (zh) * | 2020-10-23 | 2020-11-20 | 成都完美时空网络技术有限公司 | 扭曲效果生成方法、装置、设备和存储介质 |
CN112652047A (zh) * | 2020-10-23 | 2021-04-13 | 成都完美时空网络技术有限公司 | 扭曲效果生成方法、装置、设备和存储介质 |
CN112489170A (zh) * | 2020-11-19 | 2021-03-12 | 杭州电魂网络科技股份有限公司 | 特效扭曲处理方法、装置、电子设备及介质 |
CN113181639A (zh) * | 2021-04-28 | 2021-07-30 | 网易(杭州)网络有限公司 | 一种游戏中的图形处理方法及装置 |
CN113181639B (zh) * | 2021-04-28 | 2024-06-04 | 网易(杭州)网络有限公司 | 一种游戏中的图形处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105631924B (zh) | 2018-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105631924A (zh) | 一种场景中扭曲效果的实现方法 | |
CA2618632C (en) | 2d editing metaphor for 3d graphics | |
JP2012524327A (ja) | コンピュータグラフィックスでオブジェクトにシャドウを付ける方法 | |
CN102243768B (zh) | 一种三维虚拟场景立体画面的绘制方法 | |
CN105005970A (zh) | 一种增强现实的实现方法及装置 | |
EP3177377B1 (en) | Composing an image | |
CN106683189A (zh) | 一种在三维场景中渲染文字的方法 | |
US20140125686A1 (en) | Image rendering method and system | |
CN108257204A (zh) | 运用于Unity引擎的顶点色绘制烘焙方法及系统 | |
CN101477701A (zh) | 面向AutoCAD和3DS MAX软件的植入式真三维立体渲染方法 | |
CN101477700A (zh) | 面向Google Earth与Sketch Up的真三维立体显示方法 | |
CN104063888A (zh) | 一种基于非真实感的波谱艺术风格绘制方法 | |
CN106933467A (zh) | 智能水印移动方法 | |
CA2618491C (en) | 2d/3d combined rendering | |
CN108090949A (zh) | 一种基于光能传播的实时全局光照方法 | |
CN102063734B (zh) | 一种三维图像的呈现方法和装置 | |
US20110018890A1 (en) | Computer graphics method for creating differing fog effects in lighted and shadowed areas | |
CN104392478A (zh) | 一种屏幕空间中体积雾的算法 | |
CN101540056B (zh) | 面向ERDAS Virtual GIS的植入式真三维立体渲染方法 | |
CN104778739A (zh) | 一种计算机实时素描渲染算法 | |
CN101521828B (zh) | 面向esri三维gis模块的植入式真三维立体渲染方法 | |
CN104240276A (zh) | 一种基于屏幕空间的次表面散射模拟人物真实皮肤的方法 | |
JP4749064B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
CN104318509A (zh) | 一种基于gpu的大批量目标高速标绘方法 | |
CN101488229B (zh) | 面向pci三维分析模块的植入式真三维立体渲染方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |