当前位置:   article > 正文

Unity2d开发总结——(Texture2d)Import Setting_unity texture2d

unity texture2d

导入2d图片检查器面板

在这里插入图片描述

1.Texture Type.(纹理类型)

选择要创建的纹理类型。
使用“纹理类型”属性选择要从源图像文件创建的纹理类型。“纹理导入”设置窗口中的其他属性会根据您设置的值而变化。
以下是可用于在Inspector(检测器)窗口 Unity 中配置各种纹理类型的属性。

1.1 Default

Default(默认类型)是用于所有纹理的最常见纹理类型。它提供对纹理导入的大多数属性的访问。使用此纹理类型,还可以更改“纹理形状”属性以定义Texture Shape(纹理形状)。

1.1.1Texture Shape

使用Texture Shape(纹理形状)属性可以选择和定义纹理的形状和结构。有四种形状类型
在这里插入图片描述

2D 是所有纹理的最常见设置;它将图像文件定义为 2D 纹理。这些用于将纹理映射到 3D 网格和 GUI 元素,以及其他项目元素。

Cube 立方体将纹理定义为a cubemap.立方体贴图。您可以将其用于Skybox或反射探头
例如。此类型仅适用于默认、法线贴图和单通道纹理类型。

支持几种常用的立方体贴图布局(在大多数情况下,Unity 会自动检测它们)。
在这里插入图片描述

在这里插入图片描述

2D 数组将纹理定义为 2D 数组纹理。这通常用作某些渲染技术的优化,其中使用许多相同大小和格式的纹理.

