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

需要的效果

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

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 colorShader "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 100Pass {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会有接缝。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/496237.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

比例阀门线性驱动器大电流输出信号隔离模块4-20mA/0-5V/0-10V转0-165mA/0-1A/0-10V/0-24V/0-2A

主要特性 精度、线性度误差等级&#xff1a; 0.1、0.2、0.5 级4-20mA/0-5V/0-10V 等标准信号输入0~100mA/0~500mA/0~1A/0-5A 等电流信号输出0~1V(max 5A)/0~10V/0-24V(max 5A) 等电压信号输出信号输入/信号输出 3000VDC 隔离辅助电源&#xff1a;12V、15V 或 24V 直流单电源供…

个人玩航拍,如何申请无人机空域?

我们在《年会不能停》一文中&#xff0c;有分享我们在西岭雪山用无人机拍摄的照片和视频&#xff0c;有兴趣可以去回顾。 春节的时候&#xff0c;趁着回老家一趟&#xff0c;又将无人机带了回去&#xff0c;计划拍一下老家的风景。 原本以为穷乡僻壤的地方可以随便飞&#xf…

go test用法(获取单元测试覆盖率)

go test用法&#xff08;获取ut覆盖率&#xff09; 为了提升系统的稳定性&#xff0c;一般公司都会对代码的单元测试覆盖率有一定要求。下面针对golang自带的测试命令go test做讲解。 1 命令 1.1 go test ./… &#xff08;运行当前目录及所有子目录下的测试用例&#xff09; …

【ArcGIS】重采样栅格像元匹配问题:不同空间分辨率栅格数据统一

重采样栅格像元匹配问题&#xff1a;不同空间分辨率栅格数据统一 原始数据数据1&#xff1a;GDP分布数据2.1&#xff1a;人口密度数据2.2&#xff1a;人口总数数据3&#xff1a;土地利用类型 数据处理操作1&#xff1a;将人口密度数据投影至GDP数据&#xff08;栅格数据的投影变…

混合励磁电机(混磁电机)为新型电机 规模化应用仍需进一步验证

混合励磁电机&#xff08;混磁电机&#xff09;为新型电机 规模化应用仍需进一步验证 混合励磁电机&#xff08;HEM&#xff09;简称混磁电机&#xff0c;是一种新型电机&#xff0c;即在永磁电机基础上&#xff0c;增设电励磁绕组&#xff0c;并进行结构调整而形成的。混磁电机…

数据结构(C语言)代码实现(九)——迷宫探路表达式求值

目录 参考资料 迷宫探路 顺序栈头文件SqStack.h 顺序栈函数实现SqStack.cpp 迷宫探路主函数 表达式求值 链式顺序栈头文件LinkStack.h 链式顺序栈函数实现LinkStack.cpp 表达式求值主函数 测试结果 参考资料 数据结构严蔚敏版 2021-9-22【数据结构/严蔚敏】【顺序…

代码随想录-力扣刷题-总结笔记01

代码随想录&#xff1a;代码随想录力扣&#xff1a;力扣 (LeetCode) 全球极客挚爱的技术成长平台 目录 01、代码随想录 00、琐碎知识点 01、数组 02、链表 03、哈希表 04、字符串 05、双指针法 06、栈与队列 6.1、栈 6.2、队列 07、二叉树 7.1、前中后序-递归遍历 …

Python学习 day05(异常)

异常 为什么要捕获异常 当程序遇到了BUG&#xff0c;如果不对BUG进行手动捕获&#xff0c;那么整个程序就会因为一个BUG而停止运行&#xff0c;这在有些情况下是会造成很大的损失&#xff0c;但是如果我们进行了手动捕获&#xff0c;那么整个程序会继续运行捕获异常的作用在于&…

抖音小店怎么申请入驻?具体的操作流程,今天一文详解!

大家好&#xff0c;我是电商小布。 想要来加入到抖音小店这个市场当中&#xff0c;我们第一件事就是要完成小店的入驻工作。 具体的流程是什么样的&#xff1f;具体都需要哪些内容呢&#xff1f; 接下来&#xff0c;小布就带大家详细了解一下。 1、注册 这里我们直接采用手…

电子邮箱怎么设置?如何配置邮箱SMTP服务?

电子邮箱服务器怎么设置&#xff1f;设置电子邮箱服务器的方法&#xff1f; 电子邮箱已成为我们日常生活和工作中不可或缺的一部分。它不仅是接收和发送邮件的工具&#xff0c;更是我们与外界沟通的重要桥梁。那么&#xff0c;如何设置电子邮箱&#xff0c;并配置SMTP服务呢&a…

ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the ‘ssl‘报错解决

安装labelme出错了 根据爆栈的提示信息&#xff0c;我在cmd运行以下命令之后一切正常了&#xff0c;解决了问题&#xff01; pip install urllib31.26.6参考网址&#xff1a;ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1, currently the ‘ssl’ module is compile…

抖音视频批量下载软件|视频评论采集工具

抖音视频评论采集软件是一款基于C#开发的高效、便捷的工具&#xff0c;旨在为用户提供全面的数据采集和分析服务。用户可以通过关键词搜索抓取视频数据&#xff0c;也可以通过分享链接进行单个视频的抓取和下载&#xff0c;从而轻松获取抖音视频评论数据。 批量视频提取模块&a…