<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>WPF/3D</title>
        <link>http://www.kindohm.com/category/21.aspx</link>
        <description>WPF/3D</description>
        <language>en-US</language>
        <copyright>mike</copyright>
        <managingEditor>michael.hodnick@kindohm.com</managingEditor>
        <generator>Subtext Version 1.9.5.176</generator>
        <item>
            <title>DevConn Day 0 [pre-con] ARP302: How to create rich Silverlight applications</title>
            <link>http://kindohm.com/archive/2007/11/05/devconn-day-0-pre-con-arp302-how-to-create-rich-silverlight.aspx</link>
            <description>&lt;p&gt;I attended a pre-conference session on Silverlight almost immediately after getting off the plane.  Unfortunately it wasn't a very good session for me.  I'm finding that most Silverlight sessions are about XAML - not the fine details about Silverlight.  &lt;/p&gt; &lt;p&gt;This session covered the basics of setting up a Silverlight project in Visual Studio from scratch, which was good.  So far I've only seen Silverlight projects created from project templates.  I like being able to see stuff get set up without any smoke and mirrors and to see the raw code.  But after about 10 minutes of that, it was nothing but creating shapes and animations with XAML after that.  &lt;/p&gt; &lt;p&gt;I keep hearing that Silverlight is nothing more than a way to deliver XAML across multiple browsers and OS's, and I finally believe that that is &lt;strong&gt;&lt;em&gt;all&lt;/em&gt;&lt;/strong&gt; there is to Silverlight.  If you know WPF and a little bit of ASP .Net and Javascript, then I wouldn't recommend going to a Silverlight presentation.  &lt;/p&gt; &lt;div class="tags" id="0767317B-992E-4b12-91E0-4F059A8CECA8:510f2fff-f303-412a-8e7c-2eea15431ce1" contenteditable="false"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/silverlight%20devconn" target="_blank" rel="tag"&gt;silverlight devconn&lt;/a&gt;&lt;/div&gt;&lt;img src="http://kindohm.com/aggbug/2002.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>mike</dc:creator>
            <guid>http://kindohm.com/archive/2007/11/05/devconn-day-0-pre-con-arp302-how-to-create-rich-silverlight.aspx</guid>
            <pubDate>Tue, 06 Nov 2007 01:02:59 GMT</pubDate>
            <wfw:comment>http://kindohm.com/comments/2002.aspx</wfw:comment>
            <comments>http://kindohm.com/archive/2007/11/05/devconn-day-0-pre-con-arp302-how-to-create-rich-silverlight.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://kindohm.com/comments/commentRss/2002.aspx</wfw:commentRss>
        </item>
        <item>
            <title>SharePoint Search Bench Initial Release</title>
            <link>http://kindohm.com/archive/2007/11/01/sharepoint-search-bench-initial-release.aspx</link>
            <description>&lt;p&gt;&lt;a title="Photo Sharing" href="http://www.flickr.com/photos/kindohm/1813374111/" target="_blank"&gt;&lt;img style="margin: 5px" height="230" alt="SharePoint Search Bench Screen Shot" src="http://farm3.static.flickr.com/2268/1813374111_f0f0642e5b_m.jpg" width="240" align="right" border="0" /&gt;&lt;/a&gt; &lt;a href="http://codeplex.com/SPSearchBench" target="_blank"&gt;Download SharePoint Search Bench from www.codeplex.com/SPSearchBench&lt;/a&gt;&lt;/p&gt; &lt;p&gt;SharePoint Search Bench is a WPF application used to run full-text SQL and keyword queries against Microsoft Office SharePoint Server (MOSS) search.   &lt;/p&gt; &lt;p&gt;This project is something I've had in the works for a little while.  Extending MOSS search is a common task among SharePoint developers, yet there aren't really any tools available to test, try, or develop queries against MOSS search.  Unlike SQL Server, MOSS doesn't ship with a "Query Analyzer".  On projects where I was extending MOSS search, I found myself writing my own app to write and test queries.  &lt;/p&gt; &lt;p&gt;Here are some notable features about the app:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Supports searching against MOSS using MOSS Search  &lt;/li&gt;&lt;li&gt;Supports searching via object model (on server)  &lt;/li&gt;&lt;li&gt;Supports searching via web service (remote clients)  &lt;/li&gt;&lt;li&gt;Supports Full Text searches using full text SQL syntax  &lt;/li&gt;&lt;li&gt;Supports keyword searches, including custom returned columns/properties  &lt;/li&gt;&lt;li&gt;Lists available search scopes and managed properties  &lt;/li&gt;&lt;li&gt;Ability to change query packet XML for web service calls  &lt;/li&gt;&lt;li&gt;Ability to save your connection and query settings between sessions &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;App characteristics:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Built on WPF  &lt;/li&gt;&lt;li&gt;Built using VS 2005 and WPF extensions  &lt;/li&gt;&lt;li&gt;.Net 3.0 required  &lt;/li&gt;&lt;li&gt;Does not support WSS, CAML or List-based queries/searches  &lt;/li&gt;&lt;li&gt;Does not support WSS v2 or SPS &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Another purpose of developing the app was to continue learning WPF.  I've had my head in WPF for a long, long time, but haven't ventured outside of its 3D features very much.  I wanted this WPF app to be clean and take advantage of certain features that WPF provides.  Specifically, lots of data binding, heavy re-use of styles, data templates, and control templates.&lt;/p&gt; &lt;p&gt;The CodePlex project has a forum and issue tracker open, so feel free to leave feedback or report problems.  &lt;/p&gt; &lt;div class="tags" id="0767317B-992E-4b12-91E0-4F059A8CECA8:15260473-e2ef-4e21-bc7f-086ef04cb103" contenteditable="false"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/sharepoint" target="_blank" rel="tag"&gt;sharepoint&lt;/a&gt; &lt;a href="http://technorati.com/tags/moss" target="_blank" rel="tag"&gt;moss&lt;/a&gt; &lt;a href="http://technorati.com/tags/search" target="_blank" rel="tag"&gt;search&lt;/a&gt; &lt;a href="http://technorati.com/tags/wpf" target="_blank" rel="tag"&gt;wpf&lt;/a&gt; &lt;a href="http://technorati.com/tags/code" target="_blank" rel="tag"&gt;code&lt;/a&gt;&lt;/div&gt;&lt;img src="http://kindohm.com/aggbug/1999.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>mike</dc:creator>
            <guid>http://kindohm.com/archive/2007/11/01/sharepoint-search-bench-initial-release.aspx</guid>
            <pubDate>Thu, 01 Nov 2007 14:15:15 GMT</pubDate>
            <wfw:comment>http://kindohm.com/comments/1999.aspx</wfw:comment>
            <comments>http://kindohm.com/archive/2007/11/01/sharepoint-search-bench-initial-release.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://kindohm.com/comments/commentRss/1999.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Augmented Reality in WPF</title>
            <link>http://kindohm.com/archive/2007/10/16/augmented-reality-in-wpf.aspx</link>
            <description>&lt;p&gt;Check out this amazing WPF 3D app that interactively places 3D elements on the screen given a video/visual input.&lt;/p&gt; &lt;object width="425" height="353"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vPaXR24FP5g&amp;amp;rel=1" /&gt;&lt;param name="wmode" value="transparent" /&gt;&lt;embed src="http://www.youtube.com/v/vPaXR24FP5g&amp;amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="353"&gt;&lt;/embed&gt;&lt;/object&gt; &lt;p&gt;This opens a few doors :)  In fact, here is an example of a real world application of the technology in use by an auto mechanic:&lt;/p&gt;  &lt;object width="425" height="353"&gt;&lt;param name="movie" value="http://www.youtube.com/v/P9KPJlA5yds&amp;amp;rel=1" /&gt;&lt;param name="wmode" value="transparent" /&gt;&lt;embed src="http://www.youtube.com/v/P9KPJlA5yds&amp;amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="353"&gt;&lt;/embed&gt;&lt;/object&gt;   &lt;div class="tags" id="0767317B-992E-4b12-91E0-4F059A8CECA8:a82c3817-300f-4771-b140-4afe5f69b9d0"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/wpf" rel="tag" target="_blank"&gt;wpf&lt;/a&gt; &lt;a href="http://technorati.com/tags/3d" rel="tag" target="_blank"&gt;3d&lt;/a&gt; &lt;a href="http://technorati.com/tags/augmented%20reality" rel="tag" target="_blank"&gt;augmented reality&lt;/a&gt; &lt;a href="http://technorati.com/tags/video" rel="tag" target="_blank"&gt;video&lt;/a&gt;&lt;/div&gt;&lt;img src="http://kindohm.com/aggbug/1993.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>mike</dc:creator>
            <guid>http://kindohm.com/archive/2007/10/16/augmented-reality-in-wpf.aspx</guid>
            <pubDate>Tue, 16 Oct 2007 12:56:03 GMT</pubDate>
            <wfw:comment>http://kindohm.com/comments/1993.aspx</wfw:comment>
            <comments>http://kindohm.com/archive/2007/10/16/augmented-reality-in-wpf.aspx#feedback</comments>
            <wfw:commentRss>http://kindohm.com/comments/commentRss/1993.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Complex ModelVisual3D Composition and Hit Testing in WPF</title>
            <link>http://kindohm.com/archive/2007/10/10/complex-modelvisual3d-composition-and-hit-testing-in-wpf.aspx</link>
            <description>&lt;p&gt;I posted a new article last night on how to handle complex model interaction in WPF 3D: &lt;a title="http://www.kindohm.com/technical/ComplexVisuals.htm" href="http://www.kindohm.com/technical/ComplexVisuals.htm"&gt;http://www.kindohm.com/technical/ComplexVisuals.htm&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I also added a new &lt;a href="http://www.kindohm.com/technical/toc.htm" target="_blank"&gt;table of contents page&lt;/a&gt; since the number of articles is growing.  &lt;/p&gt;  &lt;p&gt;I feel a little bad that Google adsense is all over those articles, but I can't deny that the ads help pay for keeping kindohm.com up and running.&lt;/p&gt;  &lt;div class="tags" id="0767317B-992E-4b12-91E0-4F059A8CECA8:4bdf9273-ef00-430c-b9aa-215211706acb" contenteditable="false"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/wpf" target="_blank" rel="tag"&gt;wpf&lt;/a&gt; &lt;a href="http://technorati.com/tags/3d" target="_blank" rel="tag"&gt;3d&lt;/a&gt; &lt;a href="http://technorati.com/tags/programming" target="_blank" rel="tag"&gt;programming&lt;/a&gt;&lt;/div&gt;&lt;img src="http://kindohm.com/aggbug/1989.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>mike</dc:creator>
            <guid>http://kindohm.com/archive/2007/10/10/complex-modelvisual3d-composition-and-hit-testing-in-wpf.aspx</guid>
            <pubDate>Wed, 10 Oct 2007 14:43:05 GMT</pubDate>
            <wfw:comment>http://kindohm.com/comments/1989.aspx</wfw:comment>
            <comments>http://kindohm.com/archive/2007/10/10/complex-modelvisual3d-composition-and-hit-testing-in-wpf.aspx#feedback</comments>
            <wfw:commentRss>http://kindohm.com/comments/commentRss/1989.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Use of Normals in WPF 3D</title>
            <link>http://kindohm.com/archive/2007/04/30/use-of-normals-in-wpf-3d.aspx</link>
            <description>&lt;p&gt;Download the source code for this post: &lt;a href="http://www.kindohm.com/files/normals3d.zip"&gt;Normals3D.zip&lt;/a&gt; (100 KB)&lt;/p&gt;

