<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Experience writing a ray tracer in Haskell</title>
	<atom:link href="http://blog.finiteimprobability.com/2009/06/18/experience-writing-a-ray-tracer-in-haskell/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.finiteimprobability.com/2009/06/18/experience-writing-a-ray-tracer-in-haskell/</link>
	<description>Just programming and math, no spontaneously jumping undergarments</description>
	<lastBuildDate>Thu, 19 Nov 2009 10:30:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: brian</title>
		<link>http://blog.finiteimprobability.com/2009/06/18/experience-writing-a-ray-tracer-in-haskell/comment-page-1/#comment-30</link>
		<dc:creator>brian</dc:creator>
		<pubDate>Sun, 21 Jun 2009 10:20:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.finiteimprobability.com/2009/06/18/experience-writing-a-ray-tracer-in-haskell/#comment-30</guid>
		<description>&lt;p&gt;@Eric June&lt;/p&gt;

&lt;p&gt;PBRT book: http://www.pbrt.org/&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>@Eric June</p>

<p>PBRT book: <a href="http://www.pbrt.org/" rel="nofollow">http://www.pbrt.org/</a></p>]]></content:encoded>
	</item>
	<item>
		<title>By: adam</title>
		<link>http://blog.finiteimprobability.com/2009/06/18/experience-writing-a-ray-tracer-in-haskell/comment-page-1/#comment-29</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Fri, 19 Jun 2009 22:49:20 +0000</pubDate>
		<guid isPermaLink="false">http://blog.finiteimprobability.com/2009/06/18/experience-writing-a-ray-tracer-in-haskell/#comment-29</guid>
		<description>&lt;p&gt;@Joe Thornber&lt;/p&gt;

&lt;p&gt;I really was just using the types to make the code read better. At one point I did have trouble confusing the different material constants, but switching to record syntax helped with that.&lt;/p&gt;

&lt;p&gt;A progress monitor is on my mental list of improvements, but it would involve a bit of work restructuring the code to make it happen. We&#039;ll see how long I keep interest in it (which is also a reason why I&#039;m avoiding putting up a package for now).&lt;/p&gt;

&lt;p&gt;I&#039;m already using Mercurial, so I might see how much work it would be to put up a repo for that. Long term I wouldn&#039;t mind setting this up to do photon mapping, but I&#039;m not sure where things will go.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>@Joe Thornber</p>

<p>I really was just using the types to make the code read better. At one point I did have trouble confusing the different material constants, but switching to record syntax helped with that.</p>

<p>A progress monitor is on my mental list of improvements, but it would involve a bit of work restructuring the code to make it happen. We&#8217;ll see how long I keep interest in it (which is also a reason why I&#8217;m avoiding putting up a package for now).</p>

<p>I&#8217;m already using Mercurial, so I might see how much work it would be to put up a repo for that. Long term I wouldn&#8217;t mind setting this up to do photon mapping, but I&#8217;m not sure where things will go.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Joe Thornber</title>
		<link>http://blog.finiteimprobability.com/2009/06/18/experience-writing-a-ray-tracer-in-haskell/comment-page-1/#comment-28</link>
		<dc:creator>Joe Thornber</dc:creator>
		<pubDate>Fri, 19 Jun 2009 08:56:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.finiteimprobability.com/2009/06/18/experience-writing-a-ray-tracer-in-haskell/#comment-28</guid>
		<description>&lt;p&gt;If use data or newtype rather than type you can get a lot more help from the type system.&lt;/p&gt;

&lt;p&gt;For instance, rather than:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;type Reflectivity = Double
  type Diffusion    = Double
  type Specularity  = Double
  type Shininess    = Double
  type Ambience     = Double&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I&#039;d use:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;newtype Reflectivity = Reflectivity Double
  ...&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That way you can&#039;t accidentally use a Shininess value as a Diffusion etc.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>If use data or newtype rather than type you can get a lot more help from the type system.</p>

<p>For instance, rather than:</p>

<blockquote>
  <p>type Reflectivity = Double
  type Diffusion    = Double
  type Specularity  = Double
  type Shininess    = Double
  type Ambience     = Double</p>
</blockquote>

<p>I&#8217;d use:</p>

<blockquote>
  <p>newtype Reflectivity = Reflectivity Double
  &#8230;</p>
</blockquote>

