<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>V // Pixelnerve &#187; text</title>
	<atom:link href="http://www.pixelnerve.com/v/tag/text/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pixelnerve.com/v</link>
	<description></description>
	<lastBuildDate>Thu, 29 Jul 2010 13:47:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Text render for java/processing using opengl</title>
		<link>http://www.pixelnerve.com/v/2009/03/08/text-render-for-javaprocessing-using-opengl/</link>
		<comments>http://www.pixelnerve.com/v/2009/03/08/text-render-for-javaprocessing-using-opengl/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 10:05:39 +0000</pubDate>
		<dc:creator>victormartins</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[Sound]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[text]]></category>

		<guid isPermaLink="false">http://www.pixelnerve.com/v/?p=330</guid>
		<description><![CDATA[I found out a nice way to write text in Processing with java+opengl.  It easily renders 2d and 3d text. It should be also easy to draw billboard text in 3d space. Here is the source code and an example on how to use it in processing: import java.text.*; import com.sun.opengl.util.*; import com.sun.opengl.util.j2d.*; class VTextRenderer [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">I found out a nice way to write text in <a href="http://www.processing.org" target="_blank">Processing</a> with java+opengl.  It easily renders 2d and 3d text. It should be also easy to draw billboard text in 3d space. Here is the source code and an example on how to use it in processing:</p>
<p><quickcode:Click to open source code><br />
import java.text.*;<br />
import com.sun.opengl.util.*;<br />
import com.sun.opengl.util.j2d.*;</p>
<p>class VTextRenderer<br />
{<br />
VTextRenderer( String fontName, int size )<br />
{<br />
_fontName = fontName;<br />
_fontSize = size;<br />
_textRender = new TextRenderer( new Font(fontName, Font.TRUETYPE_FONT, size), true, true, null, true );<br />
_textRender.setColor( 1.0f, 1.0, 1.0, 1.0 );<br />
//_textRender.setUseVertexArrays( true );<br />
}</p>
<p>VTextRenderer( String fontName, int size, boolean antialiased, boolean mipmap )<br />
{<br />
_fontName = fontName;<br />
_fontSize = size;<br />
_textRender = new TextRenderer( new Font(fontName, Font.TRUETYPE_FONT, size), antialiased, true, null, mipmap );<br />
_textRender.setColor( 1.0f, 1.0, 1.0, 1.0 );<br />
//_textRender.setUseVertexArrays( true );<br />
}</p>
<p>void print( String str, int x, int y )<br />
{<br />
_textRender.beginRendering( width, height, true );<br />
_textRender.draw( str, x, y );<br />
_textRender.endRendering();<br />
_textRender.flush();<br />
}</p>
<p>void print( String str, float x, float y, float z )<br />
{<br />
print( str, x, y, z, 1.0f );<br />
}</p>
<p>void print( String str, float x, float y, float z, float s )<br />
{<br />
_textRender.begin3DRendering();<br />
_textRender.draw3D( str, x, y, z, s );<br />
_textRender.end3DRendering();<br />
_textRender.flush();<br />
}</p>
<p>void setColor( float c )<br />
{<br />
setColor( c, c, c, 1 );<br />
}</p>
<p>void setColor( float c, float a )<br />
{<br />
setColor( c, c, c, a );<br />
}</p>
<p>void setColor( float r, float g, float b )<br />
{<br />
setColor( r, g, b, 1 );<br />
}</p>
<p>void setColor( float r, float g, float b, float a )<br />
{<br />
_textRender.setColor( r, g, b, a );<br />
}</p>
<p>void setSmoothing( boolean flag )<br />
{<br />
_textRender.setSmoothing( flag );<br />
}</p>
<p>/// ____________________________________________________<br />
/// Members<br />
int _w, _h;</p>
<p>String _fontName;<br />
int _fontSize;<br />
TextRenderer _textRender;<br />
Font font;<br />
}<br />
</quickcode></p>
<p><quickcode:Click to open example><br />
import processing.opengl.*;</p>
<p>int WIDTH = 800;<br />
int HEIGHT = 600;<br />
float aspectRatio = WIDTH/(float)HEIGHT;</p>
<p>VTextRenderer textRender;</p>
<p>///___________________________________________________________<br />
void setup()<br />
{<br />
size( WIDTH, HEIGHT, OPENGL );<br />
hint( ENABLE_OPENGL_4X_SMOOTH );<br />
frameRate( 60 );</p>
<p>//  logger = new VLog( this, &#8220;log.txt&#8221; );</p>
<p>aspectRatio = width/(float)height;</p>
<p>//textRender = new VTextRenderer( &#8220;Arial&#8221;, 100 );<br />
textRender = new VTextRenderer( &#8220;Arial&#8221;, 100, true, true );<br />
}</p>
<p>///___________________________________________________________<br />
void draw()<br />
{<br />
// Write in 2d<br />
background( 0 );<br />
textRender.print( &#8220;vitamin&#8221;, 0, 100 );</p>
<p>// Write in 3d<br />
perspective( PI*0.25,  aspectRatio, 1, 1000 );<br />
camera( 0, 0, 100, 0, 0, 0, 0, 1, 0 );<br />
scale( 1, -1, 1 );  // oh well. processing likes the upside down way, i dont know why.<br />
((PGraphicsOpenGL)g).beginGL();<br />
textRender.print( &#8220;vitamin&#8221;, 0, 0, sin(millis()*0.001)*100, 1/10.0 );<br />
((PGraphicsOpenGL)g).endGL();<br />
}</p>
<p>///___________________________________________________________<br />
void stop()<br />
{<br />
super.stop();<br />
}<br />
</quickcode></p>
<script type="text/javascript">
var flattr_wp_ver = '0.9.11';
var flattr_uid = 'pixelnerve';
var flattr_url = 'http://www.pixelnerve.com/v';
var flattr_lng = 'en_GB';
var flattr_cat = 'video';
var flattr_tag = 'blog,wordpress,rss,feed';
var flattr_btn = 'large';
var flattr_tle = 'V // Pixelnerve';
var flattr_dsc = '';
</script>
<script src="http://api.flattr.com/button/load.js?v=0.2" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.pixelnerve.com/v/2009/03/08/text-render-for-javaprocessing-using-opengl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
