Unity3D

Unity3D中枚举类型UnityEngine.Experimental.Rendering.GraphicsFormat详解

请尊重原作者的工作,转载时请务必注明转载自:www.xionggf.com 在Unity中,UnityEngine.Experimental.Rendering.GraphicsFormat 枚举类型定义了多种图形格式,用于描述纹理、渲染目标等的像素格式。每种格式都有不同的通道数、每个像素的字节数以及适用场景。以下是 GraphicsFormat 中每个值的具体含义、通道数、每个像素的字节数等详细信息: 1. 常用图形格式 枚举值 含义 通道数 每个像素字节数 描述 None 无格式 - - 未定义格式。 R8_UNorm 单通道 8 位无符号归一化 1 1 适用于单通道数据,如灰度图。 R8_SNorm 单通道 8 位有符号归一化 1 1 适用于单通道有符号数据。 R8_UInt 单通道 8 位无符号整数 1 1 适用于单通道无符号整数数据。 R8_SInt 单通道 8 位有符号整数 1 1 适用于单通道有符号整数数据。 R16_UNorm 单通道 16 位无符号归一化 1 2 适用于单通道高精度数据。 R16_SNorm 单通道 16 位有符号归一化 1 2 适用于单通道高精度有符号数据。 R16_UInt 单通道 16 位无符号整数 1 2 适用于单通道高精度无符号整数数据。 R16_SInt 单通道 16 位有符号整数 1 2 适用于单通道高精度有符号整数数据。 R16_SFloat 单通道 16 位有符号浮点数 1 2 适用于单通道高精度浮点数数据。 R32_UInt 单通道 32 位无符号整数 1 4 适用于单通道超高精度无符号整数数据。 R32_SInt 单通道 32 位有符号整数 1 4 适用于单通道超高精度有符号整数数据。 R32_SFloat 单通道 32 位有符号浮点数 1 4 适用于单通道超高精度浮点数数据。 R8G8_UNorm 双通道 8 位无符号归一化 2 2 适用于双通道数据,如法线贴图的 XY 通道。 R8G8_SNorm 双通道 8 位有符号归一化 2 2 适用于双通道有符号数据。 R8G8_UInt 双通道 8 位无符号整数 2 2 适用于双通道无符号整数数据。 R8G8_SInt 双通道 8 位有符号整数 2 2 适用于双通道有符号整数数据。 R16G16_UNorm 双通道 16 位无符号归一化 2 4 适用于双通道高精度数据。 R16G16_SNorm 双通道 16 位有符号归一化 2 4 适用于双通道高精度有符号数据。 R16G16_UInt 双通道 16 位无符号整数 2 4 适用于双通道高精度无符号整数数据。 R16G16_SInt 双通道 16 位有符号整数 2 4 适用于双通道高精度有符号整数数据。 R16G16_SFloat 双通道 16 位有符号浮点数 2 4 适用于双通道高精度浮点数数据。 R32G32_UInt 双通道 32 位无符号整数 2 8 适用于双通道超高精度无符号整数数据。 R32G32_SInt 双通道 32 位有符号整数 2 8 适用于双通道超高精度有符号整数数据。 R32G32_SFloat 双通道 32 位有符号浮点数 2 8 适用于双通道超高精度浮点数数据。 R8G8B8A8_UNorm 四通道 8 位无符号归一化 4 4 适用于 RGBA 颜色数据。 R8G8B8A8_SNorm 四通道 8 位有符号归一化 4 4 适用于 RGBA 有符号数据。 R8G8B8A8_UInt 四通道 8 位无符号整数 4 4 适用于 RGBA 无符号整数数据。 R8G8B8A8_SInt 四通道 8 位有符号整数 4 4 适用于 RGBA 有符号整数数据。 R16G16B16A16_UNorm 四通道 16 位无符号归一化 4 8 适用于 RGBA 高精度数据。 R16G16B16A16_SNorm 四通道 16 位有符号归一化 4 8 适用于 RGBA 高精度有符号数据。 R16G16B16A16_UInt 四通道 16 位无符号整数 4 8 适用于 RGBA 高精度无符号整数数据。 R16G16B16A16_SInt 四通道 16 位有符号整数 4 8 适用于 RGBA 高精度有符号整数数据。 R16G16B16A16_SFloat 四通道 16 位有符号浮点数 4 8 适用于 RGBA 高精度浮点数数据。 R32G32B32A32_UInt 四通道 32 位无符号整数 4 16 适用于 RGBA 超高精度无符号整数数据。 R32G32B32A32_SInt 四通道 32 位有符号整数 4 16 适用于 RGBA 超高精度有符号整数数据。 R32G32B32A32_SFloat 四通道 32 位有符号浮点数 4 16 适用于 RGBA 超高精度浮点数数据。 B8G8R8A8_UNorm 四通道 BGRA 8 位无符号归一化 4 4 适用于 BGRA 颜色数据。 B8G8R8A8_SNorm 四通道 BGRA 8 位有符号归一化 4 4 适用于 BGRA 有符号数据。 B8G8R8A8_UInt 四通道 BGRA 8 位无符号整数 4 4 适用于 BGRA 无符号整数数据。 B8G8R8A8_SInt 四通道 BGRA 8 位有符号整数 4 4 适用于 BGRA 有符号整数数据。 B8G8R8X8_UNorm 四通道 BGRA 8 位无符号归一化(无 Alpha) 4 4 适用于 BGRA 颜色数据(无 Alpha 通道)。 B8G8R8X8_SNorm 四通道 BGRA 8 位有符号归一化(无 Alpha) 4 4 适用于 BGRA 有符号数据(无 Alpha 通道)。 B8G8R8X8_UInt 四通道 BGRA 8 位无符号整数(无 Alpha) 4 4 适用于 BGRA 无符号整数数据(无 Alpha 通道)。 B8G8R8X8_SInt 四通道 BGRA 8 位有符号整数(无 Alpha) 4 4 适用于 BGRA 有符号整数数据(无 Alpha 通道)。 R10G10B10A2_UNorm 四通道 RGBA,RGB 各 10 位,A 2 位 4 4 适用于高精度 RGB 和低精度 Alpha 数据。 R10G10B10A2_UInt 四通道 RGBA,RGB 各 10 位,A 2 位 4 4 适用于高精度 RGB 和低精度 Alpha 无符号整数数据。 R11G11B10_UFloat 三通道 RGB,R 和 G 各 11 位,B 10 位 3 4 适用于 HDR 数据,节省内存。 D16_UNorm 16 位深度 1 2 适用于深度缓冲区。 D24_UNorm_S8_UInt 24 位深度 + 8 位模板 2 4 适用于深度和模板缓冲区。 D32_SFloat 32 位深度 1 4 适用于高精度深度缓冲区。 D32_SFloat_S8_UInt 32 位深度 + 8 位模板 2 5 适用于高精度深度和模板缓冲区。 2.