&lt;p&gt;One of the questions brought up during my WPF 3D talk at the Code Camp this weekend was what happens when you don't use normals in your meshes.  The answer is that it depends.  When you use a complete, discrete set of points for each flat surface in your mesh, the the effects of not using normals isn't that significant.  However, if you are "lazy" and use the fewest amount of points possible for all triangles in your mesh, then the effects of not using normals is more noticeable.  The reason for this is that each point in your mesh can only be assigned one normal.  Thus, if you have a vertex in your mesh that is the intersection of multiple triangles - and if you only use one position in your mesh to define that vertex - you can only use one normal to define what direction light will reflect off of all of the triangles at that point.  &lt;/p&gt;

&lt;p&gt;Take the corner of a cube, for example.  Six different triangles all converge at the same corner point on a cube (three sides all meet at one point, and each side has two triangles).  If you use one shared position for all six of these triangles, you can only use one normal.  If you need a good looking model, then you should use six separate points and define normals for each.  In the case of a cube, you could get away with three positions because two triangles on each side will likely have the same normal vector.&lt;/p&gt;

&lt;p&gt;Take this example:&lt;/p&gt;

&lt;p style="text-align: center;"&gt;&lt;a target="_blank" href="http://www.flickr.com/photos/kindohm/478510631/" title="Photo Sharing"&gt;&lt;img src="http://farm1.static.flickr.com/183/478510631_6691d59381_o.png" width="404" height="352" alt="WPF 3D Normals" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the "front" are three cubes - each created with 24 discrete positions.  Each side of the cube does not share any positions with another side.  The first cube has no normals, the second cube has normals that extend in perpendicular directions from the cube faces, and the third cube has "angled" normals that point at non-perpendicular angles from their faces.  One observation is that the cube without normals appears the same as the cube with perpendicular normals.  Honestly, I don't know why this happens.  My guess is that normals are automatically generated for a mesh (probably using a cross product of the first two sides of the triangle in the mesh) if none are explicitly assigned. The second observation you can make is that a normals have a significant effect on lighting - the non-perpendicular angles in the 3rd cube cause a very different lighting effect [1].&lt;/p&gt;

