Unity将4个纹理图拼接成1个纹理

梯度下降法:蒙眼下山找最优参数 梯度下降法就像蒙眼下山找最低点,是机器学习的核心优化算法。它通过计算目标函数(如误差函数)的梯度,沿着最陡下降方向逐步调整参数,最终找到最优解。形象比喻包括闭眼下山和调味找最佳口味,核心公式是θ_new = θ_old - η·∇L。这种方法适用于参数估计、游戏开发等场景,通过小步迭代逼近最优解。其本质是"感受坡度、小步调整"的智能导航过程,成为机器学习调整参数的"指南针"。 阅读详情

需要的效果

最终实现的效果大概如下:
在这里插入图片描述

4个贴图上去

这里随便放一个切分的图。
在这里插入图片描述

Shader代码如下

直接上代码:

// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)

// Unlit shader. Simplest possible textured shader.
// - no lighting
// - no lightmap support
// - no per-material color

Shader "Unlit/TextureMy" {
Properties {
    _MainTex ("Base (RGB)", 2D) = "white" {}
    _MainTex0 ("Base0 (RGB)", 2D) = "white" {}
    _MainTex1 ("Base1 (RGB)", 2D) = "white" {}
    _MainTex2 ("Base2 (RGB)", 2D) = "white" {}
    _MainTex3 ("Base3 (RGB)", 2D) = "white" {}
}

SubShader {
    Tags { "RenderType"="Opaque" }
    LOD 100

    Pass {
        CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #pragma target 2.0
            #pragma multi_compile_fog

            #include "UnityCG.cginc"

            struct appdata_t {
                float4 vertex : POSITION;
                float2 texcoord : TEXCOORD0;
                UNITY_VERTEX_INPUT_INSTANCE_ID
            };

            struct v2f {
                float4 vertex : SV_POSITION;
                float2 texcoord : TEXCOORD0;
                UNITY_FOG_COORDS(1)
                UNITY_VERTEX_OUTPUT_STEREO
            };

            sampler2D _MainTex;
            float4 _MainTex_ST;
            sampler2D _MainTex0;
            sampler2D _MainTex1;
            sampler2D _MainTex2;
            sampler2D _MainTex3;

            v2f vert (appdata_t v)
            {
                v2f o;
                UNITY_SETUP_INSTANCE_ID(v);
                UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
                UNITY_TRANSFER_FOG(o,o.vertex);
                return o;
            }

            fixed4 frag (v2f i) : SV_Target
            {
                fixed4 col;
                float2 uv = i.texcoord;
                float2 uvFix = uv;
                
                if (uv.x < 0.5)
                {
                    if(uv.y < 0.5)
                    {
                        uvFix.x = uv.x * 2;
                        uvFix.y = uv.y * 2;
                        col = tex2D (_MainTex2 , uvFix );
                    }
                    else
                    {
                        uvFix.x = uv.x * 2;
                        uvFix.y = uv.y * 2 - 1;
                        col = tex2D (_MainTex0 , uvFix );                    
                    }
                }
                else
                {
                    if(uv.y < 0.5)
                    {
                        uvFix.x = uv.x * 2 - 1;
                        uvFix.y = uv.y * 2 ;
                        col = tex2D (_MainTex3 , uvFix );
                    }
                    else
                    {
                        uvFix.x = uv.x * 2 - 1;
                        uvFix.y = uv.y * 2 - 1;
                        col = tex2D (_MainTex1 , uvFix );                    
                    }
                }
                //fixed4 col = tex2D(_MainTex, i.texcoord);
                UNITY_APPLY_FOG(i.fogCoord, col);
                UNITY_OPAQUE_ALPHA(col.a);
                return col;
            }
        ENDCG
    }
}

}

uv左下角是0,0,所以第一个if判定再左下角,使用_MainTex2 纹理,那么如果铺满屏幕问题,需要*2.
其他部分的类似。

按照这个思路可以扩充8*8等其他。

特别注意

这里要注意,需要把图的WrapMode改为Clamp,repeat会有接缝。
在这里插入图片描述

Unity地形纹理超4层失效的原理与5种工业级解决方案 Unity地形纹理混合基于Splat Map权重映射机制,其本质是一张RGBA四通道的调色板控制图,直接决定Shader中多纹理的实时混合逻辑。由于GPU纹理采样硬件限制与Unity渲染管线设计,单张Splat Map仅能无损承载4层纹理权重;超过此数将触发底层降级协议——自动拆分Splat Map、增加Draw Call、禁用实时GI并引发权重失真、Mipmap崩溃、UV错位等系统性问题。该限制广泛影响URP/Built-in项目中的开放世界、写实地貌与高精度地表过渡场景。本文深入解析Splat Map机 阅读详情

