<?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; cuda</title>
	<atom:link href="http://www.visual-experiments.com/tag/cuda/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::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>
		<item>
		<title>Cuda integration with Ogre3D</title>
		<link>http://www.visual-experiments.com/2010/04/26/cuda-integration-with-ogre3d/</link>
		<comments>http://www.visual-experiments.com/2010/04/26/cuda-integration-with-ogre3d/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 07:17:57 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[ogre3d]]></category>
		<category><![CDATA[cuda]]></category>
		<category><![CDATA[nvidia]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=85</guid>
		<description><![CDATA[If you already start to play with Cuda you know that graphic interop is not an easy task. Indeed you need to register graphic ressources using different methods accordings to the Ogre::RenderSytem (DX9, DX10, GL). As Ogre3D main objective is to hide DirectX and OpenGL &#8220;specificities&#8221;,  I have decided to create a tiny lib for Ogre3D [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.visual-experiments.com/blog/wp-content/uploads/2010/03/nvidia-cuda.jpg"><img class="alignleft size-full wp-image-86" title="nvidia cuda" src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/03/nvidia-cuda.jpg" alt="" width="130" height="79" /></a>If you already start to play with Cuda you know that graphic interop is not an easy task. Indeed you need to register graphic ressources using different methods accordings to the Ogre::RenderSytem (DX9, DX10, GL). As Ogre3D main objective is to hide DirectX and OpenGL &#8220;specificities&#8221;,  I have decided to create a tiny lib for Ogre3D to help registering and mapping ressources for Cuda. This tiny lib, named <a href="http://www.visual-experiments.com/demos/ogrecuda/">Ogre::Cuda</a>, helps registering Ogre::Texture and Ogre::HardwareVertexBuffer for Cuda.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="290" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/0KkB38CB3vY&amp;hl=fr_FR&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="290" src="http://www.youtube.com/v/0KkB38CB3vY&amp;hl=fr_FR&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>This video is just a very basic example showing an integration of two Cuda samples inside Ogre3D. The vertex buffer and the 2D texture cuda kernels are part of the Nvidia GPU Computing SDK.</p>
<p>This library is in beta stage, there is still room for improvement, but the base are settled for a cross-platform and cross-graphics API way to use Cuda thanks to Ogre3D.</p>
<p>Source code and binary demo available on the <a href="http://www.visual-experiments.com/demos/ogrecuda/">demo page</a>.</p>
<h3>Utilisation example :</h3>
<pre class="brush: cpp; title: ;">
Ogre::TexturePtr texture;
Ogre::Cuda::Root* mCudaRoot = Ogre::Cuda::Root::createRoot(renderWindow, renderSystem);
mCudaRoot-&gt;init();
Ogre::Cuda::Texture* mCudaTex;
mCudaTex = mCudaRoot-&gt;getTextureManager()-&gt;createTexture(texture);
//init
mCudaTex-&gt;registerForCudaUse();
//on each Cuda update
mCudaTex-&gt;map();
Ogre::Cuda::TextureDeviceHandle textureHandle;
textureHandle = mCudaTex-&gt;getDeviceHandle(0, 0);
cudaFunction(textureHandle-&gt;getPointer());
mCudaTex-&gt;update(textureHandle); //reflect changes to the Ogre::Texture
mCudaTex-&gt;unmap();
//shutdown
mCudaTex-&gt;unregister();
mCudaRoot-&gt;shutdown();
</pre>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2010%2F04%2F26%2Fcuda-integration-with-ogre3d%2F&amp;title=Cuda%20integration%20with%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/04/26/cuda-integration-with-ogre3d/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