&lt;p&gt;In the "back" are three more cubes - which were created in a "lazy" manner with only eight discrete positions.  Each position is shared by converging triangles in the mesh.  You can see right away how using fewer points has an impact on the mesh's appearance under light.  In the 4th cube (1st lazy cube), no normals are assigned.  WPF came up with the normals/lighting itself.  In the 5th cube, I picked an arbitrary direction for the normals.  In the 6th cube, I used arbitrary normals that are not perpendicular.  &lt;/p&gt;

&lt;p&gt;The effect of normals on your model varies depending on how you build the positions in your mesh.  It all comes down to how much detail and "realism" you're going for.  The expected down side is that you need to do a little more work to get more detail.&lt;/p&gt;

&lt;p&gt;Download the source code: &lt;a href="http://www.kindohm.com/files/normals3d.zip"&gt;Normals3D.zip&lt;/a&gt; (100 KB)&lt;/p&gt;

&lt;p&gt;[1] I'm using both a diffuse and specular material in these cubes, so the cubes appear to have a shiny reflection.&lt;/p&gt;

&lt;p class="tags"&gt;
tags:
&lt;a href="http://technorati.com/tags/wpf" target="_blank" rel="tag"&gt;wpf&lt;/a&gt;
&lt;a href="http://technorati.com/tags/3d" target="_blank" rel="tag"&gt;3d&lt;/a&gt;
&lt;a href="http://technorati.com/tags/code" target="_blank" rel="tag"&gt;code&lt;/a&gt;
&lt;a href="http://technorati.com/tags/normals" target="_blank" rel="tag"&gt;normals&lt;/a&gt;
&lt;a href="http://technorati.com/tags/lighting" target="_blank" rel="tag"&gt;lighting&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://kindohm.com/aggbug/1895.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>mike</dc:creator>
            <guid>http://kindohm.com/archive/2007/04/30/use-of-normals-in-wpf-3d.aspx</guid>
            <pubDate>Mon, 30 Apr 2007 15:39:20 GMT</pubDate>
            <wfw:comment>http://kindohm.com/comments/1895.aspx</wfw:comment>
            <comments>http://kindohm.com/archive/2007/04/30/use-of-normals-in-wpf-3d.aspx#feedback</comments>
            <wfw:commentRss>http://kindohm.com/comments/commentRss/1895.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Code Camp - WPF 3D - Slides, Code, and Resources</title>
            <link>http://kindohm.com/archive/2007/04/28/code-camp-wpf-3d-slides-code-and-resources.aspx</link>
            <description>&lt;p&gt;Thanks to everyone who attended my talk at the &lt;a href="http://www.twincitiescodecamp.com" target="_blank"&gt;Twin Cities Code Camp&lt;/a&gt;.  Here is a list of stuff related to the talk that you can download:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The PowerPoint slide deck: &lt;a href="http://www.kindohm.com/files/tccc/TCCC-WPF3D-slides.zip"&gt;TCCC-WPF3D-slides.zip&lt;/a&gt; (contains both Office 2007 and Office 2003 versions)&lt;/li&gt;
  &lt;li&gt;The demo code: &lt;a href="http://www.kindohm.com/files/tccc/CodeCamp.wpf3d.zip"&gt;CodeCamp.Wpf3D.zip&lt;/a&gt; (1 MB)&lt;/li&gt;
  &lt;li&gt;The "Moving Camera" application: &lt;a href="http://www.kindohm.com/files/tccc/MoveCamera.zip"&gt;MoveCamera.zip&lt;/a&gt; (8MB - includes media files)&lt;/li&gt;
  &lt;li&gt;The Cartography application (USA states map): &lt;a href="http://www.kindohm.com/files/tccc/Cartography3D-v2.zip"&gt;Cartography3D-v2.zip&lt;/a&gt; (500 kb)&lt;/li&gt;
  &lt;li&gt;The Cartography database in SQL backup form: &lt;a href="http://www.kindohm.com/files/tccc/CartographyDB.zip"&gt;CartographyDB.zip&lt;/a&gt; (37 MB)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I uploaded the entire Cartography database so that you can actually execute the code against the real data.  You could probably infer the schema from the classes and make up your own data, but what fun would that be for all of you?&lt;/p&gt;

