位置: 编程技术 - 正文

Unity3d 基于物理渲染Physically-Based Rendering之实现(unity3d物理现象模拟)

编辑:rootadmin
根据前文的例子 =,弄了一下。公式和之前的文章一样,这次加上cubeMap贴图,由于方便,就直接用surface shader了,因为不用求reflect方向,之前也有这一篇文章说明surface shader中cubeMap的使用方法和实时反射的方法 这是他们给出的代码,求的是F(L,H)函数的&#;,其中g为gloss光泽度,NoV为NdotV,N、V等等的含义在前篇文章也讲过,rf0我们就让他为可控的外部变量。复习一下Cook-Torrance光照模型求specular的方法可以简单概括为这个公式 本次计算沿用上次方法, 但改用specular power变量_SP为gloss光泽度为本篇定义外部变量_GL控制,具体装换方法_SP = pow(, _GL)也就是specular power&#;为的gloss倍,借用这个已经调好的参数,也算是站在巨人的肩膀上了。Ops2的开发人员称他们的brdf为Environment map pre-filtering模拟了环境光照射原文说明the environment map blurs much more linearly across the gloss rangeGloss的范围使环境贴图的模糊更加的的线性,接下来的例子我们就可以看到结果首先我们定义出光照函数,具体算法与前篇相同不在此赘述。只是把F(L,H)函数BRDF改成上面经过改进的方法,代码如下:在surf函数中我们要解码cubeMap传&#;给light函数,再此注意,我们用的不是texCUBE而是texCUBElod,看了函数名就知道不仅解出颜色,而且也控制lod,lod为level of detail,细节程度,我们通过控制他的第二个参数的w&#;来控制细节,通过这个我们能改变他的粗糙度,这也是基于物理的渲染的灵魂所在,我们要使光泽度gloss越低越粗糙。我们定义一个外部变量_nMips来控制,从而调试成我们想要的效果。在surf函数中也需要计算BRDF,为了控制light中的specular比重,使之更加真实效果如下: 我又做了各种实验,根据前篇改变了NDF函数这是phong分布函数 Beckmann分布函数,他们都不一样,仔细比对就会发现Beckmann的高光比较强,比较突兀 Torrance-Reitz(GXX)分布函数 结果发现ops2的效果还是最好的,其次是Torrance-Reitz再来个全家福给出ops2的全部代码,其它的根据前篇代码带入更改即可 ----by wolf

推荐整理分享Unity3d 基于物理渲染Physically-Based Rendering之实现(unity3d物理现象模拟),希望有所帮助,仅作参考,欢迎阅读内容。

Unity3d 基于物理渲染Physically-Based Rendering之实现(unity3d物理现象模拟)

文章相关热门搜索词:unity3d物理引擎介绍,unity3d物理现象模拟,unity3d基于物理系统的2D平台跳跃游戏,unity physics,unity physics,unity3d基于物理系统的2D平台跳跃游戏,unity3d物理现象模拟,unity物理系统,内容如对您有帮助,希望把文章链接给更多的朋友!

unity3d 中实现猜拳游戏 usingUnityEngine;usingSystem.Collections;publicclasscaiquan:MonoBehaviour{publicRectr1;publicRectr2;//publicTexturet1;//publicTexturet2;//publicTexturet3;publicTexture[]textures;publicintcomputerCP;pu

unity3d加密代码结束篇 确定Mono可以成功后,我就自己修改了它的源代码,一开始虽然不顺利,但幸运的是可以用g_warning打印。通过打印发现自己多解密了一个字节。最终成功

委托、事件、单例在Unity3D中的使用 原文请点击这里翻译:claudioHereIdemonstratehowtocreatedelegates,eventsandsingletonstoworkinconjunction.ThistutorialiswrittenforUnity3D,However,similarcodecanbeusedforanyC#or.NETapplication.

本文链接地址:https://www.jiuchutong.com/biancheng/383574.html 转载请保留说明!

上一篇:Unity3D学习笔记之七创建自己的游戏场景(unity3d基础教程)

下一篇:unity3d 中实现猜拳游戏(unity3d做游戏)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络