相关推荐

Unity手绘熔岩纹理包应用指南:从材质配置到地形绘制的全流程实践

在游戏开发与计算机图形学中,纹理贴图是构建虚拟世界视觉表现的核心基础技术之一,它通过将二维图像映射到三维模型表面,赋予物体丰富的色彩、质感与细节。其原理在于利用UV坐标将纹理像素与模型顶点精确对应,通过着色器进行采样与混合计算。这项技术的价值在于能以极低的几何成本实现高度的视觉真实感与艺术表现力,是平衡性能与画质的关键。在游戏开发、影视特效、数字孪生等应用场景中,高质量的纹理资源能极大提升内容制作效率与视觉一致性。本文聚焦于风格化游戏开发领域,深入探讨如何将一套精心制作的**手绘风格熔岩纹理包**与**Un

技术百科 711

unity2d贴图简介拼接模式参数不同效果

在Unity 2D中,贴图拼接(Tiling)是指将一张小贴图无限复制并排列,以填充整个区域的效果。拼接模式(Tiling Mode)是指控制如何拼接贴图的方式。

qq_20179331的博客 1545

Unity地形系统全解析:从高度图到植被优化的完整创作指南

地形系统是三维虚拟环境构建的基础技术,它通过高度图、纹理混合和实例化渲染等原理,将简单的网格转化为具有起伏、材质和植被的复杂地表。这项技术的核心价值在于平衡视觉真实感与实时渲染性能,广泛应用于游戏开发、模拟仿真和虚拟现实等领域。在Unity引擎中,Terrain组件提供了从宏观地形塑造到微观细节散布的完整工具链,其中高度图编辑决定了地形骨架,多层纹理混合模拟自然材质过渡,而细节物体和树木的集群化放置则是优化性能的关键。本文基于实际项目经验,深入探讨地形编辑的工作流优化和常见问题排查,帮助开发者掌握从白模到成

weixin_33733810的博客 327

unity 多张texture2d合并成一张图片