&lt;p&gt;And here are the resources and case studies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/windowsvista/aa904955.aspx" target="_blank"&gt;Installs (Windows SDK, .NET 3.0, VS 2005 Extensions)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.kindohm.com/technical/WPF3DTutorial.htm" target="_blank"&gt;WPF 3D Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wpf.netfx3.com/files/folders/labs/entry9680.aspx" target="_blank"&gt;3D Code Lab&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/3DTools" target="_blank"&gt;3DTools&lt;/a&gt; (trackball, etc) &lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/karstenj" target="_blank"&gt;Karsten J's blog&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/tims" target="_blank"&gt;Tim Sneath's blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/wpf3d/" target="_blank"&gt;WPF3D team blog&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://www.microsoft.com/casestudies/casestudy.aspx?casestudyid=201147" target="_blank"&gt;The North Face case study&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=116426" target="_blank"&gt;The North Face demo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/wpf3d/archive/2007/03/01/flickr-photo-browser-source-code-now-available.aspx" target="_blank"&gt;Flickr photo browser&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/japan/windowsvista/webshowcase/domino.htm" target="_blank"&gt;Dominoken&lt;/a&gt;(requires IE 7) &lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;There were a number of questions that the audience asked that I didn't know the answer to.  When I get a chance to follow up on them I'll post my findings.&lt;/p&gt;

