<?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>Visual-Experiments.com &#187; canvas</title>
	<atom:link href="http://www.visual-experiments.com/tag/canvas/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.visual-experiments.com</link>
	<description>ASTRE Henri experiments with Ogre3D and web stuff</description>
	<lastBuildDate>Mon, 16 Jan 2017 18:59:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>2010 visual experiments</title>
		<link>http://www.visual-experiments.com/2011/01/07/2010-visual-experiments/</link>
		<comments>http://www.visual-experiments.com/2011/01/07/2010-visual-experiments/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 16:01:17 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[augmented reality]]></category>
		<category><![CDATA[ogre3d]]></category>
		<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[artoolkit]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[cuda]]></category>
		<category><![CDATA[gpusurf]]></category>
		<category><![CDATA[opencl]]></category>
		<category><![CDATA[visual experiments]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=1254</guid>
		<description><![CDATA[Happy new year everyone! 2010 was a year full of visual experiments for me, I hope that you like what you see on this blog. In this post I&#8217;m making a little overview of all visual experiments created by me during this year. This is an opportunity to catch-up something you&#8217;ve missed! I&#8217;d like also [...]]]></description>
			<content:encoded><![CDATA[<h3>Happy new year everyone!</h3>
<p>2010 was a year full of <a href="http://www.visual-experiments.com/">visual experiments</a> for <a href="http://www.visual-experiments.com/about/resume-english/">me</a>, I hope that you like what you see on this blog. In this post I&#8217;m making a little overview of all visual experiments created by me during this year. This is an opportunity to catch-up something you&#8217;ve missed! I&#8217;d like also to thanks some person that have been helping me too: </p>
<ul style="margin-left: 20px;">
<li><strong>Olafur Haraldsson:</strong> for creating <a href="http://www.pgrammetry.com/">the photogrammetry forum</a></li>
<li><strong>Josh Harle:</strong> for his videos tutorials and <a href="http://blog.neonascent.net/">his nice blog</a></li>
<li><strong>You:</strong> for reading this <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ul>
<h3>Visual experiments created in 2010:</h3>
<p>During this year I have added some features to <strong>Ogre3D</strong>: </p>
<ul style="margin-left: 20px;">
<li><a href="http://www.visual-experiments.com/demos/artoolkitplus-for-ogre3d/">ArToolKitPlus</a>: augmented reality marker-based system</li>
<li><a href="http://www.visual-experiments.com/demos/ogrecuda/">Cuda</a>: for beginner only (at least advanced user could grab some useful code)</li>
<li><a href="http://www.visual-experiments.com/demos/ogreopencl/">OpenCL</a>: for beginner only (at least advanced user could grab some useful code)</li>
<li><a href="http://www.visual-experiments.com/demos/ogrecanvas/">Html5 Canvas</a>: implementation based on <a href="http://code.google.com/p/skia/">skia</a> for graphics and <a href="http://code.google.com/p/v8/">V8</a> for javascript scripting</li>
<li><a href="http://www.visual-experiments.com/2010/11/20/kinect-experiment-with-ogre3d/">Kinect</a>: this is a very hacky solution, I&#8217;ll improve it later</li>
</ul>
<p>I also have learned <strong>GPGPU programming</strong> by myself while coding a partial <a href="http://www.visual-experiments.com/demos/gpusurf/">GPUSurf</a> implementation based on Nico Cornelis paper. But this implementation is not complete and I&#8217;m willing to rewrite it with a GPGPU framework based on OpenGL and CG only (not Ogre3D). With such a framework writing Sift/Surf detector should be easier and more efficient.</p>
<p>I have created some visual experiments related to <strong>Augmented Reality</strong>:</p>
<ul style="margin-left: 20px;">
<li><a href="http://www.visual-experiments.com/2010/07/11/remote-augmented-reality-prototype/">Remote AR prototype</a></li>
<li><a href="http://www.visual-experiments.com/2010/12/13/augmented-reality-outdoor-tracking-becoming-reality/">Outdoor 3D tracking using point cloud generated by structure from motion software</a></li>
<li><a href="http://www.visual-experiments.com/2010/12/22/outdoor-tracking-using-panoramic-image/">Outdoor 2D tracking using panorama image</a></li>
</ul>
<p>My outdoor 3D tracking algorithm for augmented reality needs an accurate point cloud: this is why I&#8217;m interested in <strong>structure from motion</strong> and I&#8217;ve created two SfM toolkit:</p>
<ul style="margin-left: 20px;">
<li><a href="http://www.visual-experiments.com/sfmtoolkit/">SFMToolkit</a> (SiftGPU -> Bundler -> CMVS -> PMVS2)</li>
<li><a href="http://www.visual-experiments.com/photosynthtoolkit/">PhotoSynthToolkit</a> (PhotoSynth -> PMVS2)</li>
</ul>
<h3>Posts published in 2010:</h3>
<ul style="margin-left: 20px;">
<li>2010/12/22: <a href="http://www.visual-experiments.com/2010/12/22/outdoor-tracking-using-panoramic-image/">Outdoor tracking using panoramic image</a></li>
<li>2010/12/20: <a href="http://www.visual-experiments.com/2010/12/20/structure-from-motion-projects/">Structure from motion projects</a></li>
<li>2010/12/13: <a href="http://www.visual-experiments.com/2010/12/13/augmented-reality-outdoor-tracking-becoming-reality/">Augmented Reality outdoor tracking becoming reality</a></li>
<li>2010/11/20: <a href="http://www.visual-experiments.com/2010/11/20/kinect-experiment-with-ogre3d/">Kinect experiment with Ogre3D</a></li>
<li>2010/11/19: <a href="http://www.visual-experiments.com/2010/11/19/photosynthtoolkit-results/">PhotoSynthToolkit results</a></li>
<li>2010/11/09: <a href="http://www.visual-experiments.com/2010/11/09/photosynth-toolkit-updated/">PhotoSynth Toolkit updated</a></li>
<li>2010/11/05: <a href="http://www.visual-experiments.com/2010/11/05/structure-from-motion-toolkit-released/">Structure From Motion Toolkit released</a></li>
<li>2010/09/27: <a href="http://www.visual-experiments.com/2010/09/27/my-5-years-old-quiksee-competitor/">My 5 years old Quiksee competitor</a></li>
<li>2010/09/23: <a href="http://www.visual-experiments.com/2010/09/23/pmvs2-x64-and-videos-tutorials/">PMVS2 x64 and videos tutorials</a></li>
<li>2010/09/08: <a href="http://www.visual-experiments.com/2010/09/08/introducing-opensynther/">Introducing OpenSynther</a></li>
<li>2010/08/22: <a href="http://www.visual-experiments.com/2010/08/22/dense-point-cloud-created-with-photosyth-and-pmvs2/">Dense point cloud created with PhotoSynth and PMVS2</a></li>
<li>2010/08/19: <a href="http://www.visual-experiments.com/2010/08/19/my-photosynth-toolkit/">My PhotoSynth ToolKit</a></li>
<li>2010/07/12: <a href="http://www.visual-experiments.com/2010/07/12/pose-estimation-using-sfm-point-cloud/">Pose Estimation using SfM point cloud</a></li>
<li>2010/07/11: <a href="http://www.visual-experiments.com/2010/07/11/remote-augmented-reality-prototype/">Remote Augmented Reality Prototype</a></li>
<li>2010/07/08: <a href="http://www.visual-experiments.com/2010/07/08/structure-from-motion-experiment/">Structure From Motion Experiment</a></li>
<li>2010/06/25: <a href="http://www.visual-experiments.com/2010/06/25/gpu-surf-video-demo/">GPU-Surf video demo</a></li>
<li>2010/06/23: <a href="http://www.visual-experiments.com/2010/06/23/gpusurf-and-ogregpgpu/">GPUSurf and Ogre::GPGPU</a></li>
<li>2010/06/20: <a href="http://www.visual-experiments.com/2010/06/20/ogrecanvas-a-2d-api-for-ogre3d/">Ogre::Canvas, a 2D API for Ogre3D</a></li>
<li>2010/05/09: <a href="http://www.visual-experiments.com/2010/05/09/ogreopencl-and-ogrecanvas/">Ogre::OpenCL and Ogre::Canvas</a></li>
<li>2010/04/26: <a href="http://www.visual-experiments.com/2010/04/26/cuda-integration-with-ogre3d/">Cuda integration with Ogre3D</a></li>
<li>2010/04/09: <a href="http://www.visual-experiments.com/2010/04/09/multitouch-prototype-done-using-awesomium-and-ogre3d/">Multitouch prototype done using Awesomium and Ogre3D</a></li>
<li>2010/03/05: <a href="http://www.visual-experiments.com/2010/03/05/artoolkitplus-integration-with-ogre3d/">ArToolKitPlus integration with Ogre3D</a></li>
<li>2010/02/20: <a href="http://www.visual-experiments.com/2010/02/20/hello-world/">Hello World !</a></li>
</ul>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2011%2F01%2F07%2F2010-visual-experiments%2F&amp;title=2010%20visual%20experiments"><img src="http://www.visual-experiments.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.visual-experiments.com/2011/01/07/2010-visual-experiments/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Ogre::Canvas, a 2D API for Ogre3D</title>
		<link>http://www.visual-experiments.com/2010/06/20/ogrecanvas-a-2d-api-for-ogre3d/</link>
		<comments>http://www.visual-experiments.com/2010/06/20/ogrecanvas-a-2d-api-for-ogre3d/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 13:00:33 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[ogre3d]]></category>
		<category><![CDATA[canvas]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=381</guid>
		<description><![CDATA[In my previous post I have announced]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://www.visual-experiments.com/2010/05/09/ogreopencl-and-ogrecanvas/">previous post</a> I have announced <a href=''http://www.visual-experiments.com/demos/ogrecanvas/">Ogre::Canvas</a> but It wasn&#8217;t available for download.<br />
Now I have released the source code of <a href="http://www.visual-experiments.com/demos/ogrecanvas/">Ogre::Canvas</a> and some demo.</p>
<h3>What is Ogre::Canvas ?</h3>
<p>It is a new 2D API for <a href="http://www.ogre3d.org/">Ogre3D</a> that is based on the Html5 <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html">Canvas specifications</a>. I have chosen this API because it is easy to understand, has a lot of <a href="http://www.canvasdemos.com/">cool demos</a>, and it&#8217;s easy to prototype in browser using javascript. But you could be asking: what the point of having fast prototyping in a web browser if you&#8217;ll have to translate everything in C++ ? This is why I have also implemented Ogre::CanvasV8: a javascript binding for Ogre::Canvas using <a href="http://code.google.com/p/v8/">V8</a> the javascript engine of Google Chrome. That means that your prototype written in javascript for a browser will run in Ogre::CanvasV8 (with minor tweaks). The three Canvas demos belows are all working using Ogre::CanvasV8, <a href="http://code.google.com/p/visual-experiments/downloads/list">grab OgreCanvasDemos1.zip</a> and try yourself !</p>
<table>
<tbody style="background-color: white">
<tr>
<td><a href="https://developer.mozilla.org/en/canvas_tutorial"><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/03/CanvasTest3.png" alt="" title="CanvasTest3" width="150" height="150" class="alignnone size-full wp-image-92" /></a></td>
<td><a href="https://developer.mozilla.org/en/Canvas_tutorial/Basic_animations#An_animation_example_2"><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/06/canvas.clocks.png" alt="" title="canvas.clocks" width="126" height="122" class="alignnone size-full wp-image-386" /></a></td>
<td><a href="http://www.benjoffe.com/code/demos/canvascape/"><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/06/canvas.canvascape.png" alt="" title="canvas.canvascape" width="150" height="113" class="alignnone size-full wp-image-385" /></a></td>
</tr>
<tr>
<td><a href="https://developer.mozilla.org/en/canvas_tutorial">Tutorials from MDC</a></td>
<td><a href="https://developer.mozilla.org/en/Canvas_tutorial/Basic_animations#An_animation_example_2">Clocks</a></td>
<td><a href="http://www.benjoffe.com/code/demos/canvascape/">Canvascape</a></td>
</tr>
</tbody>
</table>
<h3>What could I do with Ogre::Canvas ?</h3>
<p>Well, it&#8217;s a 2D API, so you get a context on which you can execute drawing calls:</p>
<ul>
<li><strong>Transformation:</strong> scale, rotate, &#8230;</li>
<li><strong>Image drawing:</strong> drawImage</li>
<li><strong>Line styles:</strong> lineWidth, lineCap, &#8230;</li>
<li><strong>Colors, styles and shadows:</strong> strokeStyle, fillStyle, &#8230;</li>
<li><strong>Paths:</strong> moveTo, lineTo, arc, &#8230;</li>
<li><strong>Text:</strong> fillText, strokeText, &#8230;</li>
<li>If you need a full overview of the Html5 Canvas API, grab the <a href="http://websitesetup.org/html-5-canvas-cheat-sheet/">excellent Cheat Sheet</a>.</li>
</ul>
<p>You could create really complex UI element using Canvas. If you need an example of what you could create using this, take a look at the timeline I have created for a <a href="http://www.visual-experiments.com/2010/04/09/multitouch-prototype-done-using-awesomium-and-ogre3d/">multitouch prototype</a>. In fact it is because I got poor performance using <a href="http://www.khrona.com/products/awesomium/">Awesomium</a> that I have decided to create this library. Awesomium is really a good product but integrating a full web page is overkill if you are only interested by a 2D Canvas tag&#8230;</p>
<h3>What is the development status ?</h3>
<p>It is not really &#8220;production ready&#8221;, I still have some issues with drawing images with alpha channels&#8230; You&#8217;ll get all information about license (MIT), svn repository and documentation on the <a href="http://www.visual-experiments.com/demos/ogrecanvas/">Ogre::Canvas page</a>.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2010%2F06%2F20%2Fogrecanvas-a-2d-api-for-ogre3d%2F&amp;title=Ogre%3A%3ACanvas%2C%20a%202D%20API%20for%20Ogre3D"><img src="http://www.visual-experiments.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.visual-experiments.com/2010/06/20/ogrecanvas-a-2d-api-for-ogre3d/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ogre::OpenCL and Ogre::Canvas</title>
		<link>http://www.visual-experiments.com/2010/05/09/ogreopencl-and-ogrecanvas/</link>
		<comments>http://www.visual-experiments.com/2010/05/09/ogreopencl-and-ogrecanvas/#comments</comments>
		<pubDate>Sun, 09 May 2010 21:55:05 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[ogre3d]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[cuda]]></category>
		<category><![CDATA[opencl]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=291</guid>
		<description><![CDATA[This is a short post to show stuff I&#8217;m working on. After announcing Ogre::Cuda to the Ogre Community I have realized that OpenCL could interest more people&#8230; Although I never get a chance to play with OpenCL I have created another library very similar to Ogre::Cuda but this time for OpenCL. Ogre::OpenCL is still in [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-267" title="opencl_logo" src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/05/opencl_logo.jpg" alt="" width="150" /></p>
<p>This is a short post to show stuff I&#8217;m working on. After <a href="http://www.ogre3d.org/forums/viewtopic.php?f=11&amp;t=57338">announcing Ogre::Cuda</a> to the Ogre Community I have realized that OpenCL could interest more people&#8230; Although I never get a chance to play with OpenCL I have created another library very similar to <a href="http://www.visual-experiments.com/demos/ogrecuda/">Ogre::Cuda</a> but this time for OpenCL. <a href="http://www.visual-experiments.com/demos/ogreopencl/">Ogre::OpenCL</a> is still in a very experimental stage but you can grab it from my google code or get more information from the <a href="http://www.visual-experiments.com/demos/ogreopencl/">demo page</a>. I&#8217;m also wondering if I could create another library that would help GPGPU in Ogre3D. Indeed GPGPU computation is not that easy to setup, you have to :</p>
<ul style="margin-left: 20px;">
<li> create RenderTarget texture</li>
<li>desactivate auto update on the render target</li>
<li>add a viewport with a camera</li>
<li>add a compositor to the viewport</li>
<li>add a listener to the compositor (optional)</li>
<li>manualy call update() to do the computation</li>
</ul>
<p>That&#8217;s why I was thinking in creating a library to do all this things in a more user friendly manner, will see &#8230;</p>
<div style="height: 30px"></div>
<p><a href="https://developer.mozilla.org/en/Canvas_tutorial/Applying_styles_and_colors#A_createLinearGradient_example"><img class="alignright size-full wp-image-93" title="CanvasTest1" src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/03/CanvasTest1.png" alt="" width="150" height="150" /></a>I also have decided to anounce <a href="http://www.visual-experiments.com/demos/ogrecanvas/">Ogre::Canvas</a>. This is my Html5 canvas API implementation for Ogre3D. In short, you get a Canvas context on which you can call standard 2D functions (lineTo, moveTo, fill, stroke, &#8230;) and once you want an update, the Canvas context is uploaded to an Ogre::Texture. Furthermore, I have implemented a Javascript binding using <a href="http://code.google.com/p/v8/">V8</a> that is identical to the Html5 Canvas specification. So the same javascript code used in browser can be executed by Ogre::Canvas (with minor tweaks). You&#8217;ll get more information on the <a href="http://www.visual-experiments.com/demos/ogrecanvas/">demo page</a>.</p>
<p>And I have finally managed to translate <a href="http://www.visual-experiments.com/about/resume-english/">my resume</a> in English.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2010%2F05%2F09%2Fogreopencl-and-ogrecanvas%2F&amp;title=Ogre%3A%3AOpenCL%20and%20Ogre%3A%3ACanvas"><img src="http://www.visual-experiments.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.visual-experiments.com/2010/05/09/ogreopencl-and-ogrecanvas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
