【UnityShader】纹理基础与属性

本文详细介绍了Unity中纹理的基础知识,包括纹理的用途、UV坐标、纹理属性等。讲解了不同平台的纹理坐标原点差异,以及如何在Shader中应用纹理。此外,还深入探讨了纹理类型、形状、属性设置,如采样器、过滤模式、贴图模式等,并通过实例展示了如何用一张纹理来控制物体的漫反射颜色。
摘要由CSDN通过智能技术生成

纹理基础知识

  • 纹理的最初目的是使用一张图片来控制模型的外观,使用纹理映射技术,可以把一张图“黏”在模型的表面,逐纹素的控制模型的颜色。

  • UV坐标通常被归一化到[0, 1]范围内。

  • 在 OpenGL 中,纹理空间的原点位于左下角,而在 DirectX 中,原点位于左上角。

  • samplar2D _MainTex;
    float4 _MainTex_ST; // 纹理的属性,ST为缩放和平移的缩写,_MainTex_ST.xy缩放值,_MainTex_ST.zw 偏移值。可以在材质面板中调节,对应的是 Tiling 和 Offset。

  • o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
    // 等价于,先缩放,后偏移
    o.uv = v.texcoord * _MainTex_ST.xy + _MainTex_ST.zw;

纹理属性

  • Texture Type 纹理类型

    • Default 普通贴图
    • Normal map 法线贴图
    • Editor GUI and Legacy GUI UI贴图
    • Sprite(2D and UI) 精灵
    • Cursor 鼠标指针
    • Cookie 遮罩贴图
    • Lightmap 烘焙贴图
  • Texture Shape

    • 2D 默认类型,2D纹理
    • Cube 立方体贴图,用于Skyboxes或者Reflection Probes
  • sRGB(Color Texture)(标准颜色的纹理)
    如果不需要标准RGB颜色的纹理,可以不勾选。

  • Alpha Source:纹理Alpha通道

    • None 无,不论纹理是否有Alpha,都设置为没有Alpha
    • Input Texture Alpha 导入纹理自带Alpha
    • From Gray Scale 透明通道的值会由每个像素的灰度值生成
  • Alpha Is Transparency
    当alpha用于透明处理时,我们要勾上该选

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值