&lt;p&gt;Kudos to everyone who helped put on the event.  It was a blast!&lt;/p&gt;

&lt;p class="tags"&gt;
tags:
&lt;a href="http://technorati.com/tags/codecamp" target="_blank" rel="tag"&gt;codecamp&lt;/a&gt;
&lt;a href="http://technorati.com/tags/wpf" target="_blank" rel="tag"&gt;wpf&lt;/a&gt;
&lt;a href="http://technorati.com/tags/presentation" target="_blank" rel="tag"&gt;presentation&lt;/a&gt;
&lt;a href="http://technorati.com/tags/code" target="_blank" rel="tag"&gt;code&lt;/a&gt;
&lt;a href="http://technorati.com/tags/slidles" target="_blank" rel="tag"&gt;slides&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://kindohm.com/aggbug/1893.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>mike</dc:creator>
            <guid>http://kindohm.com/archive/2007/04/28/code-camp-wpf-3d-slides-code-and-resources.aspx</guid>
            <pubDate>Sat, 28 Apr 2007 20:41:34 GMT</pubDate>
            <wfw:comment>http://kindohm.com/comments/1893.aspx</wfw:comment>
            <comments>http://kindohm.com/archive/2007/04/28/code-camp-wpf-3d-slides-code-and-resources.aspx#feedback</comments>
            <wfw:commentRss>http://kindohm.com/comments/commentRss/1893.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Bizarre Japanese WPF App</title>
            <link>http://kindohm.com/archive/2007/04/26/bizarre-japanese-wpf-app.aspx</link>
            <description>&lt;p&gt;This is quite something.  It's a complete &lt;a title="WPF" href="http://msdn.microsoft.com/windowsvista/" target="_blank"&gt;WPF&lt;/a&gt; 3D model using real images (I'm assuming image brushes ?? ) and is animated and sync'd to music and voiceovers.  The animations themselves are pretty cool but the best part is that you can control the camera while it plays.  &lt;/p&gt;

