shader forge初级篇|反射材质的运用

反射效果在制作游戏场景时是经常需要的,特别是在大理石、陶瓷类材质上有助于提升场景质感与氛围。

说道反射,游戏中常见做法就是利用当前场景cubemap作为反射源

而cubemap又是当前场景+Skybox的作用结果。

一 制作CubeMap

  • 天空球【网上可以下载到很多.unitypackage,只说明unity新版本5.0之后将skybox移到了Lightmap下设置,旧版本在RenderSettings下设置】
  • cubemap【5.3.4版本在这里如图第三级资源目录下创建cubemap ,旧版本在第二级目录即可找到】

  • 在场景中心,也就是你认为能反射全景的中心位置创建一个Sphere 如图

  • 创建cubemap脚本代码【在资源目录的Editor文件夹中新建js脚本RenderCubemapWizard,将下面代码粘进去即可】

// Render scene from a given point into a static cube map.
// Place this script in Editor folder of your project.
// Then use the cubemap with one of Reflective shaders!
class RenderCubemapWizard extends ScriptableWizard {
    var renderFromPosition : Transform;
    var cubemap : Cubemap;
    function OnWizardUpdate () {
        helpString = "Select transform to render from and cubemap to render into";
        isValid = (renderFromPosition != null) && (cubemap != null);
    }
        function OnWizardCreate () {
            // create temporary camera for rendering
            var go = new GameObject( "CubemapCamera", Camera );
            // place it on the object
            go.transform.position = renderFromPosition.position;
            go.transform.rotation = Quaternion.identity;
            // render into cubemap
            go.GetComponent.<Camera>().RenderToCubemap( cubemap );
            // destroy temporary camera
            DestroyImmediate( go );
        }
    @MenuItem("GameObject/Render into Cubemap")
    static function RenderCubemap () {
        ScriptableWizard.DisplayWizard.<RenderCubemapWizard>(
        "Render cubemap", "Render!");
    }
    }
  • 稍等片刻,脚本编译后 菜单栏的GameObject下生成了新的Render into CubeMap按钮,打开

    并将Sphere球体 与 CubeMap物体一一拖放到如图所示位置。完成后点击右下角的Render! ———————CubeMap即可秒生成

二 利用ShaderForge制作反射shader

  • 简单的forge shader

    Texture 2D – 模型漫反射贴图

    CubeMap – 刚生成的CubeMap文件

    CubeMap – 控制CubeMap的反射强度[你也可以用其他变量 不唯一]

    Multiply – 乘法节点负责倍增反射强度

  • 生成shader后回到场景资源文件夹中,将场景某地面的贴图材质球shader换成我们自己制作的shader即可,如图效果!

PS:当然你也可以自己DIY 增加自发光 增加高光 方法不固定

时间: 2024-11-09 15:26:04

shader forge初级篇|反射材质的运用的相关文章

u3d shader forge 冰渐冻材质

<ignore_js_op> 分享个自己研究的冰材质渐冻shader可以调节的参数很多,并且带模型顶点偏移,能更加真实模拟冰的凹凸厚度感.(参数过大容易出现模型破损,慎用)shader forge 1.26版本做的,低版本测试可能会导致纹理无法显示的问题.u3d4.6.2--5.3.4f1测试均可用.除了冰效果,同样可以发散思维,配合贴图,做石化效果等等.还有很多不足,仅供学习参考练习使用....shader forge 1.26下载 下载http://files.cnblogs.com/fi

Unity3D引擎之Shader Forge应用

笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解>电子工业出版社等. CSDN视频网址:http://edu.csdn.net/lecturer/144 本篇博客给读者介绍一个材质渲染的组件-Shader Forge,在材质渲染中可以起到事半功倍的效果,对于很多开发者不熟悉材质渲染的人来说,更容易上手,在应用时首先要对号入座,下面先把

Unity之Shader学习基础篇《一》

最近在学习Shader,将学习的一些心得和案例以及基础知识罗列了一下.这一篇是unity之Shader的基础篇之基础,更多的是一些概念.该篇将分以下几个部分: 1.什么是Shader? 2.GPU和Cg语言 3.Unity中使用Cg语言如何编写Shader? 1.什么是Shader? 1.1.Shder的概念:Shader即着色器,是一款运行在GPU上的程序,用以对三维物体进行着色处理,光与影的计算,纹理颜色的呈现等,从而将游戏引擎中一个个作为抽象的几何数据存在的模型.场景和特效,以和真实世界类

Unity3D之高级渲染-Shader Forge增强版

笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解>电子工业出版社等. CSDN视频网址:http://edu.csdn.net/lecturer/144 大家了解了Shader Forge的制作原理,也会使用Shader Forge制作渲染材质了,在实际项目开发中,我们会遇到各种各样的问题,有时候我们需要使用Shader Forge渲

Unity3D之高级渲染-Shader Forge

笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解>电子工业出版社等. CSDN视频网址:http://edu.csdn.net/lecturer/144 在前面的博客中给读者介绍了关于使用Shader Forge的应用,Shader Forge这个组件使用起来还是非常方便的,尤其对于哪些对Shader编程不是很理解的开发者,使用它可以

Unity 游戏开发技巧集锦之材质的应用的创建反射材质

Unity 游戏开发技巧集锦之材质的应用的创建反射材质 Unity中材质的应用 游戏中,大多数材质的应用都离不开纹理,而纹理本身是图片.所以,在学习本章时,最好在电脑上安装一个可以编辑图片的功能强大的软件,如Photoshop和GIMP.本章使用的是前者.另外,有些纹理需要包含Transparents通道,所以图片最好保存成可以存储相应信息的格式,例如,PSD和TGA. unity中创建反射材质 生活中,反射材质(reflective material)的实例有很多.例如,水面.光滑的金属.镜子

内存泄露之常见问题解决--初级篇

身为一个段子猿,我决定来写写最近的学习心得. 1.简介 在整个Android开发过程中,内存泄露是导致OOM的一个重点因素.大概意思就是:GC无法回收原本应该被回收的对象,这个对象就引发了内存泄露.那有什么危害呢?手机的内存大小是有限的,如果不能释放的话,你就无法创建新的对象,你的新界面等等就无法正常运行,然后程序就OOM了(OutOfMemory). 2.OOM以及内存泄露 OOM通俗点讲就是,你家里有2个厕所,本来你和你老婆用的话,都是够用的,有一天你不小心造人了,从此家里有了1+1=3个人

javascript调试之chrome初级篇

请原谅我的喜新厌旧! 以前我是firebug和firefox的忠实粉丝,虽然现在依然对ff心存好感,但是chrome在我心中的地位与日俱增.以前实习时导师看到我在用firebug调试时善意地告诉我以后要习惯用chrome,我还不以为意,直到现在深深地爱上了chrome的简洁方便.我基本不会html和css,js也只会那么一点,所以现在为止基本上不用用到高级一点的调试,so此文为调试之初级篇.

python_way ,day7 面向对象 (初级篇)

面向对象 初级篇 python支持 函数 与 面向对象 什么时候实用面向对象? 面向对象与函数对比 类和对象 创建类 class 类名 def 方法名(self,xxxx) 类里面的方法,只能对象去调用 对象 = 类名() 通过对象执行方法 对象.方法名(xxxx) 设计,增删改查功能 函数式: def fetch(self,host,port name passwd,sql) pass def create(self,host,port name passwd,sql) pass def re