镜面指的是视频编辑软件或者非编软件里的一个特效,叫做mirror,看名字就知道,是把一个图象做反射处理,并不是你要的效果,就是把画面中间切开,然后左右的东西是一样但是相反的那类效果你要的效果其实没有那么复杂,在编辑软件里给视频做个运动设置,把它的两边坐标对换就完了在Premiere里很好完成,在AE里更方便,旋转Z轴就行了,只是生成很恼火
镜面蒙版是一种视频剪辑特效。根据查询相关资料信息显示,镜面蒙版能够在屏幕上显示出一个完整的镜子的形状,蒙上的背景图案是由一个镜子的形状组成的,当光线从蒙版上照射时,会映射出屏幕上的内容,从而让用户看到自己的画面。
光影游戏镜面纸是一种采用镜面反射技术制作的特殊材料,被广泛应用于户外广告牌、展览展示、景观装饰等领域。它的特殊之处在于,当有光线照射时,它会产生独特的光影效果,让人们感到非常震撼。
光影游戏镜面纸的制作原理比较简单,它采用的是一种高透明聚碳酸酯薄膜,薄膜表面覆盖着微小的凹槽,通过这些凹槽的反射作用,实现了光线的折射、反射和干涉。这种特殊的制作工艺,让光影游戏镜面纸能够模拟出各种流光溢彩的效果,让人们感到非常惊艳。
光影游戏镜面纸的应用非常广泛,它可以被应用于各种场合,如展览展示、景观装饰、户外广告牌等。在展览展示领域,它可以通过各种形状的制作,如球形、圆柱形、扇形等,展现出非常生动、丰富的效果;在景观装饰领域,它可以被用作各种建筑、地标的外观装饰,让城市更加美丽、富有魅力;在户外广告牌领域,它可以被用作各种商业广告牌的制作材料,让广告更加亮眼、引人注目。
除了应用于实体的物体上,光影游戏镜面纸还可以被应用于虚拟景观、游戏设计等领域。比如在虚拟景观中,它可以用来模拟水面、天空、星空、彩虹等各种景象,让人们感受到更加真实的感觉;在游戏设计中,它可以用来实现各种视觉特效,如光环、魔法阵、爆炸效果等,让游戏更加有趣、刺激。
总之,光影游戏镜面纸是一种非常有趣、有用的材料,它的应用领域非常广泛,可以满足各种展示、装饰、广告等需求。它不仅具有美观、实用的特点,还能够带给人们非常震撼、惊艳的感觉,让我们感受到光与影的美妙。
透明玻璃材质和镜面反射材质都是需要光影技术(Shader)配合的,属于特效材质。
转给你个车身、玻璃材质的shader:
Shader "Reflective/Glass" {
Properties {
_Color ("Main Color", Color) = (1,1,1,1)
_SpecColor ("Specular Color", Color) = (05, 05, 05, 1)
_Shininess ("Shininess", Range (001, 1)) = 0078125
_ReflectColor ("Reflect Strength", Color) = (1,1,1,05)
_MainTex ("Base (RGB) Gloss (A)", 2D) = "white" {}
_Parallax ("Height", Range (0005, 008)) = 002
_Cube ("Reflection Cubemap", Cube) = "_Skybox" { TexGen CubeReflect }
}
SubShader
{
LOD 300
Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
Blend one OneMinusDstColor
ZWrite Off
// First pass does reflection cubemap
Pass
{
Name "BASE"
Tags {"LightMode" = "Always"}
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma fragmentoption ARB_fog_exp2
#pragma fragmentoption ARB_precision_hint_fastest
#include "UnityCGcginc"
struct v2f {
V2F_POS_FOG;
float2 uv : TEXCOORD0;
float3 I : TEXCOORD1;
};
uniform float4 _MainTex_ST;
v2f vert(appdata_tan v)
{
v2f o;
PositionFog( vvertex, opos, ofog );
ouv = TRANSFORM_TEX(vtexcoord,_MainTex);
// calculate object space reflection vector
float3 viewDir = ObjSpaceViewDir( vvertex );
float3 I = reflect( -viewDir, vnormal );
// transform to world space reflection vector
oI = mul( (float3x3)_Object2World, I );
return o;
}
uniform sampler2D _MainTex;
uniform samplerCUBE _Cube;
uniform float4 _ReflectColor;
half4 frag (v2f i) : COLOR
{
half4 texcol = tex2D (_MainTex, iuv);
half4 reflcol = texCUBE( _Cube, iI );
reflcol = texcola;
return reflcol _ReflectColor;
}
ENDCG
}
UsePass "Parallax Specular/PPL"
}
FallBack "Reflective/VertexLit", 1
}
Shader "Reflective/Glass" {
Properties {
_Color ("Main Color", Color) = (1,1,1,1)
_SpecColor ("Specular Color", Color) = (05, 05, 05, 1)
_Shininess ("Shininess", Range (001, 1)) = 0078125
_ReflectColor ("Reflect Strength", Color) = (1,1,1,05)
_MainTex ("Base (RGB) Gloss (A)", 2D) = "white" {}
_Parallax ("Height", Range (0005, 008)) = 002
_Cube ("Reflection Cubemap", Cube) = "_Skybox" { TexGen CubeReflect }
}
SubShader
{
LOD 300
Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
Blend one OneMinusDstColor
ZWrite Off
// First pass does reflection cubemap
Pass
{
Name "BASE"
Tags {"LightMode" = "Always"}
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma fragmentoption ARB_fog_exp2
#pragma fragmentoption ARB_precision_hint_fastest
#include "UnityCGcginc"
struct v2f {
V2F_POS_FOG;
float2 uv : TEXCOORD0;
float3 I : TEXCOORD1;
};
uniform float4 _MainTex_ST;
v2f vert(appdata_tan v)
{
v2f o;
PositionFog( vvertex, opos, ofog );
ouv = TRANSFORM_TEX(vtexcoord,_MainTex);
// calculate object space reflection vector
float3 viewDir = ObjSpaceViewDir( vvertex );
float3 I = reflect( -viewDir, vnormal );
// transform to world space reflection vector
oI = mul( (float3x3)_Object2World, I );
return o;
}
uniform sampler2D _MainTex;
uniform samplerCUBE _Cube;
uniform float4 _ReflectColor;
half4 frag (v2f i) : COLOR
{
half4 texcol = tex2D (_MainTex, iuv);
half4 reflcol = texCUBE( _Cube, iI );
reflcol = texcola;
return reflcol _ReflectColor;
}
ENDCG
}
UsePass "Parallax Specular/PPL"
}
FallBack "Reflective/VertexLit", 1
}
车身shader用Reflective/Specular中的一种
然后加入以下脚本:
RenderToCubemapjs:
// Attach this script to an object that uses a Reflective shader
// Realtime reflective cubemaps!
@script ExecuteInEditMode
var cubemapSize = 128;
var oneFacePerFrame = false;
private var cam : Camera;
private var rtex : RenderTexture;
function Start ()
{
// render all six faces at startup
UpdateCubemap( 63 );
}
function LateUpdate ()
{
if (oneFacePerFrame)
{
var faceToRender = TimeframeCount % 6;
var faceMask = 1 << faceToRender;
UpdateCubemap (faceMask);
}
else
{
UpdateCubemap (63); // all six faces
}
}
function UpdateCubemap (faceMask : int)
{
if (!cam)
{
var go = new GameObject ("CubemapCamera", Camera);
gohideFlags = HideFlagsHideAndDontSave;
gotransformposition = transformposition;
gotransformrotation = Quaternionidentity;
cam = gocamera;
camfarClipPlane = 100; // don't render very far into cubemap
camenabled = false;
}
if (!rtex)
{
rtex = new RenderTexture (cubemapSize, cubemapSize, 16);
rtexisPowerOfTwo = true;
rtexisCubemap = true;
rtexhideFlags = HideFlagsHideAndDontSave;
renderersharedMaterialSetTexture ("_Cube", rtex);
}
camtransformposition = transformposition;
camRenderToCubemap (rtex, faceMask);
}
有兴趣的im可以百jjop度搜:编,程,回,忆,录,之unity3d,都是从零基础开始讲解的
function OnDisable ()
{
DestroyImmediate (cam);
DestroyImmediate (rtex);
}
欢迎分享,转载请注明来源:品搜搜测评网