&lt;p&gt;Link: &lt;a href="http://www.microsoft.com/japan/windowsvista/webshowcase/domino.htm" target="_blank"&gt;Dominoken&lt;/a&gt; (Internet Explorer will be your friend in this instance)&lt;/p&gt;

&lt;p class="tags"&gt;tags: &lt;a href="http://technorati.com/tag/japan" target="_blank" rel="tag"&gt;japan&lt;/a&gt; &lt;a href="http://technorati.com/tag/wpf" target="_blank" rel="tag"&gt;wpf&lt;/a&gt; &lt;a href="http://technorati.com/tag/3d" target="_blank" rel="tag"&gt;3d&lt;/a&gt; &lt;a href="http://technorati.com/tag/programming" target="_blank" rel="tag"&gt;programming&lt;/a&gt; &lt;a href="http://technorati.com/tag/code" target="_blank" rel="tag"&gt;code&lt;/a&gt; &lt;/p&gt;&lt;img src="http://kindohm.com/aggbug/1888.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>mike</dc:creator>
            <guid>http://kindohm.com/archive/2007/04/26/bizarre-japanese-wpf-app.aspx</guid>
            <pubDate>Thu, 26 Apr 2007 05:17:10 GMT</pubDate>
            <wfw:comment>http://kindohm.com/comments/1888.aspx</wfw:comment>
            <comments>http://kindohm.com/archive/2007/04/26/bizarre-japanese-wpf-app.aspx#feedback</comments>
            <wfw:commentRss>http://kindohm.com/comments/commentRss/1888.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Use 3DTools for Generating Texture Coordinates in WPF</title>
            <link>http://kindohm.com/archive/2007/04/14/use-3dtools-for-generating-texture-coordinates-in-wpf.aspx</link>
            <description>&lt;p&gt;I've always struggled with (or have completely blown off) generating texture coordinates for &lt;a title="WPF" href="http://msdn.microsoft.com/windowsvista/" target="_blank"&gt;WPF&lt;/a&gt; 3D meshes.  Texture coordinates are what allow you to map 2D resources (images, videos, or any visual WPF element) on to a 3D surface.  &lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codeplex.com/3DTools" target="_blank"&gt;3DTools&lt;/a&gt; out on CodePlex takes care of this for you.  Included with 3DTools is a mesh utilities class that will generate texture coordinates for a variety of basic surfaces, including planes, spheres, and cylinders.&lt;/p&gt;