<p>That way you can&#8217;t accidentally use a Shininess value as a Diffusion etc.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Joe Thornber</title>
		<link>http://blog.finiteimprobability.com/2009/06/18/experience-writing-a-ray-tracer-in-haskell/comment-page-1/#comment-27</link>
		<dc:creator>Joe Thornber</dc:creator>
		<pubDate>Fri, 19 Jun 2009 08:33:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.finiteimprobability.com/2009/06/18/experience-writing-a-ray-tracer-in-haskell/#comment-27</guid>
		<description>&lt;p&gt;http://www.pbrt.org/&lt;/p&gt;

&lt;p&gt;The book is a literate program for a ray-tracer.  Much better than the toy ray-tracers that you get in most books which don&#039;t really do global illumination.  eg, lot of explanation of Monte Carlo integration, sampling, photon mapping etc.&lt;/p&gt;

&lt;p&gt;The luxrender program is an open source project forked from pbrt, I think the gallery on this page has some impressive renders:&lt;/p&gt;

&lt;p&gt;http://www.luxrender.net/&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p><a href="http://www.pbrt.org/" rel="nofollow">http://www.pbrt.org/</a></p>

<p>The book is a literate program for a ray-tracer.  Much better than the toy ray-tracers that you get in most books which don&#8217;t really do global illumination.  eg, lot of explanation of Monte Carlo integration, sampling, photon mapping etc.</p>

<p>The luxrender program is an open source project forked from pbrt, I think the gallery on this page has some impressive renders:</p>

<p><a href="http://www.luxrender.net/" rel="nofollow">http://www.luxrender.net/</a></p>]]></content:encoded>
	</item>
	<item>
		<title>By: Eric</title>
		<link>http://blog.finiteimprobability.com/2009/06/18/experience-writing-a-ray-tracer-in-haskell/comment-page-1/#comment-26</link>
		<dc:creator>Eric</dc:creator>
		<pubDate>Fri, 19 Jun 2009 08:16:26 +0000</pubDate>
		<guid isPermaLink="false">http://blog.finiteimprobability.com/2009/06/18/experience-writing-a-ray-tracer-in-haskell/#comment-26</guid>
		<description>&lt;p&gt;What is the PBRT book?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>What is the PBRT book?</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Joe Thornber</title>
		<link>http://blog.finiteimprobability.com/2009/06/18/experience-writing-a-ray-tracer-in-haskell/comment-page-1/#comment-25</link>
		<dc:creator>Joe Thornber</dc:creator>
		<pubDate>Fri, 19 Jun 2009 08:13:39 +0000</pubDate>
		<guid isPermaLink="false">http://blog.finiteimprobability.com/2009/06/18/experience-writing-a-ray-tracer-in-haskell/#comment-25</guid>
		<description>&lt;p&gt;Well done.&lt;/p&gt;

&lt;p&gt;A couple of small points:&lt;/p&gt;

&lt;p&gt;-If you make a cabal package for it you&#039;ll get lots more people playing with it.&lt;/p&gt;

&lt;p&gt;-Some form of progress monitor while you render would be good.  I have no idea if this render is going to take 2 minutes or 2 days.&lt;/p&gt;

&lt;p&gt;I recently bought the PBRT book which is very good (unfortunately very expensive too).  One day I&#039;ll get time to write a haskell version of it.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Well done.</p>

<p>A couple of small points:</p>

<p>-If you make a cabal package for it you&#8217;ll get lots more people playing with it.</p>

<p>-Some form of progress monitor while you render would be good.  I have no idea if this render is going to take 2 minutes or 2 days.</p>

<p>I recently bought the PBRT book which is very good (unfortunately very expensive too).  One day I&#8217;ll get time to write a haskell version of it.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: dons</title>
		<link>http://blog.finiteimprobability.com/2009/06/18/experience-writing-a-ray-tracer-in-haskell/comment-page-1/#comment-24</link>
		<dc:creator>dons</dc:creator>
		<pubDate>Fri, 19 Jun 2009 03:26:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.finiteimprobability.com/2009/06/18/experience-writing-a-ray-tracer-in-haskell/#comment-24</guid>
		<description>&lt;p&gt;Re. the final core drop off, this thread on Linux v OSX and GHC from April seems relevant -- No &quot;last core parallel slowdown&quot; on OS X: http://www.haskell.org/pipermail/glasgow-haskell-users/2009-April/017050.html&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Re. the final core drop off, this thread on Linux v OSX and GHC from April seems relevant &#8212; No &#8220;last core parallel slowdown&#8221; on OS X: <a href="http://www.haskell.org/pipermail/glasgow-haskell-users/2009-April/017050.html" rel="nofollow">http://www.haskell.org/pipermail/glasgow-haskell-users/2009-April/017050.html</a></p>]]></content:encoded>
	</item>
</channel>
</rss>
