Texture Combiner

Texture Combiner

  After the basic vertex lighting has been calculated, textures are applied. In ShaderLab this is done using SetTexture command.

  SetTexture commands have no effect when fragment programs are used; as in that case pixel operations are completely described in the shader.

  

  Texturing is the place to do old-style combiner effects. You can have multiple SetTexture commands inside a pass - all textures are applied in sequence, like layers in a painting program. SetTexture commands must be placed at the end of a Pass.

[三种命令]

1、combine命令

  

2、constantColor命令

  ConstantColor color

Defines a constant color that can be used in the combine command.

3、matrix命令

  matrix [MatrixPropertyName]Transforms texture coordinates used in this command with the given matrix.

[Separate Alpha & Color computation]

  

[Specular highlight]

  By default the primary color is the sum of the diffuse, ambient and specular colors (as defined in the Lighting calculation). If you specify SeparateSpecular On in the pass options, the specular color will be added in after the combiner calculation, rather than before. This is the default behavior of the built-in VertexLit shader.

[Examples]

1、Alpha Blending Two Textures

  This small examples takes two textures. First it sets the first combiner to just take the _MainTex, then is uses the alpha channel of _BlendTex to fade in the RGB colors of _BlendTex。  

Shader "Examples/2 Alpha Blended Textures" {
    Properties {
        _MainTex ("Base (RGB)", 2D) = "white" {}
        _BlendTex ("Alpha Blended (RGBA) ", 2D) = "white" {}
    }
    SubShader {
        Pass {
            // Apply base texture
            SetTexture [_MainTex] {
                combine texture
            }
            // Blend in the alpha texture using the lerp operator
            SetTexture [_BlendTex] {
                combine texture lerp (texture) previous
            }
        }
    }
} 

2、Alpha Controlled Self-illumination

  This shader uses the alpha component of the _MainTex to decide where to apply lighting. It does this by applying the texture to two stages; In the first stage, the alpha value of the texture is used to blend between the vertex color and solid white. In the second stage, the RGB values of the texture are multiplied in.

Shader "Examples/Self-Illumination" {
    Properties {
        _MainTex ("Base (RGB) Self-Illumination (A)", 2D) = "white" {}
    }
    SubShader {
        Pass {
            // Set up basic white vertex lighting
            Material {
                Diffuse (1,1,1,1)
                Ambient (1,1,1,1)
            }
            Lighting On

            // Use texture alpha to blend up to white (= full illumination)
            SetTexture [_MainTex] {
                constantColor (1,1,1,1)
                combine constant lerp(texture) previous
            }
            // Multiply in texture
            SetTexture [_MainTex] {
                combine previous * texture
            }
        }
    }
} 

参考:file://localhost/Applications/Unity/Unity.app/Contents/Documentation/Documentation/Components/SL-SetTexture.html

Texture Combiner

时间: 2024-10-07 14:46:40

Texture Combiner的相关文章

【Paper Reading】Improved Textured Networks: Maximizing quality and diversity in Feed-Forward Stylization and Texture Synthesis

Improved Textured Networks: Maximizing quality and diversity in Feed-Forward Stylization and Texture Synthesis https://arxiv.org/abs/1701.02096v1 本文最主要的贡献有两点: 1. 引入instance normalization 代替 batch normalization 2. 通过使得生产器从Julesz ensemble无偏采样来增加texture

DXVA2解码数据用texture纹理渲染

FFmpeg DXVA2解码得到的数据使用surface来承载的,surface限制很多,如果能用纹理来渲染的话,那我们就可以充分开发D3D,比如可以用坐标变换来实现电子放大的功能,还可以用坐标变换来实现视频图像任意角度的旋转等功能.而对于我来说,最重要的是纹理渲染可以使得解码后的数据能够用像素着色器来做简单的视频图像处理,如果是用的是D3D11,对于更为复杂的视频图像处理算法也是有望可以用Compute Shader实现,以便充分利用显卡来加速和释放CPU. DXVA2解码数据用纹理渲染的方法

Partitioner和Combiner两个阶段