&lt;p&gt;3DTools also contains a bunch of other goodies (to be discussed at a later point in time).&lt;/p&gt;

&lt;p&gt;I can't mention 3DTools for the first time without stating something very annoying about it.  The developers have chosen to name the root namespace of 3DTools as "_3DTools".  The underscore is present because you can't begin a .Net namespace with a numeric character.  I wish the developers would choose to follow the .Net 3.0 3D namespace conventions and name it "Tools3D".  That underscore results in an unintuitive namespace name, and it just looks damn ugly :)&lt;/p&gt;

&lt;p&gt;Download 3DTools and enjoy.&lt;/p&gt;
&lt;p class="tags"&gt;tags: &lt;a href="http://technorati.com/tag/3d" target="_blank" rel="tag"&gt;3d&lt;/a&gt; &lt;a href="http://technorati.com/tag/wpf" target="_blank" rel="tag"&gt;wpf&lt;/a&gt; &lt;a href="http://technorati.com/tag/3dtools" target="_blank" rel="tag"&gt;3dtools&lt;/a&gt; &lt;a href="http://technorati.com/tag/code" target="_blank" rel="tag"&gt;code&lt;/a&gt; &lt;a href="http://technorati.com/tag/programming" target="_blank" rel="tag"&gt;programming&lt;/a&gt; &lt;/p&gt;&lt;img src="http://kindohm.com/aggbug/1882.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>mike</dc:creator>
            <guid>http://kindohm.com/archive/2007/04/14/use-3dtools-for-generating-texture-coordinates-in-wpf.aspx</guid>
            <pubDate>Sat, 14 Apr 2007 13:54:20 GMT</pubDate>
            <wfw:comment>http://kindohm.com/comments/1882.aspx</wfw:comment>
            <comments>http://kindohm.com/archive/2007/04/14/use-3dtools-for-generating-texture-coordinates-in-wpf.aspx#feedback</comments>
            <wfw:commentRss>http://kindohm.com/comments/commentRss/1882.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Animate a PerspectiveCamera in WPF</title>
            <link>http://kindohm.com/archive/2007/04/14/animate-a-perspectivecamera-in-wpf.aspx</link>
            <description>&lt;p&gt;This app started out as an experiment with animating a PerspectiveCamera in a &lt;a title="WPF" href="http://msdn.microsoft.com/windowsvista/" target="_blank"&gt;WPF&lt;/a&gt; 3D scene.  Basically, I wanted to achieve the effect of "flying" through a model.  WPF's 3D animations are just too tempting to me though, and after achieving the camera animation I couldn't help but busy-up the app with rotating videos, a background &lt;a href="http://www.edgey.net" target="_blank"&gt;Edgey&lt;/a&gt; track and some extra keyboard commands to have fun with.  I haven't done anything useful in a WPF app yet :)&lt;/p&gt;

&lt;p&gt;Anyway, here's the source code: &lt;a href="http://www.kindohm.com/files/MoveCamera.zip"&gt;MoveCamera.zip (8MB)&lt;/a&gt;.  The zip file is big because the media files are included.&lt;/p&gt;

&lt;p&gt;And here's a screenshot:&lt;/p&gt;

&lt;p&gt;&lt;a target="_blank" href="http://www.flickr.com/photos/kindohm/458366540/" title="Photo Sharing"&gt;&lt;img src="http://farm1.static.flickr.com/197/458366540_d59e7c1a9f.jpg" border="0" width="500" height="391" alt="MoveCamera" /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;The camera animation code is fairly easy to implement.  The basic algorithm is to 1) calculate the next random camera position, 2) calculate the "look at direction" vector based on the new position and the desired look-at point (always near the origin of Cartesian space, 3) animate the position and look-at vector, and 4) handle the animation Completed event to repeat the process:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
Point3D nextPosition = GetNextCameraPosition();
Vector3D nextLookDirection = GetNextLookDirection(nextPosition);
Point3D currentPosition = camera.Position;
Vector3D currentLookDirection = camera.LookDirection;
int duration = GetNextFlightDuration();

