Unity图形学之CubeMap立方体贴图

1.CubeMap:有六个面的贴图组成

  1. 假反射:反射天空盒子

(1)正常UV采样:

(2)Cube的采样:利用反射角采样,反射角X和Cube的交点采样

cs 复制代码
Shader "Custom/TestReflect"
{
    Properties
    {
        _Color ("Color", Color) = (1,1,1,1)
        _MainTex ("Albedo (RGB)", 2D) = "white" {}
        _CubeMap("Cube Map",CUBE) = "" {}
        _CubePower("Cube Power",float) = 0.5
    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }
        LOD 200
        CGPROGRAM
        // Physically based Standard lighting model, and enable shadows on all  light types
        #pragma surface surf Lambert
        // Use shader model 3.0 target, to get nicer looking lighting
        #pragma target 3.0
        sampler2D _MainTex;
        samplerCUBE _CubeMap;
        struct Input
        {
            float2 uv_MainTex;
            float3 worldRefl;
        };
        fixed4 _Color;
        float _CubePower;
        
        void surf (Input IN, inout SurfaceOutput o)
        {
            // Albedo comes from a texture tinted by color
            fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
            o.Albedo = c.rgb;
            o.Emission = texCUBE(_CubeMap,IN.worldRefl).rgb*_CubePower;
            o.Alpha = c.a;
        }
        ENDCG
    }
    FallBack "Diffuse"
}

3.真反射:立方体上直接反映场景中的所有渲染的东西,都反射显示到cube上了,非常 消耗性能

(1)创建一个RenderTexture:

(2)主相机上的Target Texture设置为RenderTexture:

(3)需要反射的立方体的材质球上的贴图设置为RenderTexture:

相关推荐
浅陌sss3 小时前
Unity中动态生成贴图并保存成png图片实现
unity·游戏引擎·贴图
小春熙子4 小时前
Unity图形学之法线贴图原理
unity·游戏引擎·贴图·技术美术
Miguel Pan5 小时前
虚幻引擎---初识篇
游戏引擎·虚幻
虾球xz6 小时前
游戏引擎学习第22天
学习·游戏引擎
老朱佩琪!8 小时前
UNity将脚本中的文本提示显示在编辑器中
unity·c#·编辑器
杳戢9 小时前
技术美术百人计划 | 《2.1 色彩空间介绍》笔记
笔记·unity·游戏引擎·图形渲染·技术美术
tealcwu17 小时前
【Unity How】Unity中如何实现物体的匀速往返移动
unity·游戏引擎
恬静的小魔龙1 天前
【SKFramework框架核心模块】3-2、音频管理模块
3d·unity·编辑器·游戏引擎·音视频
浅陌sss1 天前
物体网格弹性变形---Unity中实现
unity·游戏引擎