unity3d 构建灯光_unity3d构建3d曲线mesh - CSDN
精华内容
参与话题
  • 曾经看到过跟这边文章比较相关的两篇文章“在Unity3D中创建Cubemaps”和“Unity3D中简单的Cubemap反射”,其中第一篇文章主要讲的是通过编写一个脚本来实现unity中创建任意的Cubemap,这种方式可以不用借助HDR贴图来...



    本系列主要参考Unity灯光与渲染技术教程Unity Lighting And Rendering,同时会加上一点个人实践过程和理解。


    ========================================== 分割线 ==========================================


    曾经看到过跟这边文章比较相关的两篇文章“在Unity3D中创建Cubemaps”和“Unity3D中简单的Cubemap反射”,其中第一篇文章主要讲的是通过编写一个脚本来实现unity中创建任意的Cubemap,这种方式可以不用借助HDR贴图来创建Cubemaps,同时可以自己得到任何想要实现的Cubemaps效果。而第二篇文章介绍如何在物体上应用Cubemaps的反射效果。

    这篇文章主要讲解如何使用Cubemaps实现一个自定义的天空盒子,结合这篇文章和前两篇文章,可以容易地替换Unity中的天空背景,以及环境对物体的作用。


    步骤如下:

    1.导入HDR贴图,将Texture Type设置为Cubemap,点击Apply


     

    2.创建材质Material将shader类型设置为skybox-cubemap,这里的shader还可通过“Unity3D中简单的Cubemap反射”这篇文章中shader进行自行编写。实现自定义效果。


     

    3.打开光照面板替换skybox材质,路径为:window-lighting-environment-skybox

     

    4.下图便可以得到替换过后的天空盒子效果。

     

     

     

     实践总结

    在实践过程中遇到了一些小BUG,首先如果安装的是个人免费版本的话,unity预设的skybox-cubed shader是不允许自己调节的,不过你也可以自己编写,以下是专业版的skybox-Cubed shader的内容。

    <span style="font-family:Microsoft YaHei;font-size:14px;">Shader "Skybox/Cubemap" {
    Properties {
    	_Tint ("Tint Color", Color) = (.5, .5, .5, .5)
    	[Gamma] _Exposure ("Exposure", Range(0, 8)) = 1.0
    	_Rotation ("Rotation", Range(0, 360)) = 0
    	[NoScaleOffset] _Tex ("Cubemap   (HDR)", Cube) = "grey" {}
    }
    
    SubShader {
    	Tags { "Queue"="Background" "RenderType"="Background" "PreviewType"="Skybox" }
    	Cull Off ZWrite Off
    
    	Pass {
    		
    		CGPROGRAM
    		#pragma vertex vert
    		#pragma fragment frag
    
    		#include "UnityCG.cginc"
    
    		samplerCUBE _Tex;
    		half4 _Tex_HDR;
    		half4 _Tint;
    		half _Exposure;
    		float _Rotation;
    
    		float4 RotateAroundYInDegrees (float4 vertex, float degrees)
    		{
    			float alpha = degrees * UNITY_PI / 180.0;
    			float sina, cosa;
    			sincos(alpha, sina, cosa);
    			float2x2 m = float2x2(cosa, -sina, sina, cosa);
    			return float4(mul(m, vertex.xz), vertex.yw).xzyw;
    		}
    		
    		struct appdata_t {
    			float4 vertex : POSITION;
    		};
    
    		struct v2f {
    			float4 vertex : SV_POSITION;
    			float3 texcoord : TEXCOORD0;
    		};
    
    		v2f vert (appdata_t v)
    		{
    			v2f o;
    			o.vertex = mul(UNITY_MATRIX_MVP, RotateAroundYInDegrees(v.vertex, _Rotation));
    			o.texcoord = v.vertex.xyz;
    			return o;
    		}
    
    		fixed4 frag (v2f i) : SV_Target
    		{
    			half4 tex = texCUBE (_Tex, i.texcoord);
    			half3 c = DecodeHDR (tex, _Tex_HDR);
    			c = c * _Tint.rgb * unity_ColorSpaceDouble.rgb;
    			c *= _Exposure;
    			return half4(c, 1);
    		}
    		ENDCG 
    	}
    } 	
    
    
    Fallback Off
    
    }
    </span>


    代码理解:

    初学对很多地方理解不深入,还请多多指教。


    1.在Properties块中创建的properties有四项,对应着材质控制的四个通道效果。其中_Tint指Tint Color,_Exposure控制曝光度,_Rotation旋转方向,_Tex添加Cubemap。

    <span style="font-family:Microsoft YaHei;font-size:14px;">Properties {
    	_Tint ("Tint Color", Color) = (.5, .5, .5, .5)
    	[Gamma] _Exposure ("Exposure", Range(0, 8)) = 1.0
    	_Rotation ("Rotation", Range(0, 360)) = 0
    	[NoScaleOffset] _Tex ("Cubemap   (HDR)", Cube) = "grey" {}
    }</span>




    2.

    在SubShader块中创建和properties中各变量的联系。这将允许从Properties块中访问这些数据。其中定义RotateAroundYInDegrees这个函数目的是返回vertex和degree的值,来进行运算操作。sincos(alpha, sina, cosa);函数我查了一下可以同时计算出sina和cosa的值,同时运算效率很高。

    <span style="font-family:Microsoft YaHei;font-size:14px;">CGPROGRAM
    		#pragma vertex vert
    		#pragma fragment frag
    
    		#include "UnityCG.cginc"
    
    		samplerCUBE _Tex;
    		half4 _Tex_HDR;
    		half4 _Tint;
    		half _Exposure;
    		float _Rotation;
    
    		float4 RotateAroundYInDegrees (float4 vertex, float degrees)
    		{
    			float alpha = degrees * UNITY_PI / 180.0;
    			float sina, cosa;
    			sincos(alpha, sina, cosa);
    			float2x2 m = float2x2(cosa, -sina, sina, cosa);
    			return float4(mul(m, vertex.xz), vertex.yw).xzyw;
    		}</span>
    3.这段结构体定义了点的位置,为了进行运算操作。

    <span style="font-family:Microsoft YaHei;font-size:14px;">	struct appdata_t {
    			float4 vertex : POSITION;
    		};
    
    		struct v2f {
    			float4 vertex : SV_POSITION;
    			float3 texcoord : TEXCOORD0;
    		};
    
    		v2f vert (appdata_t v)
    		{
    			v2f o;
    			o.vertex = mul(UNITY_MATRIX_MVP, RotateAroundYInDegrees(v.vertex, _Rotation));
    			o.texcoord = v.vertex.xyz;
    			return o;
    		}</span>

    似乎是做旋转的运算占了大部分篇幅,等有更多的理解再来补充。









     


    展开全文
  • Unity3D灯光详解

    千次阅读 2014-09-01 16:57:09
    Lights will bring personality and flavor to your game. You use lights to illuminate the scenes and objects to create the perfect visual mood. Lights can be used to simulate the sun, burning match ligh

    Lights will bring personality and flavor to your game. You use lights to illuminate the scenes and objects to create the perfect visual mood. Lights can be used to simulate the sun, burning match light, flashlights, gun-fire, or explosions, just to name a few.

    灯光将给你游戏带来个性和味道。你用灯光来照亮场景和对象 以至创造了完美视觉的气氛。灯光可以用来模拟太阳,燃烧的火柴,手电筒,枪火光,或爆炸,等等等等,在此就不一一列举。

    Light 灯光
    The Light Inspector 灯光检视面板

    There are three types of lights in Unity 在Unity中有三种类型的灯:

    • Point lights shine from a location equally in all directions, like a light bulb. 
      点光源从一个位置向四面八方发出光线,就像一盏灯。
    • Directional lights are placed infinitely far away and affect everything in the scene, like the sun. 
      方向光源(平行光) 被放置在无穷远的地方,影响场景的所有物体,就像太阳
    • Spot lights shine from a point in a direction and only illuminate objects within a cone - like the headlights of a car. 
      聚光灯 灯光从一点发出,只在一个方向按照一个锥形物体的范围照射,就像一辆汽车的车头灯。

    Lights can also cast Shadows. Shadows are a Pro-only feature. Shadow properties can be adjusted on a per-light basis.

    灯光也可以投射阴影。阴影是专业版的功能。阴影属性可以在每一个灯光的基础上进行调整。

    Properties 属性

    • Type 类型
      The current type of light object: 灯光对象的当前类型
    •     Directional 方向光
      A light placed infinitely far away. It affects everything in the scene.
      灯光放在无穷远处。它影响着在场景里所有物体。
    •     Point 点光
      A light that shines equally in all directions from its location, affecting all objects within its Range.
      灯光从它的位置各个方向发出光线,影响其范围内的所有对象。
    •     Spot 聚光
      A light that shines everywhere within a cone defined by Spot Angle and Range. Only objects within this region are affected by the light.
      光线在 按照聚光灯的角度和范围所定义的一个圆锥区域 照射所有物体。只有在这个区域内的对象才会受到光线照射。
    • Range 范围
      How far light is emitted from the center of the object. Point/Spot light only.
      光从物体的中心发射能到达多远?。只对点光源和聚光灯
    • Spot Angle 聚光灯角度
      Determines the angle of the cone in degrees. Spot light only.
      灯光的聚光角度。只用于聚光灯
    • Color 颜色
      The color of the light emitted. 光线的颜色.
    • Intensity 强度
      Brightness of the light. Default value for a Point/Spot light is 1. Default value for a Directional light is 0.5
      光线的明亮程度,点光源/聚光灯 默认值是1。方向光源 默认值是0.5
    • Cookie
      The alpha channel of this texture is used as a mask that determines how bright the light is at different places. If the light is a Spot or a Directional light, this must be a 2D texture. If the light is a Point light, it must be a Cubemap.
      这个纹理的阿尔法(alpha)通道作为一个遮罩,使光线在不同的地方有不同的亮度。如果灯光是聚光灯或方向光,这必须是一个2D纹理。如果灯光是一个点光源,它必须是一个立方图(Cubemap)。
    • Cookie Size
      Scales the projection of a Cookie. Directional light only.
      缩放Cookie投影。只用于方向光。
    • Shadow Type 阴影类型
      (Pro only)
      No, Hard or Soft shadows that will be cast by this light. Only applicable to desktop build targets. Soft shadows are more expensive.
      硬或软的阴影,将是由灯光所投射的。只适用于编译桌面目标程序(PC)。软阴影更为昂贵。(耗资源)
    •     Strength 硬度
      The darkness of the shadows. Values are between 0 and 1. 阴影的黑暗程度。取值范围是在0和1之间。
    •     Resolution 分辨率
      Detail level of the shadows. 阴影的细节水平。
    •     Bias 偏移
      Offset used when comparing the pixel position in light space with the value from the shadow map. When the value is too small the surfaces start to self-shadow themselves ("shadow acne"), when too big - casters are disconnected from receivers ("peter panning").
      用于比较灯光空间的像素位置与阴影贴图的值比较的偏移量。当值太小,表面会产生self-shadow("影子痤疮"),-----就是物体的表面会有来自于自身的阴影,物体就像长了痘痘一样。当值太大,光源就会脱离了接收器("彼得平移")。
    •     Softness 柔化
      Scales the penumbra region (the offset of blur samples). Directional light only.
      缩放半阴影区(模糊样本的偏移量)。只用于方向光
    •     Softness Fade 柔化淡出
      Shadow softness fade based on the distance from the camera. Directional light only.
      阴影柔化是根据到相机距离进行淡出的。只用于方向光。
    • Draw Halo 绘制光晕
      If checked, a spherical halo of light will be drawn with a radius equal to Range.
      如果勾选此项, 光线带有一定半径范围的球形光晕被绘制。
    • Flare 耀斑
      Optional reference to the Flare that will be rendered at the light's position.
      可选的。参考耀斑(Flare) , 在光的位置渲染出来。
    • Render Mode 渲染模式
      Importance of this light. This can affect lighting fidelity and performance, see Performance Considerations below. Options include:
      这灯光的重要性。这可能会影响照明的保真度和性能,请参阅下面的性能注意事项。包括:
    •     Auto 自动
      The rendering method is determined at runtime depending on the brightness of nearby lights and current Quality Settings for desktop build target.
      为桌面构建目标渲染的方法是根据附近的灯光的亮度和当前的质量设置( Quality Settings)在运行时确定。
    •     Important 重要
      This light is always rendered at per-pixel quality. Use this for very important effects only (e.g. headlights of a player's car).
      灯光是逐个像素渲染。只用在一些非常重要的效果(比如玩家的车的车头灯)。
    •     Not Important 不重要
      This light is always rendered in a faster, vertex/object light mode.
      灯光总是以最快的速度渲染。顶点/对象光模式
    • Culling Mask 消隐遮罩
      Use to selectively exclude groups of objects from being affected by the light; see Layers.
      有选择地使组对象不受光的效果影响;请看层(Layers.)。
    • Lightmapping 光照贴图
      The Lightmapping mode: RealtimeOnly, Auto or BakedOnly; see the Dual Lightmaps description.
      光照贴图的模式:仅灯光实时计算(RealtimeOnly), 自动(Auto) or 仅烘焙( BakedOnly) 请看双光照贴图(Dual Lightmaps )

    Details 细节

    There are three basic light types in Unity. Each type can be customized to fit your needs.

    在Unity中光有三种基本类型。各类型可以定制,以满足您的需要。

    You can create a texture that contains an alpha channel and assign it to the Cookie variable of the light. The Cookie will be projected from the light. The Cookie's alpha mask modulates the light amount, creating light and dark spots on surfaces. They are a great way af adding lots of complexity or atmosphere to a scene.

    你可以创建一个包含alpha通道的纹理,并将其赋予光线的Cookie变量。Cookie会被光线投影。cookie的Alpha遮罩调节光量,可以在表面产生亮点和黑点。他们是往场景加入大量复杂的东西或气氛的一种很好的方法。

    All built-in shaders in Unity seamlessly work with any type of light. VertexLit shaders cannot display Cookies or Shadows, however.

    Unity里所有的内置的着色器(built-in shaders)全都可用于任何类型的灯光。然而,VertexLit 着色器不能显示Cookies或者阴影。

    In Unity Pro with a build target of webplayer or standalone, all Lights can optionally cast Shadows. This is done by selecting either Hard Shadows or Soft Shadows for the Shadow Type property of each individual Light. For more information about shadows, please read the Shadows page.

    在Unity专业版,编译目标为网页版或单机版,所有的灯光可以选择性地投射阴影(Shadows)。这是通过选择每个灯光阴影类型( Shadow Type)属性为"硬阴影或软阴影来完成的。更多关于阴影的信息,请阅读阴影(Shadows )页。

    Point Lights 点光源

    Point Lights 点光源

    Point lights shine out from a point in all directions. They are the most common lights in computer games - typically used for explosions, light bulbs, etc. They have an average cost on the graphics processor (though point light shadows are the most expensive).

    点光源光线在某一点从各个方向发射。它们是电脑游戏中最常用的灯光——通常用于爆炸、灯泡、等。他们有一个图形处理器的平均成本(虽然点光源阴影是最昂贵的---最耗费资源的)。

    Point Lights 点光源
    Point Light 点光源

    Point lights can have cookies - Cubemap texture with alpha channel. This Cubemap gets projected out in all directions.

    点光源可以有cookies – 带有 alpha通道的立方图(Cubemap )纹理。立方图 (Cubemap)可在各个方向得出投影。

    Point Light with a Cookie 带有Cookie的点光源
    Point Light with a Cookie 带有Cookie的点光源

    Spot Lights 聚光灯

    Spot Lights 聚光灯

    Spot lights only shine in one direction, in a cone. They are perfect for flashlights, car headlights or lamp posts. They are the most expensive on the graphics processor.

    聚光灯只在一个方向上,在一个圆锥体范围发射光线。它们用作手电筒真是完美,汽车的车头灯或者灯柱。它们在图形处理器上是最耗费资源的。

    Spot Lights 聚光灯
    Spot Light 聚光灯

    Spot lights can also have cookies - a texture projected down the cone of the light. This is good for creating an effect of light shining through the window. It is very important that the texture is black at the edges, has Border Mipmaps option on and its wrapping mode is set to Clamp. For more info on this, see Textures.

    聚光灯同样也可以带有cookies - 这可以很好地创建光芒透过窗户的效果。纹理的边缘是黑色的,打开边框多层纹理(Border Mipmaps )选项和它的循环模式(wrapping mode)设置为强制拉伸(Clamp),这是非常重要的。想要得到更多关于这方面的信息,参见纹理(Textures.)

    Spot Light with a Cookie 带有Cookie的聚光灯
    Spot Light with a Cookie 带有Cookie的聚光灯

    Directional Lights 方向光源

    Directional Lights 方向光源

    Directional lights are used mainly in outdoor scenes for sun & moonlight. The light affect all surfaces of objects in your scene. They are the least expensive on the graphics processor. Shadows from directional lights (for platforms that support shadows) are explained in depth on this page.

    方向光主要用于模拟在室外场景的阳光与月光。方向光影响你的场景中的对象的所有表面。 他们在图形处理器中是最不耗费资源的。方向光产生的阴影(因为平台支持阴影)标识着在此页(this page)上的深度。

    Directional Lights 方向光源
    Directional Light 方向光源

    When directional light has a cookie, it is projected down the center of the light's Z axis. The size of the cookie is controlled with Cookie Size property. Set the cookie texture's wrapping mode to Repeat in the Inspector.

    当平行光有一个cookie,它是预测光的Z轴的中心。cookie大小由cookie的大小(Cookie Size)属性控制。在检视面板设置cookie贴图的循环模式(wrapping mode)为重复(Repeat)

    方向光投影一个云状的cookie纹理
    Directional Light projecting a cloud-like cookie texture
    方向光投影一个云状的cookie纹理

    A cookie is a great way to add some quick detail to large outdoor scenes. You can even slide the light slowly over the scene to give the impression of moving clouds.

    Cookie是在大型户外场景中快速添加细节的好方法。你甚至可以将的灯光在场景中慢慢移动,给人的感觉就像云在动。

    Performance considerations 性能考虑

    Lights can be rendered in one of two methods: vertex lighting and pixel lighting. Vertex lighting only calculates the lighting at the vertices of the game models and interpolates the lighting over the surfaces of the models. Pixel lights are calculated at every screen pixel, and hence are much more expensive. Some older graphics cards only support vertex lighting.

    灯光有两种渲染方式:顶点(vertex )光照和像素(pixel )光照。顶点光照只计算游戏模型的顶点照明和通过插值计算得出模型表面所有光线。灯光在屏幕每一个像素计算,因此很奢侈(耗费资源)。一些旧的显卡只支持顶点光照。

    While pixel lighting is slower to render, it does allow some effects that are not possible with vertex lighting. Normal-mapping, light cookies and realtime shadows are only rendered for pixel lights. Spotlight shapes and Point light highlights are much better when rendered in pixel mode as well. The three light types above would look like this when rendered in vertex light mode:

    像素光照渲染得慢,但它能够实现一些顶点光照不能实现的效果。正规映射(Normal-mapping),灯光cookies(light cookies) 和实时阴影(realtime shadows)只能由像素光照渲染。在像素光照模式下,聚光灯的形状和点光源亮点效果更好。当在顶点光照模式下渲染,以上三种光照类型的效果就像这样:

    Performance considerations 性能考虑
    Point light in Vertex lighting mode. 在顶点光照模式下的点光源

    Performance considerations 性能考虑
    Spot light in Vertex lighting mode. 在顶点光照模式下的聚光灯

    Performance considerations 性能考虑
    Directional light in Vertex lighting mode. 在顶点光照模式下的方向光

    Lights have a big impact on rendering speed - therefore a tradeoff has to be made betwen lighting quality and game speed. Since pixel lights are much more expensive than vertex lights, Unity will only render the brightest lights at per-pixel quality. The actual number of pixel lights can be set in the Quality Settings for webplayer and standalone build targets.

    灯光有对渲染速度有非常大的影响——因此必须权衡前后照明质量和游戏速度。由于像素光照比顶点光照奢侈得多(更耗费资源),Unity将只在最亮的光逐个像素渲染。网页版(webplayer)和单机版(standalone)编译目标中,像素灯的实际数量可以质量设置( Quality Settings )进行设置。

    You can explicitly control if a light should be rendered as a vertex or pixel light using the Render Mode property. By default Unity will classify the light automatically based on how much the object is affected by the light.

    光线以顶点光照或像素光照模式渲染。你可以通过渲染模式属性(Render Mode property)显式控制。默认情况下,Unity根据对象受到光影响的多少自动对光进行归类。

    The actual lights that are rendered as pixel lights are determined on an object-by-object case. This means:

    实际灯光被渲染在object-by-object的情况下确定作为像素光渲染。这句话的意思是:

    • Huge objects with bright lights could use all the pixel lights (depending on the quality settings). If the player is far from these, nearby lights will be rendered as vertex lights. Therefore, it is better to split huge objects up in a couple of small ones. 
      带有明亮灯光的巨大物体,可以全用像素光照(根据质量设置)。如果玩家非常远,附近的灯光可以用顶点光照模式渲染。因此,巨大的物体应分割成几个小的物体这样更好。

    See Optimizing Graphics performance on DesktopiOS or Android page for more information.

    在 台式机(Desktop),iOS 或Android 页面参见优化图形性能(Optimizing Graphics performance),获取更多信息。

    Creating Cookies

    For more information on creating cookies, please see the tutorial on how to create a Spot light cookie.

    创建的Cookie的更多信息,请参阅关于如何创建一个射灯cookie的教程( tutorial on how to create a Spot light cookie)

    Hints 提示

    • Spot lights with cookies can be extremely effective for making light coming in from windows. 
      带cookies的聚光灯可以很有效的制作出光线从窗户射进来的效果。
    • Low-intensity point lights are good for providing depth to a scene. 
      低强度点光源带来场景深度。
    • For maximum performance, use a VertexLit shader. This shader only does per-vertex lighting, giving a much higher throughput on low-end cards. 
      为了获得最佳性能,使用VertexLit 着色。这个着色器(shader)只进行顶点光照,在低端卡提供高得多的吞吐量。
    • 源地址:http://game.ceeger.com/Components/class-Light.html
    展开全文
  • Unity3D灯光学习

    千次阅读 2019-09-29 09:51:22
    Inspector 灯光检视面板Unity有三种灯光Point点光源。从一个位置向四面八方发出光线,就像一盏灯。Directional 方向光源(平行光)。 被放置在无穷远的地方,影响场景的所有物体,就像太阳Spot 聚光灯 。灯光从一点...

    Inspector 灯光检视面板

    ![这里写图片描述](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcxMDIwMTcyMTIzNDIw?x-oss-process=image/format,png)

    Unity有三种灯光

    Point

    点光源。从一个位置向四面八方发出光线,就像一盏灯。

    Directional

    方向光源(平行光)。 被放置在无穷远的地方,影响场景的所有物体,就像太阳

    Spot

    聚光灯 。灯光从一点发出,只在一个方向按照一个锥形物体的范围照射,就像一辆汽车的车头灯。

    灯光也可以投射阴影。阴影是专业版的功能。阴影属性可以在每一个灯光的基础上进行调整。

    Properties 属性

    Type 类型

    灯光对象的当前类型

    Directional 方向光

    灯光放在无穷远处。它影响着在场景里所有物体。

    Point 点光

    灯光从它的位置各个方向发出光线,影响其范围内的所有对象。

    Spot 聚光

    光线在 按照聚光灯的角度和范围所定义的一个圆锥区域 照射所有物体。只有在这个区域内的对象才会受到光线照射。

    Range 范围

    光从物体的中心发射能到达多远?。只对点光源和聚光灯

    Spot Angle 聚光灯角度

    灯光的聚光角度。只用于聚光灯

    Color 颜色

    光线的颜色.

    Intensity 强度

    线的明亮程度,点光源/聚光灯 默认值是1。方向光源 默认值是0.5

    Cookie

    这个纹理的阿尔法(alpha)通道作为一个遮罩,使光线在不同的地方有不同的亮度。如果灯光是聚光灯或方向光,这必须是一个2D纹理。如果灯光是一个点光源,它必须是一个立方图(Cubemap)。

    Cookie Size

    缩放Cookie投影。只用于方向光。

    Shadow Type 阴影类型(Pro only)

    硬或软的阴影,将是由灯光所投射的。只适用于编译桌面目标程序(PC)。软阴影更为昂贵。(耗资源)

    Strength 硬度

    阴影的黑暗程度。取值范围是在0和1之间。

    Resolution 分辨率

    阴影的细节水平。

    Bias 偏移

    用于比较灯光空间的像素位置与阴影贴图的值比较的偏移量。当值太小,表面会产生self-shadow("影子痤疮"),-----就是物体的表面会有来自于自身的阴影,物体就像长了痘痘一样。当值太大,光源就会脱离了接收器("彼得平移")。

    Softness 柔化

    缩放半阴影区(模糊样本的偏移量)。只用于方向光

    Softness Fade 柔化淡出

    阴影柔化是根据到相机距离进行淡出的。只用于方向光。

    Draw Halo 绘制光晕

    如果勾选此项, 光线带有一定半径范围的球形光晕被绘制。

    Flare 耀斑

    可选的。参考耀斑(Flare) , 在光的位置渲染出来。

    Render Mode 渲染模式

    这灯光的重要性。这可能会影响照明的保真度和性能,请参阅下面的性能注意事项。包括:

    Auto 自动

    为桌面构建目标渲染的方法是根据附近的灯光的亮度和当前的质量设置( Quality Settings)在运行时确定。

    Important 重要

    灯光是逐个像素渲染。只用在一些非常重要的效果(比如玩家的车的车头灯)。

    Not Important 不重要

    灯光总是以最快的速度渲染。顶点/对象光模式

    Culling Mask 消隐遮罩

    有选择地使组对象不受光的效果影响;请看层(Layers.)。

    Lightmapping 光照贴图

    光照贴图的模式:仅灯光实时计算(RealtimeOnly), 自动(Auto) or 仅烘焙( BakedOnly) 请看双光照贴图(Dual Lightmaps )

    Details 细节

    There are three basic light types in Unity. Each type can be customized to fit your needs.

    在Unity中光有三种基本类型。各类型可以定制,以满足您的需要。

    You can create a texture that contains an alpha channel and assign it to the Cookie variable of the light. The Cookie will be projected from the light. The Cookie’s alpha mask modulates the light amount, creating light and dark spots on surfaces. They are a great way af adding lots of complexity or atmosphere to a scene.

    你可以创建一个包含alpha通道的纹理,并将其赋予光线的Cookie变量。Cookie会被光线投影。cookie的Alpha遮罩调节光量,可以在表面产生亮点和黑点。他们是往场景加入大量复杂的东西或气氛的一种很好的方法。

    All built-in shaders in Unity seamlessly work with any type of light. VertexLit shaders cannot display Cookies or Shadows, however.

    Unity里所有的内置的着色器(built-in shaders)全都可用于任何类型的灯光。然而,VertexLit 着色器不能显示Cookies或者阴影。

    In Unity Pro with a build target of webplayer or standalone, all Lights can optionally cast Shadows. This is done by selecting either Hard Shadows or Soft Shadows for the Shadow Type property of each individual Light. For more information about shadows, please read the Shadows page.

    在Unity专业版,编译目标为网页版或单机版,所有的灯光可以选择性地投射阴影(Shadows)。这是通过选择每个灯光阴影类型( Shadow Type)属性为"硬阴影或软阴影来完成的。更多关于阴影的信息,请阅读阴影(Shadows )页。

    Point Lights 点光源

    Point lights shine out from a point in all directions. They are the most common lights in computer games - typically used for explosions, light bulbs, etc. They have an average cost on the graphics processor (though point light shadows are the most expensive).

    点光源光线在某一点从各个方向发射。它们是电脑游戏中最常用的灯光——通常用于爆炸、灯泡、等。他们有一个图形处理器的平均成本(虽然点光源阴影是最昂贵的—最耗费资源的)。

    Point Lights 点光源
    这里写图片描述

    Point lights can have cookies - Cubemap texture with alpha channel. This Cubemap gets projected out in all directions.

    点光源可以有cookies – 带有 alpha通道的立方图(Cubemap )纹理。立方图 (Cubemap)可在各个方向得出投影。

    这里写图片描述
    Point Light with a Cookie 带有Cookie的点光源
    这里写图片描述

    Spot Lights 聚光灯

    这里写图片描述

    Spot lights only shine in one direction, in a cone. They are perfect for flashlights, car headlights or lamp posts. They are the most expensive on the graphics processor.

    聚光灯只在一个方向上,在一个圆锥体范围发射光线。它们用作手电筒真是完美,汽车的车头灯或者灯柱。它们在图形处理器上是最耗费资源的。

    Spot Lights 聚光灯
    这里写图片描述

    Spot lights can also have cookies - a texture projected down the cone of the light. This is good for creating an effect of light shining through the window. It is very important that the texture is black at the edges, has Border Mipmaps option on and its wrapping mode is set to Clamp. For more info on this, see Textures.

    聚光灯同样也可以带有cookies - 这可以很好地创建光芒透过窗户的效果。纹理的边缘是黑色的,打开边框多层纹理(Border Mipmaps )选项和它的循环模式(wrapping mode)设置为强制拉伸(Clamp),这是非常重要的。想要得到更多关于这方面的信息,参见纹理(Textures.)

    Spot Light with a Cookie 带有Cookie的聚光灯
    这里写图片描述

    Directional Lights 方向光源
    这里写图片描述

    Directional lights are used mainly in outdoor scenes for sun & moonlight. The light affect all surfaces of objects in your scene. They are the least expensive on the graphics processor. Shadows from directional lights (for platforms that support shadows) are explained in depth on this page.

    方向光主要用于模拟在室外场景的阳光与月光。方向光影响你的场景中的对象的所有表面。 他们在图形处理器中是最不耗费资源的。方向光产生的阴影(因为平台支持阴影)标识着在此页(this page)上的深度。

    这里写图片描述
    Directional Light 方向光源

    When directional light has a cookie, it is projected down the center of the light’s Z axis. The size of the cookie is controlled with Cookie Size property. Set the cookie texture’s wrapping mode to Repeat in the Inspector.

    当平行光有一个cookie,它是预测光的Z轴的中心。cookie大小由cookie的大小(Cookie Size)属性控制。在检视面板设置cookie贴图的循环模式(wrapping mode)为重复(Repeat)

    这里写图片描述
    Directional Light projecting a cloud-like cookie texture
    方向光投影一个云状的cookie纹理

    A cookie is a great way to add some quick detail to large outdoor scenes. You can even slide the light slowly over the scene to give the impression of moving clouds.

    Cookie是在大型户外场景中快速添加细节的好方法。你甚至可以将的灯光在场景中慢慢移动,给人的感觉就像云在动。

    Performance considerations 性能考虑

    Lights can be rendered in one of two methods: vertex lighting and pixel lighting. Vertex lighting only calculates the lighting at the vertices of the game models and interpolates the lighting over the surfaces of the models. Pixel lights are calculated at every screen pixel, and hence are much more expensive. Some older graphics cards only support vertex lighting.

    灯光有两种渲染方式:顶点(vertex )光照和像素(pixel )光照。顶点光照只计算游戏模型的顶点照明和通过插值计算得出模型表面所有光线。灯光在屏幕每一个像素计算,因此很奢侈(耗费资源)。一些旧的显卡只支持顶点光照。

    While pixel lighting is slower to render, it does allow some effects that are not possible with vertex lighting. Normal-mapping, light cookies and realtime shadows are only rendered for pixel lights. Spotlight shapes and Point light highlights are much better when rendered in pixel mode as well. The three light types above would look like this when rendered in vertex light mode:

    像素光照渲染得慢,但它能够实现一些顶点光照不能实现的效果。正规映射(Normal-mapping),灯光cookies(light cookies) 和实时阴影(realtime shadows)只能由像素光照渲染。在像素光照模式下,聚光灯的形状和点光源亮点效果更好。当在顶点光照模式下渲染,以上三种光照类型的效果就像这样:
    这里写图片描述

    Point light in Vertex lighting mode. 在顶点光照模式下的点光源

    这里写图片描述
    Spot light in Vertex lighting mode. 在顶点光照模式下的聚光灯
    这里写图片描述
    Directional light in Vertex lighting mode. 在顶点光照模式下的方向光

    Lights have a big impact on rendering speed - therefore a tradeoff has to be made betwen lighting quality and game speed. Since pixel lights are much more expensive than vertex lights, Unity will only render the brightest lights at per-pixel quality. The actual number of pixel lights can be set in the Quality Settings for webplayer and standalone build targets.

    灯光有对渲染速度有非常大的影响——因此必须权衡前后照明质量和游戏速度。由于像素光照比顶点光照奢侈得多(更耗费资源),Unity将只在最亮的光逐个像素渲染。网页版(webplayer)和单机版(standalone)编译目标中,像素灯的实际数量可以质量设置( Quality Settings )进行设置。

    You can explicitly control if a light should be rendered as a vertex or pixel light using the Render Mode property. By default Unity will classify the light automatically based on how much the object is affected by the light.

    光线以顶点光照或像素光照模式渲染。你可以通过渲染模式属性(Render Mode property)显式控制。默认情况下,Unity根据对象受到光影响的多少自动对光进行归类。

    The actual lights that are rendered as pixel lights are determined on an object-by-object case. This means:

    实际灯光被渲染在object-by-object的情况下确定作为像素光渲染。这句话的意思是:

    Huge objects with bright lights could use all the pixel lights (depending on the quality settings). If the player is far from these, nearby lights will be rendered as vertex lights. Therefore, it is better to split huge objects up in a couple of small ones.
    带有明亮灯光的巨大物体,可以全用像素光照(根据质量设置)。如果玩家非常远,附近的灯光可以用顶点光照模式渲染。因此,巨大的物体应分割成几个小的物体这样更好。
    See Optimizing Graphics performance on Desktop, iOS or Android page for more information.

    在 台式机(Desktop),iOS 或Android 页面参见优化图形性能(Optimizing Graphics performance),获取更多信息。

    Creating Cookies

    For more information on creating cookies, please see the tutorial on how to create a Spot light cookie.

    创建的Cookie的更多信息,请参阅关于如何创建一个射灯cookie的教程( tutorial on how to create a Spot light cookie)

    Hints 提示

    Spot lights with cookies can be extremely effective for making light coming in from windows.
    带cookies的聚光灯可以很有效的制作出光线从窗户射进来的效果。
    Low-intensity point lights are good for providing depth to a scene.
    低强度点光源带来场景深度。
    For maximum performance, use a VertexLit shader. This shader only does per-vertex lighting, giving a much higher throughput on low-end cards.
    为了获得最佳性能,使用VertexLit 着色。这个着色器(shader)只进行顶点光照,在低端卡提供高得多的吞吐量。

    展开全文
  • Unity3D基本入门及功能介绍

    千次阅读 2019-02-25 16:45:41
    Unity3D 最经典 2 by 3 结构界面,上面呈现了 Unity3D 最为常用的几个面板,下面为各个面板的详细说明。 1.Scene【场景面板】:该面板为 Unity3D 的编辑面板;你可以将你所有的模型、灯光、以及其他材质对象拖放到...

    第一,界面入门

    Unity3D 最经典 2 by 3 结构界面,上面呈现了 Unity3D 最为常用的几个面板,下面为各个面板的详细说明。

    1.Scene【场景面板】:该面板为 Unity3D 的编辑面板;你可以将你所有的模型、灯光、以及其他材质对象拖放到该场景中。构建游戏中所能呈现景象。

    2.Game【游戏面板】:与场景面板不同,该面板是用来渲染场景面板中景象的。该面板不能用作编辑,但却可以呈现完整的动画效果。

    3.Hierarchy【层次清单栏】:该面板栏主要功能是显示放在场景面板中所有的物体对象。

    4.Project【项目文件栏】:该面板栏主要功能是显示该项目文件中的所有资源列表。除了模型、材质、字体等,还包括该项目的各个场景文件。

    5.Inspector【监视面板】:该面板栏会呈现出任何对象的所固有的属性,包括三维坐

    标、旋转量、缩放大小、脚本的变量和对象等等。

    6.【场景调整工具】:可改变你在编辑过程中的场景视角、物体世界坐标和本地坐标的更换、物体法线中心的位子,以及物体在场景中的坐标位置,缩放大小等等。

    7.【播放、暂停、逐帧按钮】:用于运行游戏,暂停游戏和逐帧调试程序。

    8.【层级显示按钮】:勾选或取消该下拉框中对应层的名字,就能决定该层中所有物体是否在场景面板中被显示。

    9.【版面布局按钮】:调整该下拉框中的选项,即可改变编辑面板的布局。

    10.【菜单栏】:和其他软件一样,包含了软件几乎所有要用到的工具下拉菜单。除了 Unity3D 初始化的这些面板而外,你还可以通过“Add Tab”按钮和菜单栏中的“Window”下拉菜单中,增添其他面板和删减现有面板。特别是“Window”下拉菜单中的“Lightmapping”和“Occllusion Culling”面板对游戏的后期优化尤为管用。除此而外还有用于制作动画文件的 Animation【动画面板】,用于观测性能指数的 profiler【分析器面板】,【资源服务器】,用于观测和调试错误的 Console【控制台面板】。

    在【菜单栏】中包含有八个菜单选项:分别是 File【文件】、Edit【编辑】、Assets【资源】、GameObject【游戏对象】、Component【组件】、Terrain【地形】、Window【窗口】、He

    lp【帮助】。这些是 Unity3D 中最标准的菜单选项卡,其各自又有自己的子菜单。

    第二,子菜单

    File【文件】

    New Scene【新建场景】

    Open Scene【打开场景】

    Save Scene 【保存场景】

    Save Scene as【场景另存为】

    New Project【新建工程文件】

    Open Project【打开工程文件】

    Save Project 【保存工程文件】

    Build Settings【创建设置】(这里可以设置你的游戏将要以何种方式发布,发布的场景文件又包含那些)

    Build & Run 【创建并运行】(这里以“Build Settings”里设置好的方式,发布并运行游戏)

    Exit 【退出】

    第三,Edit【编辑】

    Undo 【撤销上一步操作】

    Redo 【恢复被撤销的操作】

    Cut 【剪切】

    Copy 【拷贝】

    Paste 【粘贴】

    Duplicate 【复制】

    Delete 【删除】

    Frame Selected 【在编辑场景中最大化显示被选中的物体】

    Select All 【全选编辑面板中的所有物体】

    Preferences… 【首选参数设置】

    Play 【播放】(如果游戏已经开始播放,点此按钮代表停止播放)

    Pause 【暂停】

    Step 【逐帧播放游戏】

    Load selection 【载入所选】(与“Save selection”【存储所选】联合使用,你可以把它理解为一个临时的快捷键,帮你快速的

    找到特定的以被存储的物体对象。)

    Save selection 【存储所选】(与“Load selection”【载入所选】联合使用,你可以把它理解为一个临时的快捷键,帮你快速的

    找到特定的以被存储的物体对象。)

    Project Settings 【工程文件设置】(包含了该工程项目的“Input”【热键】、“Tags”【标签管理】、“Audio”【音频设置】、“Ti

    me”【时间设置】、“Player”【播放器设置】、“Physics”【默认仿真物理设置】、“Quality”【播放质量参数设置】、“NetWork”【网

    络工作参数设置】、“Editor”【编辑器设置】)“ Execution

    Order”【脚本编译顺序设置】

    Render settings 【渲染设置】(默认渲染参数设置,包括环境光,周围的雾化程度,环境颜色等等一系列参数的设定)

    Network emulation 【网络仿真】(由于你制作的游戏将会在不同的网络环境中工作,所以需要这个参数来模拟不同的网络工

    作环境)

    Graphics emulation 【图形卡仿真】(由于你制作的游戏将会在不同的图形卡环境中工作,所以将需要这个参数来模拟不同硬

    件条件下的游戏显示质量)

    Snap settings 【捕捉设置】(和 3Ds Max 的“栅格和捕捉设置”类似。)

    更多unity2018的功能介绍请到paws3d学习中心查找。链接https://www.paws3d.com/learn/,也可以加入unity学习讨论群935714213

    近期更有资深开发人士直播分享unity开发经验,详情请进入官网或加入QQ群了解

    展开全文
  • Unity3d不久之前正式发布了Unity3d 2017.1, 这个版本的发布也宣告了Unity3d正式告别了5.x时代,并且开始已年份直接命名,开启了新的纪元。那么Unity3d 2017相较上一版本到底有哪些改进呢?这介绍这些改进之前先放出...
  • Unity3d场景快速烘焙【2019】

    万次阅读 多人点赞 2019-12-26 19:09:28
    很多刚刚接触Unity3d的童鞋花了大量的时间自学,可总是把握不好Unity3d的烘焙,刚从一个坑里爬出来,又陷入另一个新的坑,每次烘焙一个场景少则几个小时,多则几十个小时,机器总是处于假死机状态,半天看不到结果,...
  • unity3d 2019烘焙教程 持续更新中

    万次阅读 多人点赞 2019-08-20 11:06:12
    很多刚刚接触Unity3d的童鞋花了大量的时间自学,可总是把握不好Unity3d的烘焙,刚从一个坑里爬出来,又陷入另一个新的坑,每次烘焙一个场景少则几个小时,多则几十个小时,机器总是处于假死机状态,半天看不到结果,...
  • Unity 3D结构界面详细说明

    千次阅读 2018-03-06 16:02:59
     Scene【场景面板】:该面板为Unity3D的编辑面板;你可以将你所有的模型、灯光、以及其他材质对象拖放到该场景中。构建游戏中所能呈现景象。  Game【游戏面板】:与场景面板不同,该面板是用来渲染场景面板中...
  • 本文小姐姐以一个办公场地为例,和童鞋们再次讨论Unity3d室内场景的灯光布设、光影烘焙和后处理,希望对初学者有所帮助
  • Unity3D 优化之路(一):DrawCall

    千次阅读 2016-03-01 18:28:26
    匹夫印象里遇到的童靴,提Unity3D项目优化则必提DrawCall,这自然没错,但也有很不好影响。因为这会给人一个错误的认识:所谓的优化就是把DrawCall弄的比较低就对了。 对优化有这种第一印象的人不在少数,draw...
  • Unity3D的基本界面介绍

    千次阅读 2014-05-11 01:23:19
    第一章Unity3D的基本界面介绍 Unity3D的基本界面非常简单,几个窗口就可以实现几乎全部的编辑功能。主界面如图1.1所示: 场景面板:该面板为Unity3D的编辑面板;您可以将您所有的模型、灯光、以及其他材质...
  • 1.有时属于一类应急性的工程,也就不好去定什么风格细节,大致描绘下一个影子轮廓,参考下自己熟悉的游戏资料 ... 2.为了达到最佳的资源利用,需要有一个模型面数上的限制,这里我就以2000三边面作为上限。...
  • Unity3d 场景搭建 基础 学习

    千次阅读 2017-09-02 12:08:05
    第一章:Unity环境搭建 所用软件:Unity 5.4.0f3 (64-bit) assets文件夹最重要 Scene场景面板  常用快捷键 1.按下鼠标滚轮拖动场景(或者拖动小手),滑动滚轮缩放场景 2.选择十字标,选定物体,按下F:...
  • 众所周知,Unity3D是一个能够实现轻松创作的多平台的游戏开发工具,是一个全面整合的专业游戏引擎。在现有的版本中,其强大的游戏制作功能已经达到和其他顶级游戏引擎媲美的地步。但是 其制作并不如想象中的困难。...
1 2 3 4 5 ... 20
收藏数 599
精华内容 239
关键字:

unity3d 构建灯光