[发明专利]一种由光滑表面折射产生的3D虚拟场景面焦散效果的绘制方法无效

专利信息
申请号: 201010608616.9 申请日: 2010-12-28
公开(公告)号: CN102074038A 公开(公告)日: 2011-05-25
发明(设计)人: 陈纯毅;杨华民;蒋振刚;范静涛;丁莹;冯欣;底晓强;韩成;陈占芳;李奇 申请(专利权)人: 长春理工大学
主分类号: G06T15/50 分类号: G06T15/50
代理公司: 暂无信息 代理人: 暂无信息
地址: 130022 *** 国省代码: 吉林;22
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 光滑 表面 折射 产生 虚拟 场景 面焦散 效果 绘制 方法
【权利要求书】:

1.一种由光滑表面折射产生的3D虚拟场景面焦散效果的绘制方法,其特征在于,所需的数据结构及实现步骤如下:

所需的数据结构:本发明提供一种存储由光滑表面折射产生的3D虚拟场景中的焦散照明体的数据结构(100),其包括光滑透明三角形面片的顶点位置P1、顶点位置P2、顶点位置P3、顶点法向量N1、顶点法向量N2、顶点法向量N3、折射标识F1、折射标识F2、折射标识F3、折射光线方向向量R1、折射光线方向向量R2、折射光线方向向量R3、相交标识T1、相交标识T2、相交标识T3、交点S1、交点S2、交点S3、二次折射标识G1、二次折射标识G2、二次折射标识G3、二次折射光线方向向量RS1、二次折射光线方向向量RS2、二次折射光线方向向量RS3等18个成员变量;

实现步骤:

本发明的方法(010)部分创建由光滑表面折射产生的3D虚拟场景(A001)中的所有焦散照明体,具体步骤如下:

步骤(S011):将3D虚拟场景(A001)中所有面向光源的光滑透明三角形面片存入三角形面片列表1(A002)中;将3D虚拟场景(A002)中所有背向光源的光滑透明三角形面片存入三角形面片列表2(A003)中;对三角形面片列表1(A002)中的每个三角形面片(A004),创建一个数据结构(100)类型的变量(A005),并将变量(A005)与三角形面片(A004)相关联;

步骤(S012):将三角形面片列表1(A002)中所有三角形面片的顶点存入顶点列表1(A006)中,并且删除重复的顶点;对顶点列表1(A006)中的每个顶点(A007),创建一个从顶点(A007)指向光源位置的向量(A008),如果顶点(A007)的法向量与向量(A008)的夹角大于90度,则将顶点(A007)从顶点列表1(A006)中删除;

步骤(S013):对顶点列表1(A006)中的每个顶点(A009),做如下计算:

(S013-1):根据顶点(A009)的位置及法向量、光源位置、顶点(A009)对应的光滑透明三角形面片的折射率,判断从光源入射的光线在顶点(A009)位置处是否能发生折射,如果能发生折射,则计算顶点(A009)位置处的折射光线方向向量(A010)并置Flag0=1,否则置Flag0=0并转步骤(S014);

(S013-2):根据顶点(A009)的位置及折射光线方向向量(A010)创建折射光线射线(A011),判断三角形面片列表1(A002)和三角形面片列表2(A003)中是否有三角形面片(A012)与折射光线射线(A011)相交,如果没有,则置Flag1=0并转步骤(S014),否则置Flag1=1,并计算出离顶点(A009)最近的交点(A013),将交点(A013)位置处的三角形面片(A014)与顶点(A009)相关联,再根据折射定律判断在交点(A013)位置处能否发生折射,如果发生折射则置Flag2=1并计算折射光线方向向量(A015),否则置Flag2=0并转步骤(S014);

(S013-3):在三角形面片列表1(A002)中,找出包含顶点(A009)的所有三角形面片(A016),计算顶点(A009)在各三角形面片(A016)的顶点序列中的编号i(i=1,2,3);将顶点(A009)的位置及法向量分别赋值给与各三角形面片(A016)相关联的变量(A005)的顶点位置Pi及顶点法向量Ni成员变量;将Flag0赋值给与各三角形面片(A016)相关联的变量(A005)的折射标识Fi成员变量;将折射光线方向向量(A010)赋值给与各三角形面片(A016)相关联的变量(A005)的折射光线方向向量Ri成员变量;将Flag1赋值给与各三角形面片(A016)相关联的变量(A005)的相交标识Ti成员变量;将交点(A013)赋值给与各三角形面片(A016)相关联的变量(A005)的交点Si成员变量;将Flag2赋值给与各三角形面片(A016)相关联的变量(A005)的二次折射标识Gi成员变量;将折射光线方向向量(A015)赋值给与各三角形面片(A016)相关联的变量(A005)的二次折射光线方向向量RSi成员变量;