Vector3DAnimation lookAnimation = new Vector3DAnimation(
	currentLookDirection, nextLookDirection, 
	TimeSpan.FromMilliseconds(duration));

Point3DAnimation positionAnimation = 
   new Point3DAnimation(currentPosition, nextPosition, 
   TimeSpan.FromMilliseconds(duration));

lookAnimation.Completed += new EventHandler(lookAnimation_Completed);

camera.BeginAnimation(
	PerspectiveCamera.LookDirectionProperty, lookAnimation);
camera.BeginAnimation(
	PerspectiveCamera.PositionProperty, positionAnimation);

&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p class="tags"&gt;tags: &lt;a href="http://technorati.com/tag/wpf" target="_blank" rel="tag"&gt;wpf&lt;/a&gt; &lt;a href="http://technorati.com/tag/3d" target="_blank" rel="tag"&gt;3d&lt;/a&gt; &lt;a href="http://technorati.com/tag/animation" target="_blank" rel="tag"&gt;animation&lt;/a&gt; &lt;a href="http://technorati.com/tag/camera" target="_blank" rel="tag"&gt;camera&lt;/a&gt; &lt;a href="http://technorati.com/tag/code" target="_blank" rel="tag"&gt;code&lt;/a&gt; &lt;a href="http://technorati.com/tag/programming" target="_blank" rel="tag"&gt;programming&lt;/a&gt;  &lt;/p&gt;&lt;img src="http://kindohm.com/aggbug/1880.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>mike</dc:creator>
            <guid>http://kindohm.com/archive/2007/04/14/animate-a-perspectivecamera-in-wpf.aspx</guid>
            <pubDate>Sat, 14 Apr 2007 05:00:27 GMT</pubDate>
            <wfw:comment>http://kindohm.com/comments/1880.aspx</wfw:comment>
            <comments>http://kindohm.com/archive/2007/04/14/animate-a-perspectivecamera-in-wpf.aspx#feedback</comments>
            <wfw:commentRss>http://kindohm.com/comments/commentRss/1880.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Lots of WPF at MIX '06</title>
            <link>http://kindohm.com/archive/2006/03/21/LotsofWPFatMIX06.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/tims/archive/2006/03/20/555968.aspx" target="_blank"&gt;Tim Sneath just posted an blurb&lt;/a&gt; about a &lt;a title="WPF" href="http://msdn.microsoft.com/windowsvista/" target="_blank"&gt;WPF&lt;/a&gt; project he's been working on with a customer.  &lt;a target="_blank" href="http://blog.mix06.com/virtualmix/archive/2006/03/15/iBloks.aspx"&gt;This full demo&lt;/a&gt; of the project shows off how WPF integrates 2D, 3D, animation, music, and video.  There's a lot of WPF stuff out there that shows off its 3D capabilities, but most of it either isn't very pleasing to the eye (think simple 3D objects on a bright yellow background) or is too simple/abstract to give perspective on how it would be used to solve real problems.  This demo presents what looks like a very pleasing, polished product that gives some perspective on how WPF's 3D and media capabilities could be used.&lt;/p&gt;&lt;img src="http://kindohm.com/aggbug/1423.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>mike</dc:creator>
            <guid>http://kindohm.com/archive/2006/03/21/LotsofWPFatMIX06.aspx</guid>
            <pubDate>Tue, 21 Mar 2006 13:34:00 GMT</pubDate>
            <wfw:comment>http://kindohm.com/comments/1423.aspx</wfw:comment>
            <comments>http://kindohm.com/archive/2006/03/21/LotsofWPFatMIX06.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://kindohm.com/comments/commentRss/1423.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>