Unity3D中枚举类型UnityEngine.TextureFormat详解

请尊重原作者的工作,转载时请务必注明转载自:www.xionggf.com 在Unity中,UnityEngine.TextureFormat 枚举类型定义了多种纹理格式,每种格式都有不同的通道数、每个像素的字节数以及适用场景。以下是 UnityEngine.TextureFormat 中每个值的具体含义、通道数、每个像素的字节数等详细信息: 1. 常用纹理格式 枚举值 含义 通道数 每个像素字节数 描述 Alpha8 单通道 Alpha 1 1 仅存储 Alpha 通道,适用于遮罩或透明度贴图。 ARGB4444 4 通道 ARGB,每通道 4 位 4 2 每个通道 4 位,适用于低精度颜色贴图。 RGB24 3 通道 RGB,每通道 8 位 3 3 存储 RGB 颜色,无 Alpha 通道,适用于普通颜色贴图。 RGBA32 4 通道 RGBA,每通道 8 位 4 4 存储 RGBA 颜色,适用于带透明度的颜色贴图。 RGB565 3 通道 RGB,R 和 B 各 5 位,G 6 位 3 2 压缩格式,适用于低精度颜色贴图。 R16 单通道 16 位 1 2 存储单通道 16 位数据,适用于高度图或深度图。 DXT1 DXT1 压缩格式 3 0.

高效地访问纹理数据

