VegetationTwoPass

From Unify Community Wiki
Jump to: navigation, search

Author: Nicholas Francis

Description

This shader will renders two passes, One doing Cut off, and a second where it renders semitransparent details.

Usage

Place this shader somewhere in your Assets folder hierarchy. Then, use it on any object where you want Culling off and alpha textures.

ShaderLab - VegetationTwoPass.shader

Invalid language.

You need to specify a language like this: <source lang="html4strict">...</source>

Supported languages for syntax highlighting:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, oobas, oracle11, oracle8, oxygene, oz, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, python, q, qbasic, rails, rebol, reg, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, uscript, vala, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


 Shader "Nature/Vegetation Two Pass" {
         Properties {
                 _Color ("Main Color", Color) = (.5, .5, .5, .5)
                 _MainTex ("Base (RGB) Alpha (A)", 2D) = "white" {}
                 _Cutoff ("Base Alpha cutoff", Range (0,.9)) = .5
         }
         SubShader {
                 // Set up basic lighting
                 Material {
                         Diffuse [_Color]
                         Ambient [_Color]
                 }       
                 Lighting On
 
                 // Render both front and back facing polygons.
                 Cull Off
 
                 // first pass:
                 //   render any pixels that are more than [_Cutoff] opaque
                 Pass {  
                         AlphaTest Greater [_Cutoff]
                         SetTexture [_MainTex] {
                                 combine texture * primary, texture
                         }
                 }
 
                 // Second pass:
                 //   render in the semitransparent details.
                 Pass {
                         // Dont write to the depth buffer
                         ZWrite off
                         
                         // Only render pixels less or equal to the value
                         AlphaTest LEqual [_Cutoff]
                         
                         // Set up alpha blending
                         Blend SrcAlpha OneMinusSrcAlpha
 
                         SetTexture [_MainTex] {
                                 combine texture * primary, texture
                         }
                 }
         }
 }
Personal tools
Namespaces

Variants
Actions
Navigation
Extras
Tools