3DText

From Unify Community Wiki
(Difference between revisions)
Jump to: navigation, search
(changed ZWrite to Off to avoid ugly scissoring issue where letters overlap)
m (Text replace - "<shaderlab>" to "<syntaxhighlight lang="shaderlab">")
Line 11: Line 11:
  
 
==ShaderLab - 3DText.shader==
 
==ShaderLab - 3DText.shader==
<shaderlab>Shader "GUI/3D Text Shader" {  
+
<syntaxhighlight lang="shaderlab">Shader "GUI/3D Text Shader" {  
 
Properties {  
 
Properties {  
 
   _MainTex ("Font Texture", 2D) = "white" {}  
 
   _MainTex ("Font Texture", 2D) = "white" {}  

Revision as of 21:54, 17 January 2012

Author: Eric Haines (Eric5h5)

Description

When using 3D text, the default shader is the same one used for GUIText, which makes the 3D text always appear on top of objects. This is frequently not what you want when using 3D text, so this 3DText shader makes it behave properly.

3DText.png

Usage

Place this shader somewhere in your Assets folder hierarchy. Then, replace the font material on the mesh renderer of the 3D text with a different material that uses this shader (and the appropriate font texture of course—this won't work for the built-in font because the font texture for that is not available). Also make sure the 3DText object is using the same font that was used to generate the font texture.

ShaderLab - 3DText.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 "GUI/3D Text Shader" { 
Properties { 
   _MainTex ("Font Texture", 2D) = "white" {} 
   _Color ("Text Color", Color) = (1,1,1,1) 
} 

SubShader { 
   Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } 
   Lighting Off Cull Off ZWrite Off Fog { Mode Off } 
   Blend SrcAlpha OneMinusSrcAlpha 
   Pass { 
      Color [_Color] 
      SetTexture [_MainTex] { 
         combine primary, texture * primary 
      } 
   } 
} 
}
</shaderlab>

----

Creating the shader above is step 1.  I've added the other steps with some visuals.
-DaevFinn  June 2, 2010

First make the new Material and assign the Shader you made in Step 1.

[[Image:Step2_makeNEW_MATERIAL.jpg]]
[[Image:Step3_assign_3D_TEXT_SHADE.jpg]]

Then Assign the Font Texture you wish to use on this FONT_3D_MTL.

[[Image:Step4A_assign_FONT_TEXTURE.jpg]]
[[Image:Step4B_assign_FONT_TEXTURE.jpg]]

Then Choose your 3D_TEXT that you wish to be occluded.  Assign the FONT_3D_MTL to the Mesh Renderer portion.

[[Image:Step5A_ASSIGN_FONT_MTL.jpg]]
[[Image:Step5B_ASSIGN_FONT_MTL.jpg]]

Finally, assign the FONT you want to use, I'm using MS_PGOTHIC here, to the FONT in the Text Mesh portion of your 3D_text.
This should do it.

[[Image:Step6_ASSIGN_CHANGE_FONT.jpg]]
Personal tools
Namespaces

Variants
Actions
Navigation
Extras
Toolbox