请尊重原作者的工作,转载时请务必注明转载自:www.xionggf.com 原文地址 Working with pixel data in Unity Pixel data describes the color of individual pixels in a texture. Unity provides methods that enable you to read from or write to pixel data with C# scripts. 像素数据描述纹理中各个像素的颜色。Unity 提供了使用 C# 脚本读取或写入像素数据的方法。 You might use these methods to duplicate or update a texture (for example, adding a detail to a player’s profile picture), or use the texture’s data in a particular way, like reading a texture that represents a world map to determine where to place an object.

Http详解及如何在Unity上使用

** 请尊重原作者的工作,转载时请务必注明转载自:www.xionggf.com。** 1 HTTP协议简介 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。 HTTP是一个基于TCP/IP通信协议。来传递数据(HTML 文件, 图片文件, 查询结果等)。它指定了客户端可能发送给服务器什么样的消息,以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。 HTTP协议永远都是客户端发起请求,服务器回送响应。见下图: 2 HTTP工作流程 一次HTTP操作称为一个事务,其工作过程可分为四步: 客户机与服务器建立TCP连接。只要单击某个超级链接/输入网址/提交表单等。 建立连接后,客户机发送http请求给服务器. 服务器接到请求后,响应信息。 客户端接收服务器所返回的信息,然后客户机与服务器断开TCP连接。 3 HTTP发展及各版本 版本 产生时间 内容 发展现状 HTTP/1.1 1997年 持久连接(长连接)、节约带宽、HOST域、管道机制、分块传输编码 2015年前使用最广泛 HTTP/2 2015年 多路复用、服务器推送、头信息压缩、二进制协议等 逐渐覆盖市场 3.1 HTTP1.1 版本 HTTP 1.1 新增了delete options 等几种请求数据的方式,客户端和服务端三次握手后,建立tcp链接,一个tcp链接可以传送多个请求和响应,这样就减少了握手和建立tcp和关闭tcp链接的消耗,传输更快 HTTP 1.1 支持持久链接 请求头有一个connection 参数,参数值是close/keep-alive 意思是本次请求处理完后,服务器是关闭该tcp链接还是继续使用该链接 3.2 HTTP 2.0 版本 HTTP2.0使用了多路复用的技术,做到同一个链接并发处理多个请求,而且并发请求的数量比HTTP1.1大了好几个数量级。 4 HTTP主要特点 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 无状态:无状态是指协议对于事务处理没有记忆能力。也就是说,打开一个服务器上的网页和上一次打开这个服务器上的网页之间没有任何联系。HTTP是一个无状态的面向连接的协议,无状态不代表HTTP不能保持TCP连接,更不能代表HTTP使用的是UDP协议(无连接)。 支持B/S及C/S模式 5 HTTP协议安全机制 HTTPS (Secure Hypertext Transfer Protocol):安全超文本传输协议。HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。HTTPS提供的安全通信,应用了对称加密,非对称加密,数据签名等技术。 HTTP缺点:不够安全——明文传输,不做加密,易被中间人攻击(中间人截获甚至篡改信息) HTTPS主要作用: (1)对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全; (2)对网站服务器进行真实身份认证。 6 HTTP请求方法 根据HTTP标准,HTTP请求可以使用多种请求方法。到目前为止,有以下的方法

伪内部空间映射的相关文档

