一个是内存,例如A8R8G8B8格式中一个像素占4字节,如果是512x512分辨率内存就占用512x512x4 B=1048576 B=1 MB,这种内存消耗在低端设备上根本无法接受。 另一个重要的是数据传输时的带宽,带宽是发热的元凶,在渲染3D场景时,会有大量的贴图被传输到GPU,若不限制,总线带宽很快就会成为瓶颈,手机秒变暖手宝,严重的...
实际上Unity中srgb的Texture,无论是通过纹理导入设置里设置还是在代码里设置,在底层都是做了一步纹理格式的转换,把其Format从LinearFormat转换成SRGB的Format(如果当前工作空间是线性空间),例如 `R8G8B8A8_UNORM -> R8G8B8A8_SRGB`。 这些GraphicsFormat都是Unity上层的封装,对应到了底层API层的ResourceFormat,例如...
R8G8B8A8_SRGB; s_FalloffLookupTexture = new Texture2D((int)WIDTH, (int)HEIGHT-64, textureFormat, TextureCreationFlags.None); s_FalloffLookupTexture.filterMode = FilterMode.Bilinear; s_FalloffLookupTexture.wrapMode = TextureWrapMode.Clamp; if (s_FalloffLookupTexture != null) { for(int y...
using UnityEngine; using UnityEngine.Experimental.Rendering; public class ExampleScript :MonoBehaviour{ TextureCreationFlags flags; void Start() { // Create a new texture and assign it to the material of the renderer. var texture = newTexture2D(128, 128,GraphicsFormat.R8G8B8A8_SRGB, flags); ...
GetLinearFormat返回 GraphicsFormat 的等效线性格式。例如,如果输入为 kFormatR8G8B8A8_SRGB,则该函数返回 kFormatR8G8B8A8_UNorm。如果输入 GraphicsFormat 已经是线性的,则该函数返回输入 GraphicsFormat。 GetRenderTextureFormat将 GraphicsFormat 转换为 RenderTextureFormat。
gamma correction的dcc设置 ps在线性空间下工作 blend的时候颜色设置 勾选用灰度系数混合rgb 1.0 这样就是在线性空间下工作了 这样素材在数学上是正确的 r8g8b8a8格式需要这个 float不需要 http://forum.china.unity3d.com/thread-32341-1-1.html unity的UI是在线性空间做的 之后pow0.45的这是一种正确的流程 ...
1、申请一个线性空间的rt,r8g8b8a8_unorm的rendertexture作为ui相机的RT 2、将所有导出的sRGB的图都不要勾选导入的sRGB,这样就会读取原值,而不用转换 3、进行正常的ui渲染及混合,也就是使用公式2 4、等全部ui渲染完毕,将这个rt先 rt.rgb ^ 2.2转化到线性空间,然后和主场景进行blend,这个结果会写到主场景相机...
using UnityEngine; using UnityEngine.Experimental.Rendering; public class ExampleScript :MonoBehaviour{ TextureCreationFlags flags; void Start() { // Create a new texture and assign it to the material of the renderer. var texture = newTexture2D(128, 128,GraphicsFormat.R8G8B8A8_SRGB, flags)...
FrameDebugger 都可以看到渲染使用都是 RT 中制定的graphicsFormat(这里是设置R16G16B16A16_SFloat为例) 这时,如果我们使用 Post-process Layer 和 Post-process Volume 组件,就会导致Camera.TargetTexture被偷梁换柱,如下图 这种的话,RTR8G8B8A8_SRGB渲染出来的话 LDR 色值 ...
gamma correction的dcc设置 ps在线性空间下工作 blend的时候颜色设置 勾选用灰度系数混合rgb 1.0 这样就是在线性空间下工作了 这样素材在数学上是正确的 r8g8b8a8格式需要这个 float不需要 http://forum.china.unity3d.com/thre