unity之shader学习笔记(五)--纹理

本文介绍了Unity中纹理映射的概念,包括纹理坐标、类型及如何在Shader中使用纹理。讲解了Tiling和Offset属性的作用,用于调整纹理的重复和偏移。还探讨了法线贴图的重要性,通过颜色值转换实现更真实的光照效果,并提供了在Shader中使用法线贴图的代码示例。
摘要由CSDN通过智能技术生成

纹理映射

纹理坐标(也称为u/v坐标,横坐标是u,纵坐标是v,长宽是1)
一般将纹理的颜色代替漫反射的颜色,这样就会看到图像,一般是片元函数处理

纹理的类型有

Normalmap            法线贴图
EditorGUI andLegacy  菜单栏图标
Sprite               2D图片和UI界面
Cubemap              立方体纹理,做环境盒子
cookie               制作阴影,使手电筒的光从圆形变成另一种形状,类似蝙蝠灯的中间阴影,
lightmap             光照贴图,使用避免实时计算
Advanced             自定义

如何使用纹理呢,代码如下

Shader "Custom/10-FirstShader" {  
    Properties{
        //_Diffuse("Diffuse Color",Color) = (1,1,1,1)
        _MainTex("Main Tex",2D) = "white"{}     
        _Color("Color",Color) = (1,1,1,1)
        _Specular("Specular Color",Color) = (1,1,1,1)
        _Gloss("Gloss",Range(10,200)) = 20
    }
        SubShader{
        Pass{
        Tags{ "LightMode" = "ForwardBase" }
            CGPROGRAM
    #include "Lighting.cginc"
    #pragma vertex vert
    #pragma fragment frag

            //fixed4 _Diffuse;
        fixed4 _Specular;
        half _Gloss;
        sampler2D _MainTex;
        fixed4 _Color;
        struct a2v {
            float4 vertex:POSITION;
            float3 normal:NORMAL;
            float4 texcoord:TEXCOORD0;//获取纹理坐标点
        };
        struct v2f {
            float4 svPos:SV_POSITION;
            float3 worldNormal:TEXCOORD0;//世界空间下法线向量
            float4 worldVertex:T
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值