请尊重原作者的工作,转载时请务必注明转载自:www.xionggf.com CSDN上的参考网页 Unity Shader Interior mapping 内部映射 CSDN上的案例学习——Interior Mapping 室内映射(假室内效果) CSDN上的UE5黑客帝国3d print假室内的一些使用记录 unity 跟随目标_使用Cubemap在Unity中制作虚拟室内效果 知乎上的参考网页 案例学习——Interior Mapping 室内映射(假室内效果) 一种假室内(Fake Interior)效果的实现,这种是带上了室内深度效果的,即每个室内的深度纵深是不一样的。 其他 Joost van Dongen的论文《Interior Mapping A new techique for rendering realistic buildings》 下面的这份代码是《一种假室内(Fake Interior)效果的实现》中提到的代码实现 Shader "Custom/FakeRoom" { Properties { [NoScaleOffset]_WindowTex ("Window Texture", 2D) = "black" {} _RoomTex ("Room Texture", CUBE) = ""{} _RoomDepth ("Room Depth", Range(0.01, 1)) = 1.0 } SubShader { Tags { "RenderType"="Opaque" } Cull Back Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.

Volumetric Clouds Write-up(翻译)

原文地址 The basis of this effect is drawing a vertical stack of quads, each one showing a slice of the cloud. The cloud texture itself is just a world-mapped, top-down animated noise that is piped into opacity. 这种效果的基础是绘制一组垂直堆叠的四边形(简称为:四边形堆栈,vertical stack of quads),每个四边形都显示一片云。 云纹理本身只是一个世界映射的(world-mapped)、自上而下的(top-down)的动画噪声,它通过渲染,管道传输到不透明度中。 To animate the noise, I use the same trick that I use in countless other shaders to create a natural looking motion that appears free of obvious repetition, which is to blend the noise with either a copy of itself with a different UV scale, or a different noise texture, and pan these two noise textures against each other in opposite directions, and then blend them together through multiplication or some other desired blend mode.

Unity纹理压缩格式详解

请尊重原作者的工作,转载时请务必注明转载自:www.xionggf.com Crunch compression(紧凑压缩) Crunch compression是一种建筑在DXT或ETC压缩之上的压缩格式,提供额外的可变比特率压缩。当Unity加载紧凑压缩的纹理时,它会在CPU上将纹理解压缩为DXT或 ETC,然后将DXT或ETC压缩的纹理数据上传到GPU。 紧凑压缩有助于纹理使用尽可能少的磁盘空间,但对运行时内存使用没有影响。紧凑压缩 纹理可能需要很长时间来压缩,但运行时的解压缩速度相当快。您可以调整紧凑压缩的有损程度,以在文件大小和质量之间取得平衡。 Unity的各种纹理压缩格式信息 参考网页 聊聊 Unity 的 Alpha Is Transparency 有什么用 What does the “alpha is transparency” setting actually do? 光照贴图的中的编码格式

从半透明模型的描边到URP Multipass Rendering

请尊重原作者的工作,转载时请务必注明转载自:www.xionggf.com 卡通渲染技术中,描边的实现的有多种做法,有基于后处理实现,也有基于非后处理,通过多次绘制模型的方法实现。 通过多次绘制模型的实现,方法无非就是: 绘制模型本体,同时写入深度值。 让模型顶点沿着法线外扩一定的偏移量,即让模型膨胀一些 全用描边的颜色绘制膨胀过的模型,且,在绘制时,使用cull front,即只绘制模型的背向摄像机面。在第1步中因为绘制模型本体时已经写入深度值。在本步骤中只要不改变深度测试函数的方式,那么除了膨胀部分之外,是无法写入像素的,能写入的部分,便形成了边缘。 上述的方式,一般应用于不透明的材质上。如果是半透明的材质的话就有问题,因为在第1步绘制半透明材质时,一般是不写入深度值的。那么第3步在绘制膨胀模型时,模型背部的地方就会被绘制上去。 解决这个问题有很多,可以利用stencil test的方式。也可以在第一步绘制,不绘制任何颜色,只写入深度,然后再绘制模型,最后再绘制描边。后一种方法,如果用Unity内置管线,大约就是这个样子: Shader "Unlit/半透明" { Properties { _Diffuse("Diffuse",Color) = (1,1,1,1) // 漫反射 _MainTex("MainTex",2D) = "white"{} // 2D纹理贴图 _AlphaScale("Alpha Scale",Range(0,1)) = 1 // 控制Alpha参数 } SubShader { Tags { "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" } //渲染顺序设置Transparent LOD 100 // 用两个pass通道来处理,防止出现渲染错误,第一个pass通道 // 每个pass通道都会渲染一次 Pass { ZWrite On // 注意这里:写入深度 为了确认渲染顺序 ColorMask 0 // 掩码遮罩代表这个pass通道不写入任何颜色值 } Pass // 第二个pass通道 { Tags{"LightMode" = "ForwardBase"} ZWrite Off // 注意这里:关闭ZWrite(深度写入) Blend SrcAlpha OneMinusSrcAlpha // 源颜色因子 正常透明混合 CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.