[发明专利]一种基于Cook-Torrance算法的网页端3D模型实现方法在审
申请号: | 202011090936.X | 申请日: | 2020-10-13 |
公开(公告)号: | CN112184889A | 公开(公告)日: | 2021-01-05 |
发明(设计)人: | 李军;沈莹;胡涛 | 申请(专利权)人: | 湖北民族大学 |
主分类号: | G06T17/00 | 分类号: | G06T17/00;G06T15/50;G06T15/20;G06T15/00;G06F16/957 |
代理公司: | 重庆乐泰知识产权代理事务所(普通合伙) 50221 | 代理人: | 袁茹坤 |
地址: | 444500*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 cook torrance 算法 网页 模型 实现 方法 | ||
1.一种基于Cook-Torrance算法的网页端3D模型实现方法,其特征在于:包括以下步骤:
A、搭建3D模型并生成3D模型数据文件;
B、加载3D模型数据文件至网站数据库;
C、根据Cook-Torrance算法,编写顶点着色器程序和片元着色器程序;
D、调用自定义着色器;
E、渲染3D模型,得到注重细节处理的渲染效果。
2.根据权利要求1所述的网页端3D模型实现方法,其特征在于:步骤A中搭建3D模型并生成3D模型数据文件的具体操作为:采用3D模型设计软件搭建所需的3D模型后,使用3Dmax软件导出模型数据文件,包括三维模型数据obj文件和表面材质的mtl文件。
3.根据权利要求2所述的网页端3D模型实现方法,其特征在于:步骤B中加载3D模型文件的具体实现方法为:使用three.js开源库搭建场景,使用THREE.OBJMTLLoader()函数加载三维模型数据obj文件和表面材质的mtl文件。
4.根据权利要求3所述的网页端3D模型实现方法,其特征在于:步骤C中根据Cook-Torrance 3D算法编写顶点着色器程序和片元着色器程序的具体实现方法为:
a、顶点着色器采用通用顶点着色器,片元着色器程序则根据Cook-Torrance 3D算法计算公式编写程序;
b、编写片元着色器需要读取3D模型mtl文件中的材质参数ks、kd,场景设置的泛光项和相机位置(视点);
c、根据相机位置等参数计算法向量N,视角方向向量V和入射光方向向量L;
d、根据算法向量N,视点方向向量V和入射光方向向量L计算Fresnel反射系数F;
e、读取表面粗糙程度系数m,计算Backmann分布函数D;
f、计算三种情况下的集合衰减系数G,入射光无遮蔽1,入射光部分遮蔽时的衰减系数G1,反射光部分遮蔽时的衰减系数G2,取三种情况的最小值;
g、计算视角的反射光强度I。
5.根据权利要求4所述的网页端3D模型实现方法,其特征在于:步骤D中调用自定义着色器的具体操作为:使用three.js开源库中的ShaderMaterial()函数调用上述步骤C中根据Cook-Torrance 3D算法编写的顶点着色器和片元着色器。
6.根据权利要求5所述的网页端3D模型实现方法,其特征在于:步骤E中渲染3D模型使用WebGL进行图元装配和光栅化,具体步骤为:
h、使用顶点着色器进行图元装配:图元装配是指由顶点生成一个图元(在WebGL中为三角形),顶点着色器应用投影矩阵将三维世界坐标转换为屏幕坐标,然后由GPU进行图元装配。
i、使用片元着色器进行光栅化:光栅化由运行在GPU的片元着色器完成,在Cook-Torrance 3D算法中,则是根据模型材质参数,计算泛光项、镜面反射和漫反射,得到最后反射光强。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖北民族大学,未经湖北民族大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011090936.X/1.html,转载请声明来源钻瓜专利网。