步骤(S014):对于三角形面片列表1(A002)中的每个三角形面片(A017),做如下计算:

(S014-1):如果与三角形面片(A017)相关联的变量(A005)的第i个折射标识Fi成员变量的值为0(i=1,2,3),则将三角形面片(A017)从三角形面片列表1(A002)中删除,否则转步骤(S015);

(S014-2):如果与三角形面片(A017)相关联的变量(A005)的第i个二次折射标识Gi成员变量的值为0(i=1,2,3),则将三角形面片(A017)从三角形面片列表1(A002)中删除,否则转步骤(S015);

步骤(S015):将三角形面片列表1(A002)中的各个三角形面片(A018)所关联的变量(A005)存入一个列表(A019)中,列表(A019)定义了由光滑表面折射产生的3D虚拟场景中的所有焦散照明体;

本发明的方法(020)部分实现待绘制场景点(B001)的焦散光照值的计算,具体步骤如下:

步骤(S021):创建一个包含待绘制场景点(B001)的平面(B002),且平面(B002)的法向量平行于待绘制场景点(B001)的法向量;

步骤(S022):对于列表(A019)中的每个元素(B003),做如下计算:

(S022-1):如果元素(B003)的相交标识T1、相交标识T2、相交标识T3等三个成员变量都为1,则转(S022-5),否则,创建一条起始于元素(B003)的顶点位置P1成员变量表示的顶点,方向平行于元素(B003)的折射光线方向向量R1成员变量表示的方向的射线(B004),创建一条起始于元素(B003)的顶点位置P2成员变量表示的顶点,方向平行于元素(B003)的折射光线方向向量R2成员变量表示的方向的射线(B005),创建一条起始于元素(B003)的顶点位置P3成员变量表示的顶点,方向平行于元素(B003)的折射光线方向向量R3成员变量表示的方向的射线(B006);

(S022-2):计算射线(B004)与平面(B002)的交点(B007);计算射线(B005)与平面(B002)的交点(B008);计算射线(B006)与平面(B002)的交点(B009);如果待绘制场景点(B001)处于由交点(B007)、交点(B008)和交点(B009)确定的三角形之外或者待绘制场景点(B001)不在由交点(B007)、交点(B008)和交点(B009)确定的直线段之上,则结束元素(B003)表示的焦散照明体对待绘制场景点(B001)的光照贡献计算,否则根据待绘制场景点(B001)到交点(B007)、交点(B008)和交点(B009)的距离以及元素(B003)的折射光线方向向量R1、折射光线方向向量R2、折射光线方向向量R3等三个成员变量,通过插值计算出待绘制场景点(B001)处的折射光线方向向量(B010);

(S022-3):创建一条起始于待绘制场景点(B001),方向平行于折射光线方向向量(B010)的反向向量的射线(B011);计算射线(B011)与由元素(B003)的顶点位置P1、顶点位置P2、顶点位置P3等三个成员变量表示的顶点构成的三角形面片(B012)的交点(B013);创建一条起始于交点(B013),终止于光源位置的线段(B014);测试3D虚拟场景(A001)中是否有不透明的三角形面片(B015)与线段(B014)相交,如果无交则转(S022-4),否则三角形面片(B012)相对于光源被部分遮挡,其产生的焦散照明体对待绘制场景点(B001)的光照贡献为0,结束元素(B003)表示的焦散照明体对待绘制场景点(B001)的光照贡献计算;

(S022-4):如果交点(B007)、交点(B008)和交点(B009)构成一个三角形(B016),则计算三角形(B016)在三角形面片(B012)所在平面上的投影面积(B017),再计算投影面积(B017)与三角形面片(B012)的面积之比(B018),将面积之比(B018)赋值给变量α;如果交点(B007)、交点(B008)和交点(B009)构成一条直线段,则将变量α设置为一个固定值;创建从交点(B013)指向光源位置的向量(B019),对向量(B019)进行归一化计算;根据三角形面片(B012)的三个顶点位置,计算三角形面片(B012)的表面法向量(B020);根据光源到交点(B013)的距离、向量(B019)与表面法向量(B020)的夹角以及光源的辐射亮度,计算三角形面片(B012)的照明度(B021),将照明度(B021)乘以变量α并赋值给变量I(B022);根据变量I(B022)的值、待绘制场景点(B001)的材质属性以及待绘制场景点(B001)的法向量与折射光线方向向量(B010)的反向向量的夹角,按照光照反射模型计算元素(B003)表示的焦散照明体对待绘制场景点(B001)的光照贡献值,并将其加到待绘制场景点(B001)的总光照值之中,结束元素(B003)表示的焦散照明体对待绘制场景点(B001)的光照贡献计算;