Partitioner编程 将有一些共同特性的数据,写入到同一个文件里. 排序和分组 在map和reduce阶段进行排序时,比较的是k2.v2是不参与排序比较的. 如果要想让v2也进行排序,需要把k2和v2组装成新的类,作为k2, 才能参与比较.如果想自定义排序规则,被排序的对象要实现 WritableComparable接口,在compareTo方法中实现排序规则, 然后将这个对象当做k2,即可完成排序分组时也是按照k2进行比较的. Combiners编程 1.每一个map会产生大量的输出,c

unity使用代码修改Texture属性,一键生成精灵

发下牢骚:unity基础组件不是我的强项,我主要做引擎和项目实战结合的,如何利用unity引擎去高效的实现游戏的功能是我主要的研究方向. 可是就职后一直做UI,调组件,摆布局,不开森,不开森! 今天阿亮给大家分享的是一个小工具,自己写的.因为公司的UI比较丰富,各种底图什么的都非常多.为了不让图片资源重复等原因,要求导入图片 时需要一张一张的从美工资源那边拿,一张一张的比对后才能添加到项目中.然后按照惯例,对图片进行修改,做成精灵. 图片添加到项目资源默认是这样的, 要求的属性设置是这样的: 如

跨平台渲染框架尝试 - Texture管理

纹理是渲染器重要的资源,也是比较简单的资源.本文将详细讨论纹理资源的管理. 在资源管理概述中提到,资源就是一堆内存和CPU与GPU的访问权限.纹理管理在资源管理之上,要负责如何使用者一堆内存构造纹理对象,并告诉渲染器如何使用平台相关的纹理对象.下面,我们开始详细论述. 1. 纹理资源 首先纹理资源是GPU可以使用到的资源.它与Buffer资源不同的地方在于,相邻像素的插值计算中,纹理比Buffer简单并快得多,因为有相应的硬件实现.纹理资源字面意义上就像是一张像素图,但它不仅限于二维的像素的图,

Unity使用 16bit 压缩 Texture 颜色能均匀过渡

下面是unity自带 16bit 图 的效果,可以看到颜色过度的很不均匀,占用内存 0.5M    如果调成 truecolor 后 颜色过渡很均匀,而内存却占到 1.1 M    讲图片 后缀名改成  .Dither.png  结尾后回到 unity,设置贴图格式为 Truecolor 后,颜色过渡也很均匀,而且内存只占了 0.5M 以下代码来至 keijiro 的 github:unity-dither4444 1 using UnityEngine; 2 using UnityEditor

MapReduce之Combiner组件

简述 Combiner的作用是把一个map产生的多个<KEY,VALUE>合并成一个新的<KEY,VALUE>,然后再将新<KEY,VALUE>的作为reduce的输入: 在map函数与reduce函数之间多了一个combine函数,目的是为了减少map输出的中间结果,这样减少了reduce复制map输出的数据,减少网络传输负载: 并不是所有情况下都能使用Combiner,Combiner适用于对记录汇总的场景(如求和),但是,求平均数的场景就不能使用Combiner了

texture+depth 源文件下载 (视点&gt; 3)

做背景建模3视点的文件效果不好,所以找了半天文件.就找到两个,贴在下面. 下载地址: depth: http://www.tanimoto.nuee.nagoya-u.ac.jp/mpeg/depth_exhibition.htm texture:http://www.tanimoto.nuee.nagoya-u.ac.jp/mpeg/file/akko_and_kayo_cam.html              http://www.tanimoto.nuee.nagoya-u.ac.jp/

hadoop1中partition和combiner作用

---恢复内容开始--- 1.解析Partiton 把map任务的输出的中间结果按照key的范围进行划分成r份,r代表reduce任务的个数.hadoop默认有个类HashPartition实现分区,通过key对reduce的个数取模(key%r),这样可以保证一段范围内的key交由一个reduce处理.以此来实现reduce的负载均衡.不至于使有些reduce处理的任务压力过大,有些reduce空闲. 如果我们对hadoop本身的分区算法不满意,或者我们因为我们的业务需求,我们可以自定义一个类