Shader "Example/Sample2DArrayTexture"
{
    Properties
    {
        _MyArr ("Tex", 2DArray) = "" {}
        _SliceRange ("Slices", Range(0,16)) = 6
        _UVScale ("UVScale", Float) = 1.0
    }
    SubShader
    {
        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            // texture arrays are not available everywhere,
            // only compile shader on platforms where they are
            #pragma require 2darray
            
            #include "UnityCG.cginc"

            struct v2f
            {
                float3 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
            };

            float _SliceRange;
            float _UVScale;

            v2f vert (float4 vertex : POSITION)
            {
                v2f o;
                o.vertex = mul(UNITY_MATRIX_MVP, vertex);
                o.uv.xy = (vertex.xy + 0.5) * _UVScale;
                o.uv.z = (vertex.z + 0.5) * _SliceRange;
                return o;
            }
            
            UNITY_DECLARE_TEX2DARRAY(_MyArr);

            half4 frag (v2f i) : SV_Target
            {
                return UNITY_SAMPLE_TEX2DARRAY(_MyArr, i.uv);
            }
            ENDCG
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

3D 将纹理定义为 3D 纹理。某些渲染技术使用 3D 纹理来表示体积数据。
3D 纹理是一种位图图像,它包含三维信息,而不是标准的二维信息。3D 纹理通常用于模拟体积效果(如雾或烟雾),以近似体积 3D网孔
,或存储动画纹理并在它们之间平滑混合。
在这里插入图片描述

using UnityEditor;
using UnityEngine;

public class ExampleEditorScript : MonoBehaviour
{
    [MenuItem("CreateExamples/3DTexture")]
    static void CreateTexture3D()
    {
        // Configure the texture
        int size = 32;
        TextureFormat format = TextureFormat.RGBA32;
        TextureWrapMode wrapMode =  TextureWrapMode.Clamp;

        // Create the texture and apply the configuration
        Texture3D texture = new Texture3D(size, size, size, format, false);
        texture.wrapMode = wrapMode;

        // Create a 3-dimensional array to store color data
        Color[] colors = new Color[size * size * size];

        // Populate the array so that the x, y, and z values of the texture will map to red, blue, and green colors
        float inverseResolution = 1.0f / (size - 1.0f);
        for (int z = 0; z < size; z++)
        {
            int zOffset = z * size * size;
            for (int y = 0; y < size; y++)
            {
                int yOffset = y * size;
                for (int x = 0; x < size; x++)
                {
                    colors[x + yOffset + zOffset] = new Color(x * inverseResolution,
                        y * inverseResolution, z * inverseResolution, 1.0f);
                }
            }
        }

        // Copy the color values to the texture
        texture.SetPixels(colors);

        // Apply the changes to the texture and upload the updated texture to the GPU
        texture.Apply();        

        // Save the texture to your Unity Project
        AssetDatabase.CreateAsset(texture, "Assets/Example3DTexture.asset");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

1.2 Normal map (法线贴图)

选择法线贴图将颜色通道转换为适合实时法线贴图的格式。使用此纹理类型,还可以更改Texture Shape(纹理形状)属性以定义纹理形状。

1.3 Editor GUI and Legacy GUI

如果您在任何 HUD 或 GUI 控件上使用纹理,请选择编辑器 GUI 和旧版 GUI。对于此纹理类型,Texture Shape(纹理形状)属性始终设置为 2D。

1.4 Sprite (2D and UI) [精灵]

选择精灵(2D 和 UI),如果您在 2D 游戏中将纹理用作精灵
.对于此纹理类型,Texture Shape(纹理形状)属性始终设置为 2D。

1.5 Cursor(光标)

选择“光标”以将纹理用作自定义光标。对于此纹理类型,“纹理形状”属性始终设置为 2D。

1.6 Cookie

选择“Cookie”以使用内置中用于 Cookie 的基本参数设置纹理渲染管线
.使用此纹理类型,Unity 会根据所选光源类型自动更新纹理形状属性.

Directional(平行光)和 Spotlight(聚光灯)的 Cookie 始终是 2D 纹理(2D 形状类型)。

Point Light(点光源)的Cookie 必须是cubemaps(立方体贴图)
(立方体形状类型)。

1.7 Lightmap(光照贴图)

选择光照贴图
如果您将纹理用作光照贴图。此选项允许编码为特定格式(RGBM 或 dLDR,具体取决于平台)和后处理
踏上纹理数据(推拉膨胀通道)。对于此纹理类型,“纹理形状”属性始终设置为 2D。
在这里插入图片描述

1.8 Single Channel

如果纹理中只需要一个通道,请选择单通道。
在这里插入图片描述

2.Texture Shape(纹理形状)

参考1.1.1

3.sRGB (Color Texture) [颜色纹理]

在这里插入图片描述
指定纹理将数据存储在 sRGB(也称为灰度系数)色彩空间中。仅当项目使用线性色彩空间时,此设置才相关。如果启用,它将指示 GPU 在着色器中对纹理进行采样时将数据从 sRGB 颜色空间转换为线性颜色空间。

为存储常规颜色数据的非 HDR 纹理启用此选项。对包含非颜色数据(如平滑度或金属度)的纹理禁用此功能。

对于 HDR 纹理,Unity 默认禁用此值并隐藏复选框。对于非 HDR 纹理,Unity 默认启用此功能。

4.Alpha Source (阿尔法源)

在这里插入图片描述
指定如何生成纹理的 Alpha 通道。默认情况下,此选项设置为“无”。

4.1 None

导入的纹理没有 Alpha 通道,无论输入纹理是否有 Alpha 通道。

4.2 Input Texture Alpha (输入阿尔法纹理)

如果提供了纹理,这将使用输入纹理中的 alpha。

4.3 From Gray Scale (从灰度值中获取阿尔法源)

这将根据输入纹理 RGB 值的平均值(平均值)生成 alpha。

5.Alpha is Transparency(阿尔法通道是否透明)

启用此属性可扩展颜色并避免过滤边缘上的伪影(如果指定的 Alpha 通道为“透明度”。

6.Remove Matte (PSD) [去除哑光]

为使用透明度(将彩色像素与白色混合)的 Photoshop 文件启用特殊处理。

注意:这仅适用于 PSD 文件

7. Ignore PNG file gamma(忽略 PNG 文件伽玛)

启用此属性可忽略 PNG 文件中的 Gamma 属性。此属性不会影响其他文件格式

8.Non Power of 2(非 2 的幂)

如果纹理具有非二次幂 (NPOT) 维度大小,这将定义导入时的缩放行为。有关两种大小的非幂的更多信息,请参阅有关导入纹理的文档。默认情况下,此选项设置为“无”。
在这里插入图片描述

8.1 None

纹理尺寸保持不变。

8.2 ToNearest

在导入时将纹理缩放到最接近的二次幂尺寸。例如,257x511 像素的纹理缩放为 256x512 像素。请注意,PVRTC 格式要求纹理为正方形(即宽度等于高度),因此最终尺寸大小将放大为 512x512 像素。

8.3 ToLarger

将纹理缩放到导入时最大尺寸值的二维尺寸的二次方。例如,257x511像素的纹理缩放为 512x512 像素。

8.4 ToSmaller

将纹理缩放到导入时最小尺寸值的二维尺寸的二次方。例如,257x511像素的纹理缩放为 256x256 像素。

9.Read/Write Enabled(读/写启用)

启用此属性以使用 Texture2D.SetPixels、Texture2D.GetPixel 和其他 Texture2D 方法从脚本访问纹理数据。在内部,Unity 使用纹理数据的副本进行脚本访问,这使纹理所需的内存量翻倍。因此,默认情况下禁用此属性,仅当需要脚本访问权限时,才应启用此属性。有关详细信息,请参阅纹理 2D。

10.Virtual Texture Only(仅虚拟纹理)

启用此属性以仅将纹理与虚拟纹理的纹理堆栈结合使用。启用后,不保证纹理在播放机中可用作 Texture2D(即无法从脚本访问)。禁用后,播放机会将纹理作为 Texture2D(可从脚本访问)和作为纹理堆栈中的可流式纹理包含在内。

11.Streaming Mip Maps(流式 Mip 映射)

启用此属性可在此纹理上使用 Mip 贴图流处理。此设置对 Unity 使用网格渲染器显示的 3D 环境中的任何纹理都有效。漫反射纹理、法线贴图和光照贴图都对 Mip 贴图流送有效。

11.1 Mip Map Priority(Mip 映射优先级)

使用它来设置 mipmap 的优先级。Unity 使用它来确定在分配资源时要优先考虑哪些 mipmap。值越高表示优先级越高(例如,3 表示优先级高于 1)。此设置仅在启用流式 Mip 映射时可用。

Mip 贴图优先级编号也是内存预算的 mipmap 偏移量(在启用纹理流处理时在质量设置中设置)。例如,优先级为 2 时,Mip 贴图流处理系统尝试使用优先级为 0 的纹理高两个 mip 级别的 mipmap。每个轴高一个 mip 级别是 2 倍,每个轴高出两个级别是 4 倍,因此高两个 mip 级别会导致纹理大 16 倍。如果无法执行此操作,则使用较低的 mip 级别来适应内存预算。负值也是有效的。

有关更多详细信息,请参阅 Mip Map 流式处理 API。

12 Generate Mip Maps(生成 Mip 映射)

启用此属性可启用 mip 映射生成。Mip 贴图是纹理的较小版本,当纹理在屏幕上非常小时使用。有关 mip 贴图的更多信息,请参阅有关导入纹理的文档。

警告: 每次选择新的纹理类型时,此属性将恢复为新纹理类型的默认值(如果已定义)。请参阅纹理类型以查找每种类型的此属性默认值。

12.1 Border Mip Maps(边缘 Mip 映射)

启用此属性可避免颜色渗出到较低 MIP 级别的边缘。用于light cookies。默认情况下,此属性处于禁用状态。

仅在启用“生成 Mip 映射”时可用。

12.2 Mip Map Filtering(Mip 映射过滤)

有两种 mipmap 过滤方法可用于优化图像质量。默认选项为 Box。

仅在启用“生成 Mip 映射”时可用。

12.2.1 Box

这是淡出 mipmap 的最简单方法。MIP 级别随着尺寸大小的减小而变得更加平滑。

12.2.2 Kaiser

锐化算法在 mipmap 尺寸减小时运行。如果您的纹理在远处太模糊,请尝试此选项。(该算法属于 Kaiser 窗口类型;有关更多信息,请参阅维基百科)

12.3 Mip Maps Preserve Coverage (Mip 地图保留覆盖范围)

如果您希望生成的 mipmap 的 alpha 通道在 alpha 测试期间保留覆盖范围,请启用此属性。

12.3.1 Alpha Cutoff Value (阿尔法截止值)

设置用于在 alpha 测试期间控制 Mip 地图覆盖范围的参考值。

12.4 Fadeout Mip Maps (淡出 Mip 贴图)

启用此属性可使 mipmap 随着 MIP 级别的进行而淡入灰色。这用于详细地图。最左边的卷轴是第一个开始淡出的 MIP 级别。最右侧的滚动定义了纹理完全灰显的 MIP 级别。

仅在启用“生成 Mip 映射”时可用。

###13 Wrap Mode (环绕模式)
选择纹理在平铺时的行为方式。默认选项为Repeat (重复)。
在这里插入图片描述

13.1 Repeat (重复)

在拼贴中重复纹理。

13.2 Clamp (钳)

拉伸纹理的边缘。

13.3 Mirror(镜像)

在每个整数边界处镜像纹理以创建重复图案。

13.4 Mirror Once (镜像一次)

镜像纹理一次,然后将其固定到边缘像素。

注意:某些移动设备不支持“镜像一次”模式。在这种情况下,Unity 会改用Mirror(镜像)模式。

13.5 Per-axis(每轴)

选择此选项可单独控制 Unity 如何在 U 轴和 V 轴上包装纹理。

14.Filter Mode (过滤模式)

选择在纹理被 3D 变换拉伸时如何过滤纹理。默认选项为 Bilinear (双线性)。
在这里插入图片描述

14.1 Bilinear 点(无过滤器)

纹理在近距离显示块状。

14.2 Bilinear (双线性)

纹理在近距离显示模糊。

14.3 Trilinear(三线性)

与双线性一样,但纹理在不同的MIP级别之间也模糊不清。

15 Aniso Level (Aniso 水平)

以陡峭角度查看纹理时提高纹理质量。各向异性过滤适用于地板和地面纹理,但性能成本很高。

16 特定于平台的覆盖

16.1 Max Size (最大尺寸)

设置导入的最大纹理尺寸像素
.艺术家通常更喜欢使用巨大的尺寸纹理,但您可以将纹理缩小到合适的尺寸。

16.2 Resize Algorithm (调整大小算法)

选择一种算法,以便在纹理尺寸大于指定的最大大小时缩小纹理。

16.3 Format (格式)

绕过自动系统以指定要用于纹理的内部表示。可用格式的列表取决于平台和纹理类型。

注意:即使您不覆盖平台,此选项也会显示自动系统选择的格式。此属性仅在覆盖特定平台时可用,而不是作为默认设置。

16.4 Compression (压缩)

选择纹理的压缩类型。这有助于 Unity 为纹理选择正确的压缩格式。根据平台和压缩格式的可用性,不同的设置最终可能会使用相同的内部格式。例如,低质量压缩会影响移动平台,但不会影响桌面平台

16.5 Use Crunch Compression (使用紧缩压缩)

如果适用,请使用紧缩压缩。Crunch 是 DXT 或 ETC 之上的一种有损压缩格式纹理压缩
.Unity 将纹理解压缩到 CPU 上的 DXT 或 ETC,然后在运行时将它们上传到 GPU。紧缩压缩有助于纹理使用尽可能少的磁盘空间量和下载空间。压缩压缩纹理可能需要很长时间,但运行时解压缩非常快。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/125555?site
推荐阅读
相关标签
  

闽ICP备14008679号