CN102298792A - 包含由镜面反射产生的面焦散效果的3d虚拟场景的近似绘制方法 - Google Patents
包含由镜面反射产生的面焦散效果的3d虚拟场景的近似绘制方法 Download PDFInfo
- Publication number
- CN102298792A CN102298792A CN2011102252840A CN201110225284A CN102298792A CN 102298792 A CN102298792 A CN 102298792A CN 2011102252840 A CN2011102252840 A CN 2011102252840A CN 201110225284 A CN201110225284 A CN 201110225284A CN 102298792 A CN102298792 A CN 102298792A
- Authority
- CN
- China
- Prior art keywords
- virtual
- virtual scene
- spotlight
- drawing result
- rectangular pyramid
- 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
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明公开一种包含由镜面反射产生的面焦散效果的3D虚拟场景的近似绘制方法,属于真实感三维虚拟场景绘制技术领域。本方法通过三个绘制操作步骤来完成包含面焦散效果的3D虚拟场景的绘制。第一步将虚拟相机放置在点光源处,绘制3D虚拟场景中的镜面反射物体表面,创建虚拟聚光灯来模拟镜面反射光线产生的二次光照;第二步将虚拟相机放置在眼睛处,绘制所有虚拟聚光灯照射下的3D虚拟场景的漫反射物体表面,得到面焦散绘制结果;第三步将虚拟相机放置在眼睛处,绘制点光源照射下的3D虚拟场景的所有物体表面。合并第二和第三步的绘制结果,得到最终的3D虚拟场景的绘制结果。本发明方法的绘制时间仅相当于光子映射方法的10%~15%。
Description
技术领域
本发明属于真实感3D虚拟场景绘制技术领域,涉及一种包含由镜面反射产生的面焦散效果的3D虚拟场景的近似绘制方法。
背景技术
目前,真实感3D虚拟场景绘制技术在数字娱乐、影视特效、建筑CAD、广告动画等领域得到广泛应用。从光源发出的光线经镜而反射物体表而反射后,再入射到漫反射物体表面上,会在漫反射物体表面上形成面焦散效果。传统上,使用光子映射方法绘制面焦散效果,然而其计算效果通常不高。在现有技术中,申请号为201010597769.8的一件中国发明专利申请通过计算镜面反射面片顶点处的镜面反射光线来创建焦散照明体,进而实现面焦散效果的绘制;该方法绘制精度较高,但绘制时间仍然较长。在3D虚拟场景建模时,经常需要预览场景设计结果;此时,往往不需要非常精确的绘制结果,但是却要求较快的绘制速度。本发明提出一种由镜面反射产生的面焦散效果的近似绘制方法,可大大提高面焦散效果的绘制速度。
发明内容
本发明方法的目的在于提高3D虚拟场景中由镜面反射产生的面焦散效果的绘制速度,减少在影视特效、游戏、视景仿真等应用中设计3D虚拟场景时的预览时间开销。
本发明方法的技术解决方案:包含由镜面反射产生的面焦散效果的3D虚拟场景的近似绘制方法,首先将虚拟相机放置在点光源S的位置上,利用光栅化技术绘制3D虚拟场景中的所有镜面反射物体表面,记录所有片段的空间位置及表面法线,然后根据记录的片段的空间位置及表面法线数据创建虚拟聚光灯列表,用虚拟聚光灯列表中的所有聚光灯照射3D虚拟场景,再将虚拟相机放置在眼睛位置处,利用光栅化技术绘制3D虚拟场景中的所有漫反射物体表面,将像素缓存中的绘制结果保存在变量PIX1中;将虚拟相机放置在眼睛位置处,用点光源S照射3D虚拟场景,利用光栅化技术绘制3D虚拟场景中的所有物体表面,将像素缓存中的绘制结果保存在变量PIX2中;合并变量PIX1和变量PIX2的绘制结果,即得到最终的包含面焦散效果的绘制结果,如图1所示。本发明方法的具体步骤如下:
Step001:创建一个中心位于点光源S的位置的正立方体,且该正立方体将3D虚拟场景完全包裹;从正立方体的各个顶点向光源S的位置连线,将整个正立方体空间等分为6份,每份等分空间形成一个正四棱锥,记为正四棱锥Q1、正四棱锥Q2、正四棱锥Q3、正四棱锥Q4、正四棱锥Q5和正四棱锥Q6;
Step002:创建一个空的虚拟聚光灯列表L;
Step003:对于第i个正四棱锥Qi,i=1,2,...,6,做如下计算:
①将虚拟相机放置在点光源S的位置上,根据正四棱锥Qi的几何参数来设置虚拟相机的透视投影视域体参数,使虚拟相机的透视投影视域体与正四棱锥Qi重叠;打开深度测试,绘制3D虚拟场景中的所有镜面反射物体表面;在片段着色程序中,对于所有通过深度测试的片段(A001),将片段(A001)的空间位置(A002)及表而法线(A003)记录在像素缓存(A004)中;
②对于像素缓存(A004)中记录的每个片段(A001)的空间位置(A002)及表面法线(A003)数据,做如下计算:首先,根据片段(A001)的表面法线(A003)和从片段(A001)的空间位置(A002)向点光源S的位置的连线,确定光线的入射角,按照理想镜面反射定律,计算反射光线方向(A005);然后,创建一个虚拟聚光灯(A006),虚拟聚光灯(A006)的位置设置在片段(A001)的空间位置(A002)处,虚拟聚光灯(A006)的中线方向设置为反射光线方向(A005),虚拟聚光灯(A006)的发散角设置为π/2n+1弧度,其中n≥0为镜面反射的汇聚度;最后,将虚拟聚光灯(A006)添加到虚拟聚光灯列表L中;
Step004:关闭点光源S,使用虚拟聚光灯列表L中的所有虚拟聚光灯照射3D虚拟场景;将虚拟相机放置在眼睛位置处,打开深度测试,按照正常的绘制流程,绘制3D虚拟场景中的所有漫反射物体表面,获得虚拟聚光灯列表L中的所有虚拟聚光灯对各漫反射物体表面的光照贡献,将绘制结果保存在像素缓存中;将像素缓存中的绘制结果保存在变量PIX1中;
Step005:仅以点光源S照射3D虚拟场景,将虚拟相机放置在眼睛位置处,打开深度测试,按照正常的绘制流程,绘制3D虚拟场景中的所有物体表面,获得点光源S对3D虚拟场景中的物体表面的光照贡献,将绘制结果保存在像素缓存中;将像素缓存中的绘制结果保存在变量PIX2中;
Step006:合并变量PIX1和变量PIX2中的绘制结果,得到最终的包含面焦散效果的绘制结果。
有益效果
本发明提供了一种包含由镜面反射产生的面焦散效果的3D虚拟场景的近似绘制方法。首先从光源处绘制3D虚拟场景中的所有镜面反射物体表面,以获得所有镜面反射片段的空间位置及表面法线,进而通过创建虚拟聚光灯来模拟镜面反射光线产生的二次光照,再从眼睛处绘制虚拟聚光灯照射下的3D虚拟场景的漫反射物体表面,得到而焦散绘制结果。合并面焦散绘制结果和正常光源照射下的从眼睛处对3D虚拟场景进行绘制的结果,得到最终的包含面焦散效果的3D虚拟场景的绘制结果。本发明方法的绘制时间仅相当于光子映射方法的10%~15%。
附图说明
图1是3D虚拟场景的包含面焦散效果的近似绘制流程图。
具体实施方式
为了使本发明方法的特征和优点更加清楚明白,下面参照附图结合具体实施例对本发明方法作进一步描述。
本发明方法的技术解决方案:包含由镜面反射产生的面焦散效果的3D虚拟场景的近似绘制方法,首先将虚拟相机放置在点光源S的位置上,利用光栅化技术绘制3D虚拟场景中的所有镜面反射物体表面,记录所有片段的空间位置及表面法线,然后根据记录的片段的空间位置及表面法线数据创建虚拟聚光灯列表,用虚拟聚光灯列表中的所有聚光灯照射3D虚拟场景,再将虚拟相机放置在眼睛位置处,利用光栅化技术绘制3D虚拟场景中的所有漫反射物体表面,将像素缓存中的绘制结果保存在变量PIX1中;将虚拟相机放置在眼睛位置处,用点光源S照射3D虚拟场景,利用光栅化技术绘制3D虚拟场景中的所有物体表面,将像素缓存中的绘制结果保存在变量PIX2中;合并变量PIX1和变量PIX2的绘制结果,即得到最终的包含面焦散效果的绘制结果,如图1所示。本发明的技术方案中包括三个绘制操作步骤,本发明方法使用OpenGL和GLSL着色语言来编程实现,并使用nVidia公司的GeForce GTX 280图形处理器来加速程序的执行。本发明方法的具体步骤如下:
Step001:创建一个中心位于点光源S的位置处的正立方体,且该正立方体将3D虚拟场景完全包裹;从正立方体的各个顶点向光源S的位置连线,将整个正立方体空间等分为6份,每份等分空间形成一个正四棱锥,记为正四棱锥Q1、正四棱锥Q2、正四棱锥Q3、正四棱锥Q4、正四棱锥Q5和正四棱锥Q6;
Step002:创建一个空的虚拟聚光灯列表L;
Step003:对于第i个正四棱锥Qi,i=1,2,...,6,做如下计算:
①将虚拟相机放置在点光源S的位置上,根据正四棱锥Qi的几何参数来设置虚拟相机的透视投影视域体参数,使虚拟相机的透视投影视域体与正四棱锥Qi重叠;打开深度测试,绘制3D虚拟场景中的所有镜面反射物体表面;在片段着色程序中,对于所有通过深度测试的片段(A001),将片段(A001)的空间位置(A002)及表面法线(A003)记录在像素缓存(A004)中;
②对于像素缓存(A004)中记录的每个片段(A001)的空间位置(A002)及表面法线(A003)数据,在片段着色程序中做如下计算:首先,根据片段(A001)的表面法线(A003)和从片段(A001)的空间位置(A002)向点光源S的位置的连线,确定光线的入射角,按照理想镜面反射定律,计算反射光线方向(A005);然后,创建一个虚拟聚光灯(A006),虚拟聚光灯(A006)的位置设置在片段(A001)的空间位置(A002)处,虚拟聚光灯(A006)的中线方向设置为反射光线方向(A005),虚拟聚光灯(A006)的发散角设置为π/2n+1弧度,其中n≥0为镜面反射的汇聚度;最后,将虚拟聚光灯(A006)添加到虚拟聚光灯列表L中;
Step004:关闭点光源S,使用虚拟聚光灯列表L中的所有虚拟聚光灯照射3D虚拟场景;将虚拟聚光灯列表L放在图形处理器的纹理内存中;将虚拟相机放置在眼睛位置处,打开深度测试,按照正常的绘制流程,绘制3D虚拟场景中的所有漫反射物体表面,编写片段着色程序计算虚拟聚光灯列表L中的所有虚拟聚光灯对各漫反射物体表面的光照贡献,将绘制结果保存在像素缓存中;将像素缓存中的绘制结果保存在变量PIX1中;
Step005:仅以点光源S照射3D虚拟场景,将虚拟相机放置在眼睛位置处,打开深度测试,按照正常的绘制流程,绘制3D虚拟场景中的所有物体表面,获得点光源S对3D虚拟场景中的物体表面的光照贡献,将绘制结果保存在像素缓存中;将像素缓存中的绘制结果保存在变量PIX2中;
Step006:合并变量PIX1和变量PIX2中的绘制结果,得到最终的包含面焦散效果的绘制结果;合并操作可以使用累积缓存来实现,也可以分别为变量PIX1和变量PIX2赋予不同的权值,再将二者相加来实现。
Claims (1)
1.包含由镜面反射产生的面焦散效果的3D虚拟场景的近似绘制方法,其特征在于,技术解决方案和具体步骤如下:
本发明方法的目的在于提高3D虚拟场景中由镜面反射产生的面焦散效果的绘制速度,减少在影视特效、游戏、视景仿真等应用中设计3D虚拟场景时的预览时间开销;
本发明方法的技术解决方案:包含由镜面反射产生的面焦散效果的3D虚拟场景的近似绘制方法,首先将虚拟相机放置在点光源S的位置上,利用光栅化技术绘制3D虚拟场景中的所有镜面反射物体表面,记录所有片段的空间位置及表面法线,然后根据记录的片段的空间位置及表面法线数据创建虚拟聚光灯列表,用虚拟聚光灯列表中的所有聚光灯照射3D虚拟场景,再将虚拟相机放置在眼睛位置处,利用光栅化技术绘制3D虚拟场景中的所有漫反射物体表面,将像素缓存中的绘制结果保存在变量PIX1中;将虚拟相机放置在眼睛位置处,用点光源S照射3D虚拟场景,利用光栅化技术绘制3D虚拟场景中的所有物体表面,将像素缓存中的绘制结果保存在变量PIX2中;合并变量PIX1和变量PIX2的绘制结果,即得到最终的包含面焦散效果的绘制结果;本发明方法的具体步骤如下:
Step001:创建一个中心位于点光源S的位置的正立方体,且该正立方体将3D虚拟场景完全包裹;从正立方体的各个顶点向光源S的位置连线,将整个正立方体空间等分为6份,每份等分空间形成一个正四棱锥,记为正四棱锥Q1、正四棱锥Q2、正四棱锥Q3、正四棱锥Q4、正四棱锥Q5和正四棱锥Q6;
Step002:创建一个空的虚拟聚光灯列表L;
Step003:对于第i个正四棱锥Qi,i=1,2,...,6,做如下计算:
①将虚拟相机放置在点光源S的位置上,根据正四棱锥Qi的几何参数来设置虚拟相机的透视投影视域体参数,使虚拟相机的透视投影视域体与正四棱锥Qi重叠;打开深度测试,绘制3D虚拟场景中的所有镜面反射物体表面;在片段着色程序中,对于所有通过深度测试的片段(A001),将片段(A001)的空间位置(A002)及表面法线(A003)记录在像素缓存(A004)中;
②对于像素缓存(A004)中记录的每个片段(A001)的空间位置(A002)及表面法线(A003)数据,做如下计算:首先,根据片段(A001)的表面法线(A003)和从片段(A001)的空间位置(A002)向点光源S的位置的连线,确定光线的入射角,按照理想镜面反射定律,计算反射光线方向(A005);然后,创建一个虚拟聚光灯(A006),虚拟聚光灯(A006)的位置设置在片段(A001)的空间位置(A002)处,虚拟聚光灯(A006)的中线方向设置为反射光线方向(A005),虚拟聚光灯(A006)的发散角设置为π/2n+1弧度,其中n≥0为镜面反射的汇聚度;最后,将虚拟聚光灯(A006)添加到虚拟聚光灯列表L中;
Step004:关闭点光源S,使用虚拟聚光灯列表L中的所有虚拟聚光灯照射3D虚拟场景;将虚拟相机放置在眼睛位置处,打开深度测试,按照正常的绘制流程,绘制3D虚拟场景中的所有漫反射物体表面,获得虚拟聚光灯列表L中的所有虚拟聚光灯对各漫反射物体表面的光照贡献,将绘制结果保存在像素缓存中;将像素缓存中的绘制结果保存在变量PIX1中;
Step005:仅以点光源S照射3D虚拟场景,将虚拟相机放置在眼睛位置处,打开深度测试,按照正常的绘制流程,绘制3D虚拟场景中的所有物体表面,获得点光源S对3D虚拟场景中的物体表面的光照贡献,将绘制结果保存在像素缓存中;将像素缓存中的绘制结果保存在变量PIX2中;
Step006:合并变量PIX1和变量PIX2中的绘制结果,得到最终的包含面焦散效果的绘制结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110225284 CN102298792B (zh) | 2011-08-08 | 2011-08-08 | 包含由镜面反射产生的面焦散效果的3d虚拟场景的近似绘制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110225284 CN102298792B (zh) | 2011-08-08 | 2011-08-08 | 包含由镜面反射产生的面焦散效果的3d虚拟场景的近似绘制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102298792A true CN102298792A (zh) | 2011-12-28 |
CN102298792B CN102298792B (zh) | 2013-03-06 |
Family
ID=45359185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110225284 Expired - Fee Related CN102298792B (zh) | 2011-08-08 | 2011-08-08 | 包含由镜面反射产生的面焦散效果的3d虚拟场景的近似绘制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102298792B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105096371A (zh) * | 2015-07-14 | 2015-11-25 | 长春理工大学 | 三维场景中由透明几何对象产生的面焦散效果的近似绘制方法 |
CN105335996A (zh) * | 2014-06-30 | 2016-02-17 | 北京畅游天下网络技术有限公司 | 一种光线照射效果的计算方法和装置 |
CN106780704A (zh) * | 2016-12-07 | 2017-05-31 | 长春理工大学 | 基于可见性重用的三维场景直接光照效果近似绘制方法 |
CN107093204A (zh) * | 2017-04-14 | 2017-08-25 | 苏州蜗牛数字科技股份有限公司 | 一种基于全景画面影响虚拟对象光影效果的方法 |
CN107274474A (zh) * | 2017-07-03 | 2017-10-20 | 长春理工大学 | 三维场景立体画面绘制中的间接光照复用方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102074038A (zh) * | 2010-12-28 | 2011-05-25 | 长春理工大学 | 一种由光滑表面折射产生的3d虚拟场景面焦散效果的绘制方法 |
CN102074041A (zh) * | 2010-12-21 | 2011-05-25 | 长春理工大学 | 一种由镜面反射产生的3d虚拟场景面焦散效果的绘制方法 |
-
2011
- 2011-08-08 CN CN 201110225284 patent/CN102298792B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102074041A (zh) * | 2010-12-21 | 2011-05-25 | 长春理工大学 | 一种由镜面反射产生的3d虚拟场景面焦散效果的绘制方法 |
CN102074038A (zh) * | 2010-12-28 | 2011-05-25 | 长春理工大学 | 一种由光滑表面折射产生的3d虚拟场景面焦散效果的绘制方法 |
Non-Patent Citations (5)
Title |
---|
CHRIS WYMAN ET AL: "Interactive Caustics Using Local Precomputed Irradiance", 《THE 12TH PACIFIC CONFERENCE ON COMPUTER GRAPHICS AND APPLICATIONS》 * |
IVO IHRKE ET AL: "Eikonal Rendering: Efficient Light Transport in Refractive Objects", 《ACM TRANSACTIONS ON GRAPHICS》 * |
MUSAWIR A. SHAH ET AL: "Caustics Mapping: An Image-Space Technique for Real-Time Caustics", 《IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS》 * |
TAMAS UMENHOFFER ET AL: "Caustic Triangles on the GPU", 《CGI 2008 CONFERENCE PROCEEDINGS》 * |
WEI HU ET AL: "Interactive Approximate Rendering of Reflections, Refractions, and Caustics", 《IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335996A (zh) * | 2014-06-30 | 2016-02-17 | 北京畅游天下网络技术有限公司 | 一种光线照射效果的计算方法和装置 |
CN105335996B (zh) * | 2014-06-30 | 2018-05-01 | 北京畅游天下网络技术有限公司 | 一种光线照射效果的计算方法和装置 |
CN105096371A (zh) * | 2015-07-14 | 2015-11-25 | 长春理工大学 | 三维场景中由透明几何对象产生的面焦散效果的近似绘制方法 |
CN105096371B (zh) * | 2015-07-14 | 2017-08-22 | 长春理工大学 | 三维场景中由透明几何对象产生的面焦散效果的近似绘制方法 |
CN106780704A (zh) * | 2016-12-07 | 2017-05-31 | 长春理工大学 | 基于可见性重用的三维场景直接光照效果近似绘制方法 |
CN106780704B (zh) * | 2016-12-07 | 2019-11-08 | 长春理工大学 | 基于可见性重用的三维场景直接光照效果近似绘制方法 |
CN107093204A (zh) * | 2017-04-14 | 2017-08-25 | 苏州蜗牛数字科技股份有限公司 | 一种基于全景画面影响虚拟对象光影效果的方法 |
CN107274474A (zh) * | 2017-07-03 | 2017-10-20 | 长春理工大学 | 三维场景立体画面绘制中的间接光照复用方法 |
CN107274474B (zh) * | 2017-07-03 | 2020-06-23 | 长春理工大学 | 三维场景立体画面绘制中的间接光照复用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102298792B (zh) | 2013-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10732405B2 (en) | Refractive surface | |
CN102768765B (zh) | 实时点光源软阴影渲染方法 | |
CN102298792B (zh) | 包含由镜面反射产生的面焦散效果的3d虚拟场景的近似绘制方法 | |
CN104008563B (zh) | 利用虚拟点光源实现动画三维场景的全局光照绘制的方法 | |
CN101710429B (zh) | 一种基于动态光照图的增强现实系统光照算法 | |
CN107038745B (zh) | 一种3d旅游景观漫游交互方法及装置 | |
Jensen et al. | High quality rendering using ray tracing and photon mapping | |
CN110728741B (zh) | 基于多细节层次模型的面光源照射三维场景画面渲染方法 | |
CN104103092A (zh) | 一种基于聚光灯实时动态阴影的实现方法 | |
CN104463959A (zh) | 一种生成立方体环境贴图的方法 | |
CN109448084A (zh) | 一种基于体素化全局光照算法进行光贴图烘培的算法 | |
CN103700134A (zh) | 基于可控制纹理烘焙的三维矢量模型实时光影延迟着色渲染方法 | |
CN104392479A (zh) | 一种利用灯光索引号对像素进行光照着色的方法 | |
CN102243768A (zh) | 一种三维虚拟场景立体画面的绘制方法 | |
CN108804061A (zh) | 虚拟现实系统的虚拟场景显示方法 | |
CN116228960A (zh) | 虚拟博物馆展示系统的构建方法、构建系统和展示系统 | |
CN102074041B (zh) | 一种由镜面反射产生的3d虚拟场景面焦散效果的绘制方法 | |
US9454845B2 (en) | Shadow contouring process for integrating 2D shadow characters into 3D scenes | |
CN109493413A (zh) | 基于自适应虚拟点光源采样的三维场景全局光照效果绘制方法 | |
CN105447905B (zh) | 基于可见性平滑滤波的三维场景近似柔和阴影绘制方法 | |
Wang et al. | High-efficiency photorealistic computer-generated holograms based on the backward ray-tracing technique | |
CN102346919B (zh) | 在3d动画绘制中利用帧间时间相关的方法 | |
CN102074038B (zh) | 一种由光滑表面折射产生的3d虚拟场景面焦散效果的绘制方法 | |
CN105574913A (zh) | 一种基于虚拟现实技术的角色动画创建系统 | |
CN106228599B (zh) | 基于两级可见性平滑滤波的近似柔和阴影绘制方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130306 Termination date: 20140808 |
|
EXPY | Termination of patent right or utility model |