Unity3D 的物理渲染和光照模型

为什么地球在两极严寒,而在赤道火热?这个问题,仿佛与着色器毫不相干,但却是理解光照模型怎样工作的基础。正如这个教程前面部分所解释的,表面着色器使 用数学模型来预测光照在三角形上怎样反射。总的来说,Unity 引擎支持两种着色技术,一个是哑光着色器,一个是镜面材料着色器。前一种对于不透明表面的支持很完美,而后一种则用来模拟反射对象。这些光照模型背后的数 学可能非常复杂,但是如果你想创造属于你自己的光照效果,你就得理解它们是如何工作的。直到 Unity 版本 4.x,默认的漫射光照模型都基于朗伯反射(Lambertian reflectance)的。

文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-09-27 17:45:50

Unity3D 的物理渲染和光照模型的相关文章

物理渲染-基于物理的光照模型

文章所用图片来自相关领域文献,如有侵权请联系撤除, 转载本文请注明出处 1.关于光照模型 对于图形学领域和图形学开发来说,实时渲染的光照模型是一个最最基础的问题,简单的来讲,光照模型就是用来描述在真实环境下,物体表面一点在在光照下的反射颜色值.有许许多多的光照模型试图用数学的公式来模拟这个问题,当然这即是一个物理问题,也是一个数学问题.大学时最初接触计算机图形学时,对书本上关于光照模型的推到过程就极为不解,最近为了研究基于物理的光照模型看到一篇10年siggrgrah的course,(<Phys

Unity5 新功能解析--物理渲染与standard shader

物理渲染是UNITY5最大的亮点之一,物理渲染的采用绝对是下一个世代游戏的热点,UNITY5的大范围使用是一个可喜可贺的事情,关于什么是物理渲染,本人曾经写过一篇博客专门讨论,详见http://blog.csdn.net/leonwei/article/details/44539217.        物理渲染和当今的主流光照计算最大的区别就是,当今的lambert blinn phone基本上是基于模拟的模型,就是尽可能的去模拟我们看上去的物体反射的颜色,甚至可以说是拍脑袋的模型,用于欺骗我们

Unity3d的批渲染 batch rendering

批渲染(Batch) batch render 是大部分引擎提高渲染效率的方法,基本原理就是通过将一些渲染状态一致的物体合成一个大物体,一次提交给gpu进行绘制,如果不batch的话,就要提交给很多次,这可以显著的节省drawcall,实际上这主要节省了cpu的时间,cpu从提交多次到提交一次,对gpu来说也不用多次切换渲染状态.当然能batch的前提一定是渲染状态一致的一组物体. Unity3d的批渲染分为两种,动态和静态 静态批 要求:必须使用同一张material,然后在编辑器里设置为st

【Aladdin Unity3D Shader编程】之三 光照模型(二)

高光反射模型 Specular=直射光*pow(cosθ,高光的参数) θ:是反射光和视野方向的夹角 编写高光反射Shader Shader "AladdinShader/07 Specular Vertex Shader" { Properties { _Diffuse("Diffuse",Color)=(1,1,1,1) //添加自身的颜色 } SubShader { Pass { Tags{"LightMode"="Forward

Unity3D shader简介

Unity3D shader简介 可以肯定的说Unity3D使得很多开发者开发游戏更容易.毫无疑问,shader(着色器)编码,仍有很长的路要走.shader是一个专门运行在GPU的程序,经常被神秘包围,它最终绘制3D模型的三角形.如果你想给游戏一个特殊的显示,学习如何编写shader是必要的.Unity3D使用shader做后期处理,对2D游戏也是必不可少的.这个系列的文章将逐步介绍shader编程,并面向几乎没有任何shader知识的开发者. 简介 下图大致表示了在Unity3D渲染流程中发

[Unity3D]面试题集锦

最先执行的方法是: 1.(激活时的初始化代码)Awake,2.Start.3.Update[FixUpdate.LateUpdate].4.(渲染模块)OnGUI.5.再向后,就是卸载模块(TearDown),这里主要有两个方法OnDisable与OnDestroy   高频问答的问题: 1.什么是渲染管道? 是指在显示器上为了显示出图像而经过的一系列必要操作. 渲染管道中的很多步骤,都要将几何物体从一个坐标系中变换到另一个坐标系中去. 主要步骤有: 本地坐标->视图坐标->背面裁剪->

猫都能学会的Unity3D Shader入门指南(一)

动机 自己使用Unity3D也有一段时间了,但是很多时候是流于表面,更多地是把这个引擎简单地用作脚本控制,而对更深入一些的层次几乎没有了解.虽然说Unity引擎设计的初衷就是创建简单的不需要开发者操心的谁都能用的3D引擎,但是只是肤浅的使用,可能是无法达到随心所欲的境地的,因此,这种状况必须改变!从哪里开始呢,貌似有句话叫做会写Shader的都是高手,于是,想大概看看从Shader开始能不能使自己到达的层次能再深入一些吧,再于是,有了这个系列(希望我能坚持写完它,虽然应该会拖个半年左右). Un

Unity3D资源分享

 都是网上找的连七八糟的资料了,整理好分享的,有学习资料,视频,源码,插件--等等 东西比较多,不是所有的都是你需要的,可以按  ctrl+F 来搜索你要的东西,如果有广告,不用理会,关掉就可以了,如果有密码 6789 链接地址永久有效,慢慢下载啊. 这个是最全的.  ****************************************  *  文件名称:CG_Unity3D_游戏实战教程  *  下载地址1:http://www.t00y.com/file/61325782  * 

Thinking in Unity3D:渲染管线中的Rendering Path

笔者在研究和使用Unity3D的过程中,获得了一些Unity3D方面的信息,同时也感叹Unity3D设计之精妙.不得不说,笔者最近几年的引擎研发工作中,早已习惯性的从Unity3D中寻找解决方案. Unity3D虽比不上UE那么老练沉稳,气势磅礴.也比不上CE那样炫丽多姿,盛气凌人.但它的发展势如破竹,早已遍地生花!故而在此记录一些自己的心得体会,供大家参详交流.若有欠妥之处,还望各位及时指正.   Thinking in Unity3D由一系列文章组成,文章列表地址:http://www.cn