基于三维引擎实现渲染纹理镜面反射效果的方法及系统
申请人信息
- 申请人:山东捷瑞数字科技股份有限公司; 山东捷瑞信息技术产业研究院有限公司
- 申请人地址:264003 山东省烟台市莱山区澳柯玛大街102号
- 发明人: 山东捷瑞数字科技股份有限公司; 山东捷瑞信息技术产业研究院有限公司
专利详细信息
| 项目 | 内容 |
|---|---|
| 专利名称 | 基于三维引擎实现渲染纹理镜面反射效果的方法及系统 |
| 专利类型 | 发明授权 |
| 申请号 | CN202311773637.X |
| 申请日 | 2023/12/22 |
| 公告号 | CN117437345B |
| 公开日 | 2024/3/19 |
| IPC主分类号 | G06T15/06 |
| 权利人 | 山东捷瑞数字科技股份有限公司; 山东捷瑞信息技术产业研究院有限公司 |
| 发明人 | 杨斌; 孙宏伟; 鞠洪利; 柳晓坤; 柳紫涵; 王瑞; 姚舜宇 |
| 地址 | 山东省烟台市莱山区澳柯玛大街102号; 山东省烟台市莱山区同和路26号 |
摘要文本
本发明涉及一种基于三维引擎实现渲染纹理镜面反射效果的方法及系统,属于计算机图像处理技术领域。一种基于三维引擎实现渲染纹理镜面反射效果的方法,包括以下步骤:1)新建材质球;2)定义shader基本属性;3)设置shader渲染类型;4)计算反射向量;5)计算反射纹理坐标;6)采样镜面反射纹理;7)获取基础纹理;8)获取最终纹理;9)材质球运用。本发明的方法和系统结合了光线追踪技术和计算机图形学的反射计算,可以在实时渲染中实现高质量的镜面反射效果,同时,本发明方法可以通过调整反射强度、纹理和其他属性来控制效果的呈现,使得开发者可以根据场景需求和个人喜好进行灵活的调整和定制。 关注公众号专利查询网
专利主权项内容
1.一种基于三维引擎实现渲染纹理镜面反射效果的方法,其特征在于,包括以下步骤:步骤1、新建材质球:在三维引擎中新建一个材质球;步骤2、定义shader基本属性:在三维引擎的Project面板中新建一个shader文件,定义所述shader文件所需要的基础纹理_MainTex、反射纹理_ReflectionTex和反射强度_Reflectivity;步骤3、设置渲染类型:将所述shader文件的渲染类型RenderType设置为不透明Opaque,将所述基础纹理_MainTex与反射纹理_ReflectionTex均设置为2D纹理类型,将所述反射强度_Reflectivity设置为浮点数;步骤4、计算反射向量:通过shader自带的reflect()函数计算反射向量:reflectionVector=-IN.viewDir-2*dot(o.Normal, -IN.viewDir)*o. Normal;式中,reflectionVector为反射向量,-IN.viewDir代表光线入射方向,dot()代表向量点乘,o.Normal代表表面法线向量;步骤5、计算反射纹理坐标:基于所求出的反射向量,通过以下公式计算反射纹理坐标:reflectionTexCoord=reflectionVector*roughness+roughness;式中,reflectionTexCoord 为反射纹理坐标,reflectionVector为反射向量,roughness为自定义的粗糙度参数;步骤6、采样镜面反射纹理:基于所求出的反射纹理坐标,通过tex2D()函数获取反射纹理的颜色,其计算公式如下:fixed4 reflectionColor = tex2D(_ReflectionTex, reflectionTexCoord);式中,reflectionColor为采样的镜面反射纹理,_ReflectionTex为采样的纹理对象,即定义的反射纹理;reflectionTexCoord为反射纹理坐标;步骤7、获取基础纹理:基于基础纹理坐标,通过tex2D()函数获取基础纹理的颜色;步骤8、获取最终纹理:将反射纹理的颜色与基础纹理的颜色进行反射强度的线性插值运算,即得到最终纹理的颜色,所述线性插值运算公式如下:result = (1 - t) * startValue + t * endValue;式中,result代表最终纹理的颜色,startValue 是起始点的值,endValue 是结束点的值,t 是自定义的插值的比例因子;步骤9、材质球运用:选中新建的材质球,将该材质球运用到物体上,该物体在场景渲染时即具有了镜面反射效果。