publicTexture2D[] t = new Texture2D[4]; private void Start() { Texture2D tex = MergeImage(t); byte[] bytes = tex.EncodeToJPG(); string filename =Application.streamingAssetsPath + "/Screenshot" + UnityEngine.Random.Range(0,1000)...

Lancer_7的博客 4270

YOLOv11 网络结构详解:一文看懂 Backbone、Head、C3k2、SPPF 和 Detect 检测头

在使用 YOLOv11 进行目标检测时,我们经常会接触到或这样的模型配置文件。backbone和head分别是什么意思?ConvC3k2SPPFC2PSA这些模块分别起什么作用?P3/8、P4/16、P5/32 代表什么?为什么最后 Detect 要同时接收 3 个不同尺度的特征图?YOLOv11n、YOLOv11s、YOLOv11m、YOLOv11l、YOLOv11x 的区别在哪里?

learnerYC的博客 1816

电子结构设计(EMD)十年知识总结

客官,你的面相是做结构设计的奇才~1. 材料选择【一出手的0.1s就败了】2. 钣金件设计【折来折去有啥难】3. 塑胶件设计【看着好复杂】4. 型材件设计【凭啥不让我设计】5. 电子结构(PCBA)设计【静电肿么要我背锅】6. 包装设计【要的就是金玉其外,败絮其中】7. 外观(工业)设计【好不好看,谁说了算】8. 标签设计【】9. 标准件选择【一个螺丝难倒英雄汉/提起螺丝,英雄气短】10. 计算仿...

wfeng86的博客 1571

unity合并贴图,并读取合并贴图中任意位置贴图

1.合并图片 using System; using System.IO; using UnityEditor; using UnityEngine; public class TextureCombine { [MenuItem("Tools/TextureCombine")] static void Combine() { Texture2D pic1 = AssetDatabase.LoadAssetAtPath<Texture2D>("Ass

qq_39945752的博客 3589

操作系统期末大题类型题解

额,OS主要这回考程序分析题,PV操作、生产者消费者啊,哲学家进餐问题,死锁问题啊,如何避免死锁,经典银行家算法,页面置换算法啥的,磁盘调度......总计还有很多,就不一一说了 PV操作 谈到PV操作,首先要了解什么是信号量,其实就是用来解决互斥与同步问题的,分为原语wait(S)和signal(S),也就是我们常说的PV操作,在这里给出王道上的概念 wait(S){ while(S>0) S=S-1; } signal(S){ S=S+1; } 记录型信号量

ZXxxiaoxuan的博客 795

[Unity] GPU动画实现(三)——材质合并

在合并完材质之后,还需要对uv进行处理,根据合并的偏移对每个uv加上对应的偏移值即可,这里不赘述,只得一提的是,这里还需要保存旧的uv,在合并网格之后,将旧的uv重新赋值回去,以免影响到其他使用到同一个Mesh的对象。调用Texture2D.PackTextures接口生成合并贴图,返回合并后的uv,这里的uv对应的是子texture在合并后的大texture的uv,而不是传统意义上片元的uv。,不同的是,第二个参数我们设置为true,因为我们已经将其合并成一个材质,因此不再需要多material。...

Zhidai_的博客 2067

MATPOWER下载安装教程

将MATPOWER文件复制在C:\Program Files (x86)\MATLAB\R2016b\bin目录下。原来的窗口中多了很多文件路径,点击【保存】,再点击【关闭】选择所要添加的MATPOWER文件夹,点击【选择文件夹】二、将MATPOWER放在bin目录下。找到菜单栏的【设置路径】点击【添加并包含子文件】一、从官网下载后解压。

weixin_47365903的博客 2万+

画了多年板子才搞懂:Allegro内电层负片连接,Thermal Relief和Anti-Pad避坑全解析

本文深入解析Allegro内电层设计中Thermal Relief与Anti-Pad的关键技术要点,帮助工程师避免常见设计陷阱。通过六层板实战案例,详细阐述负片连接逻辑、热风焊盘参数设计及隔离盘优化策略,提升PCB设计的可靠性与EMI性能。

weixin_28731223的博客 265

惊艳!FaceRecon-3D一键生成高清3D人脸纹理图

本文介绍了如何在星图GPU平台上自动化部署🎭 FaceRecon-3D - 单图 3D 人脸重建系统镜像,实现从单张自拍到高清3D人脸UV纹理图的一键生成。该镜像开箱即用,广泛应用于Blender、Maya等3D软件的纹理贴图制作,显著提升数字人建模与游戏资产生产效率。

weixin_42351520的博客 479

深度解析快递柜管理系统的C++实现:设计与实现

本文详细介绍了一个基于C++的快递柜管理系统的设计与实现,包括系统需求分析、架构设计、数据库设计、关键功能模块实现和测试与验证。通过详细的代码示例和理论分析,读者可以全面了解如何开发一个完整的快递柜管理系统。希望本文能够为读者在实际项目开发中提供有价值的参考。

m0_57781768的博客 714

unity天空盒渐变_关于Unity中天空盒的使用

天空盒是一个盒子,一个正方形的盒子。其实本身也是一种shader,需要材质球做载体。1: 一个场景是由6幅正方形的纹理图无缝拼接而成, 在视野看来位于真实的视野一样;2: 两种天空盒:场景天空盒 Window->Lighting->Scene->Skybox,切换摄像机场景不改变;摄像机天空盒: 摄像机上添加天空盒组件,切换摄像机,天空盒被切换;3: Unity开发实际的天空盒:...

weixin_42518035的博客 1555

【YOLO11改进 - 检测头】Detect_LSCD检测头:量化的检测头,进一步提升模型的检测效率和精度

【YOLO11改进 - 检测头】Detect_LSCD检测头:量化的检测头,进一步提升模型的检测效率和精度

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 4104

大疆司空 2 私有化部署:FH2、Terra、4G 三大服务区别详解

摘要: 司空2私有版包含三大模块:FH2(核心平台,必选)、Terra(建模算力,需NVIDIA显卡)、4G(内网图传)。FH2是基础,支持设备管理与任务调度;Terra适用于测绘建模场景,依赖GPU算力;4G模块保障复杂环境下的图传稳定性,适合纯内网部署。选择逻辑:先部署FH2,再按需添加Terra(需显卡)或4G(需内网支持),避免资源浪费。

2501_93651177的博客 580

Unity Shader立方体纹理:从原理到实战的环境反射与折射实现

在计算机图形学中,纹理映射是增强3D模型表面细节的核心技术。2D纹理通过UV坐标将图像映射到模型表面,而立方体纹理则采用方向向量采样机制,模拟三维空间的全景环境光照。其原理基于方向向量与立方体六个面的交点计算,实现从特定视角对环境图像的采样。这项技术的核心价值在于能够高效模拟物理真实的环境反射、折射及天空盒效果,显著提升场景的沉浸感与视觉保真度。在游戏开发、虚拟现实和实时渲染等应用场景中,立方体纹理是实现动态环境反射、玻璃与水面折射以及全景天空渲染的关键。本文聚焦于Unity Shader中的立方体纹理,深

weixin_34062469的博客 424

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Unity地形系统进阶:MTE网格地形编辑器实战指南与性能优化

在游戏开发,尤其是开放世界、RPG等大型项目的地形制作中,Unity原生Terrain系统常因其高度图(Heightmap)的数据结构,在表现复杂垂直结构和进行精细化性能优化时面临瓶颈。其均匀的网格分布无法根据地形特征动态调整密度,导致在平坦区域浪费GPU资源,在陡峭处又缺乏细节,难以满足现代游戏对效率和视觉表现的双重要求。基于网格(Mesh)的地形系统应运而生,它通过使用可任意编辑的三角面网格替代高度图,实现了造型与绘制的解耦,让开发者能直接导入高精度雕刻模型作为地形基底,并在需要细节的区域使用高密度网格

weixin_34290096的博客 462

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Fragment shader--2D纹理采样1

1、采样坐标为(0.5,0.5) Shader "Custom/s_texture" { Properties{ _MainTex("MainTex", 2D) = ""{} } SubShader{ pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "unitycg.cgi

nicolelili1的专栏 695

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Unity Shader双色纹理平铺:程序化生成与性能优化实践

在计算机图形学中,纹理映射是渲染管线的基础技术,用于将2D图像映射到3D模型表面。其核心原理是通过UV坐标系统建立纹理空间与模型表面的对应关系,实现细节表现。传统纹理采样依赖预制的图像资源,存在内存占用和动态调整受限的问题。纯计算纹理技术通过数学函数在片段着色器中实时生成图案,无需纹理采样,具有零带宽消耗、无限分辨率和极致动态化的技术价值。这一方法特别适用于需要高频、无缝平铺基础图案的应用场景,如游戏UI背景、策略游戏动态网格和风格化程序化材质。本文聚焦于Unity Shader中通过floor、frac等

weixin_34194087的博客 381

关于Unity中天空盒的使用

天空盒 是一个盒子,一个正方形的盒子。其实本身也是一种shader,需要材质球做载体。 1: 一个场景是由6幅正方形的纹理图无缝拼接而成, 在视野看来位于真实的视野一样;2: 两种天空盒:   场景天空盒 Window-&gt;Lighting-&gt;Scene-&gt;Skybox,切换摄像机场景不改变;   摄像机天空盒: 摄像机上添加天空盒组件,切换摄像机,天空盒被切换;...

weixin_34392435的博客 608

Unity地形绘制撤销失败:深度解析与性能优化实战

在游戏开发中,撤销(Undo)机制是编辑器工作流的核心功能之一,它通过记录对象状态快照实现操作回退。其原理涉及数据序列化与内存管理,旨在保障开发过程的流畅与安全。这一机制的技术价值在于提升编辑效率与容错能力,尤其在场景编辑、资源调整等复杂操作中不可或缺。然而,当处理大规模数据时,如Unity地形系统的高分辨率纹理绘制,单次操作的数据量可能远超撤销系统的处理阈值,导致内存开销激增与序列化失败,从而触发操作中断。这直接影响了地形编辑、开放世界构建等具体应用场景的开发体验。针对这一问题,本文聚焦于Unity地形绘

weixin_30736301的博客 473

Aseprite与Unity Tilemap高效2D地图制作全流程解析

在2D游戏开发中,地图构建是核心环节,传统手动绘制方式效率低下且难以维护。其原理是基于网格化与模块化的思想,将地图分解为可复用的图块(Tile),通过数据驱动的方式组织与渲染。这种技术价值在于极大提升了内容生产的标准化程度与迭代速度,使开发者能专注于游戏性设计。在实际应用场景中,独立开发者或小型团队常借助专业像素工具进行素材创作,再通过游戏引擎的瓦片系统进行高效拼接与功能实现。本文聚焦于整合AI创意辅助、Aseprite像素级制作与Unity Tilemap系统搭建的完整生产管线,其中Aseprite的像素

weixin_33795806的博客 410
上一篇: Unity下使用Sqlite
下一篇: Unity编辑器功能Inspector快捷自动填充数据和可视化调试
Thinbug
博客等级 码龄22年 2万+粉丝 187原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Thinbug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值