(S022-5):创建一条起始于元素(B003)的交点S1成员变量表示的交点位置,方向平行于元素(B003)的二次折射光线方向向量RS1成员变量表示的方向的射线(B023);创建一条起始于元素(B003)的交点S2成员变量表示的交点位置,方向平行于元素(B003)的二次折射光线方向向量RS2成员变量表示的方向的射线(B024);创建一条起始于元素(B003)的交点S3成员变量表示的交点位置,方向平行于元素(B003)的二次折射光线方向向量RS3成员变量表示的方向的射线(B025);计算射线(B023)与平面(B002)的交点(B026);计算射线(B024)与平面(B002)的交点(B027);计算射线(B025)与平面(B002)的交点(B028);如果待绘制场景点(B001)处于由交点(B026)、交点(B027)和交点(B028)确定的三角形之外或者待绘制场景点(B001)不在由交点(B026)、交点(B027)和交点(B028)确定的直线段之上,则结束元素(B003)表示的焦散照明体对待绘制场景点(B001)的光照贡献计算,否则根据待绘制场景点(B001)到交点(B026)、交点(B027)和交点(B028)的距离以及元素(B003)的二次折射光线方向向量RS1、二次折射光线方向向量RS2、二次折射光线方向向量RS3等三个成员变量,通过插值计算出待绘制场景点(B001)处的二次折射光线方向向量(B029);

(S022-6):创建一条起始于待绘制场景点(B001),方向平行于二次折射光线方向向量(B029)的反向向量的射线(B030);计算射线(B030)与由元素(B003)的交点S1、交点S2、交点S3等三个成员变量表示的交点构成的三角形的交点(B031);根据交点(B031)与元素(B003)的交点S1、交点S2、交点S3等三个成员变量表示的交点的距离以及元素(B003)的折射光线方向向量R1、折射光线方向向量R2、折射光线方向向量R3等三个成员变量,通过插值计算出交点(B031)处的折射光线方向向量(B032);

(S022-7):创建一条起始于交点(B031),方向平行于折射光线方向向量(B032)的反向向量的射线(B033);计算射线(B033)与由元素(B003)的顶点位置P1、顶点位置P2、顶点位置P3等三个成员变量表示的顶点构成的三角形面片(B012)的交点(B034);创建一条起始于交点(B034),终止于光源位置的线段(B035);测试3D虚拟场景(A001)中是否有不透明的三角形面片(B015)与线段(B035)相交,如果无交则转(S022-8),否则三角形面片(B012)相对于光源被部分遮挡,其产生的焦散照明体对待绘制场景点(B001)的光照贡献为0,结束元素(B003)表示的焦散照明体对待绘制场景点(B001)的光照贡献计算;

(S022-8):如果交点(B026)、交点(B027)和交点(B028)构成一个三角形(B036),则计算三角形(B036)在由元素(B003)的交点S1、交点S2、交点S3等三个成员变量表示的交点所确定的平面上的投影面积(B037),再计算投影面积(B037)在三角形面片(B012)所在平面上的投影面积(B038),最后计算投影面积(B038)与三角形面片(B012)的面积之比(B039),将面积之比(B039)赋值给变量β;如果交点(B026)、交点(B027)和交点(B028)构成一条直线段,则将变量β设置为一个固定值;创建从交点(B034)指向光源位置的向量(B040),对向量(B040)进行归一化计算;根据三角形面片(B012)的三个顶点位置,计算三角形面片(B012)的表面法向量(B020);根据光源到交点(B034)的距离、向量(B040)与表面法向量(B020)的夹角以及光源的辐射亮度,计算三角形面片(B012)的照明度(B041),将照明度(B041)乘以变量β并赋值给变量J(B042);根据变量J(B042)的值、待绘制场景点(B001)的材质属性以及待绘制场景点(B001)的法向量与二次折射光线方向向量(B029)的反向向量的夹角,按照光照反射模型计算元素(B003)表示的焦散照明体对待绘制场景点(B001)的光照贡献值,并将其加到待绘制场景点(B001)的总光照值之中,结束元素(B003)表示的焦散照明体对待绘制场景点(B001)的光照贡献计算。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长春理工大学,未经长春理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201010608616.9/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top