当前位置: 首页 > article >正文

Unity图形学之法线贴图原理

1.正常贴图:RGBA 4通道 每个通道取值范围 0-255 贴图里面取值是 0-1

2.法线贴图:法线怎么存入正常贴图的过程

每个通道里面存储的是一个向量(x,y,z,w) 通常我们会对应xyzw为rgba 存储值的范围也是0-1


向量的取值范围是 -1到1

法线怎么存入正常贴图的过程:法线中的向量取值范围怎么变换为0-1: (-1,1) *0.5 +0.5 ==(0,1)

正常贴图变成法线的过程:(0,1) -0.5 *2 == (-1,1)

3.法线贴图为蓝色:是因为法线经常是朝向Z轴的,法线倾向 Z值 ,Z值映射到贴图里面,对应的是RGBA中的B值,所以呈现蓝色

4.法线贴图从哪里来?

1.美术制作
2.U3D里设置 图片类型为 Normal Map

5.法线贴图的作用?

1.增加明暗对比度,让凸出的地方看起来更凸

法线计算:

Shader "Custom/NormalMap"
{
    Properties
    {
        _Color ("Color", Color) = (1,1,1,1)
        _MainTex ("Albedo (RGB)", 2D) = "white" {}
        _NorTex ("NormalMap (RGB)", 2D) = "white" {}
    }
    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;
        sampler2D _NorTex;
        struct Input
        {
            float2 uv_MainTex;
            float2 uv_NorTex;
        };
        fixed4 _Color;
        void surf (Input IN, inout SurfaceOutput o)
        {
            // Albedo comes from a texture tinted by color
            fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
            o.Normal = UnpackNormal(tex2D (_NorTex, IN.uv_MainTex));
            o.Albedo = c.rgb;
            
            o.Alpha = c.a;
        }
        ENDCG
    }
    FallBack "Diffuse"
}


http://www.kler.cn/a/407042.html

相关文章:

  • MySQL学习/复习10视图/用户/权限/语言连接数据库
  • ssm面向品牌会员的在线商城小程序
  • 【数据结构】归并排序 —— 递归及非递归解决归并排序
  • 百度主动推送可以提升抓取,它能提升索引量吗?
  • 石油化工调度台的外观如何设计更有科技感
  • dockerfile构建Nginx镜像练习二(5-2)
  • Python设计模式详解之10 —— 外观模式
  • 1123--日期类
  • 华为防火墙技术基本概念学习笔记
  • 医学AI公开课·第一期|Machine LearningTransformers in Med AI
  • D77【 python 接口自动化学习】- python基础之HTTP
  • 对撞双指针(七)三数之和
  • Jetpack Compose 如何布局解析
  • 系统设计---RBAC模型与ABAC模型
  • 【H2O2|全栈】JS进阶知识(九)ES6(5)
  • 大语言模型---Llama模型文件介绍;文件组成
  • 探索Python网络请求新纪元:httpx库的崛起
  • 小白投资理财 - 解读威廉分形指标 Williams Fractals
  • 高度统一:极大和极小如何统于一
  • 0基础如何进入IT行业?
  • 爬虫实战:采集知乎XXX话题数据
  • @RequestBody和前端的关系以及,如何在前后端之间传递数据?
  • mybatis-plus方法无效且字段映射失败错误排查
  • 【PPTist】添加PPT模版
  • 【Linux命令】grep
  • stm32与ht7038的项目