<?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>Michał Borek - tech blog &#187; scala</title>
	<atom:link href="http://www.greenpath.pl/tag/scala/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.greenpath.pl</link>
	<description>Programmer&#039;s point of view</description>
	<lastBuildDate>Fri, 30 Dec 2011 22:20:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Scala &#8211; Ray Tracing &#8211; bump mapping</title>
		<link>http://www.greenpath.pl/2009/06/scala-ray-tracing-bump-mapping/</link>
		<comments>http://www.greenpath.pl/2009/06/scala-ray-tracing-bump-mapping/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 06:41:20 +0000</pubDate>
		<dc:creator>Michał Borek</dc:creator>
				<category><![CDATA[Grafika]]></category>
		<category><![CDATA[Ray Tracing]]></category>
		<category><![CDATA[bump mapping]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[scala]]></category>
		<guid isPermaLink="false">http://www.greenpath.pl/?p=68</guid>
		<description><![CDATA[Kolejną rzeczą, jaką dodałem do ray tracera jest bump mapping. Aktualnie silnik obsługuje zarówno bump mapping proceduralny, jak i oparty o tekstury. Definiowanie parametrów określonego shadera jest jeszcze jednak dość skomplikowane. Mam też niewielki błąd (szumy) na krawędziach obiektów, co jest moim kolejnym zadaniem w tym projekcie. Poniżej mały sample z bumpem i różnymi właściwościami [...]]]></description>
			<content:encoded><![CDATA[<p>Kolejną rzeczą, jaką dodałem do ray tracera jest bump mapping. Aktualnie silnik obsługuje zarówno bump mapping proceduralny, jak i oparty o tekstury. Definiowanie parametrów określonego shadera jest jeszcze jednak dość skomplikowane.</p>
<p>Mam też niewielki błąd (szumy) na krawędziach obiektów, co jest moim kolejnym zadaniem w tym projekcie.</p>
<p>Poniżej mały sample z bumpem i różnymi właściwościami powierzchni (połyskliwość).</p>
<div id="attachment_69" class="wp-caption aligncenter" style="width: 464px"><a href="http://www.greenpath.pl/wp-content/uploads/2009/06/glow.png"><img class="size-full wp-image-69 " title="Bump mapping" src="http://www.greenpath.pl/wp-content/uploads/2009/06/glow.png" alt="Bump mapping" width="454" height="174" /></a><p class="wp-caption-text">Bump mapping</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.greenpath.pl/2009/06/scala-ray-tracing-bump-mapping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scala &#8211; ray tracing &#8211; tekstury</title>
		<link>http://www.greenpath.pl/2009/06/scala-ray-tracing-tekstury/</link>
		<comments>http://www.greenpath.pl/2009/06/scala-ray-tracing-tekstury/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 12:56:30 +0000</pubDate>
		<dc:creator>Michał Borek</dc:creator>
				<category><![CDATA[Grafika]]></category>
		<category><![CDATA[Ray Tracing]]></category>
		<category><![CDATA[scala]]></category>
		<category><![CDATA[teksturowanie]]></category>
		<guid isPermaLink="false">http://www.greenpath.pl/?p=50</guid>
		<description><![CDATA[Nie trzeba było długo czekać, a projekt raytracera w Scali doczekał się małej aktualizacji Dodane zostało teksturowanie. Za mapowanie tekstury odpowiada następujący fragment kodu: def getTexel(vp: Vector): Color = { hasTexture match { case false =&#62; color case true =&#62; val vn = new Vector(0,-1,0) val ve = new Vector(-1,0,0) val phi = Math.acos(-vn.dot(vp)) val [...]]]></description>
			<content:encoded><![CDATA[<p>Nie trzeba było długo czekać, a projekt raytracera w Scali doczekał się małej aktualizacji <img src='http://www.greenpath.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Dodane zostało teksturowanie.</p>
<p>Za mapowanie tekstury odpowiada następujący fragment kodu:</p>
<pre>def getTexel(vp: Vector): Color = {
hasTexture match {
case false =&gt; color
case true =&gt;
val vn = new Vector(0,-1,0)
val ve = new Vector(-1,0,0)
val phi = Math.acos(-vn.dot(vp))
val v = phi / Math.Pi
val theta = (Math.acos(vp.dot(ve) / Math.sin(phi))) /
            (2 * Math.Pi)
val u = vn.crossProduct(ve).dot(vp) &gt; 0 match {
case true =&gt; theta
case false =&gt; 1 - theta
}
val color = new java.awt.Color(
    textureFile.getRGB(((u * _textureScale * textureFile.getWidth
    + _tPosX) % (textureFile.getWidth - 1)) .toInt,
    ((v * _textureScale * textureFile.getHeight + _tPosY) %
    (textureFile.getHeight - 1)).toInt))
new Color(color.getRed / 255.0, color.getGreen / 255.0,
    color.getBlue / 255.0)
}
}</pre>
<p>Efekt załączony na poniższym rysunku:</p>
<div id="attachment_57" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.greenpath.pl/wp-content/uploads/2009/06/texturing1.png"><img class="size-medium wp-image-57" title="Ray Tracing - Scala - tekstury" src="http://www.greenpath.pl/wp-content/uploads/2009/06/texturing1-300x162.png" alt="Ray Tracing - Scala - tekstury" width="300" height="162" /></a><p class="wp-caption-text">Ray Tracing - Scala - tekstury</p></div>
<p>Kod projektu znajduje się w repozytorium: <a title="SVN - Scala - Ray tracing" href="http://code.google.com/p/scala-raytracer/source/browse/">http://code.google.com/p/scala-raytracer/source/browse/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.greenpath.pl/2009/06/scala-ray-tracing-tekstury/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ray tracing w języku Scala</title>
		<link>http://www.greenpath.pl/2009/06/ray-tracing-w-jezyku-scala/</link>
		<comments>http://www.greenpath.pl/2009/06/ray-tracing-w-jezyku-scala/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 11:16:59 +0000</pubDate>
		<dc:creator>Michał Borek</dc:creator>
				<category><![CDATA[Grafika]]></category>
		<category><![CDATA[Ray Tracing]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[scala]]></category>
		<guid isPermaLink="false">http://www.greenpath.pl/?p=44</guid>
		<description><![CDATA[Kolejnym podejściem do ray tracingu jest implementacja prostego silnika ray tracera w Scali. Scala jest językiem funkcyjnym, działającym na wirtualnej maszynie Javy. Fajnie integruje się ze standardowymi klasami Javy, co znacznie zwiększa jego funkcjonalność. Silnik obsługuje na razie tylko prosty model oświetlenia Phonga oraz przecinanie promienia jedynie z kulami. Zamierzam dopisać do tego bump mapping, [...]]]></description>
			<content:encoded><![CDATA[<p>Kolejnym podejściem do ray tracingu jest implementacja prostego silnika ray tracera w Scali.</p>
<p>Scala jest językiem funkcyjnym, działającym na wirtualnej maszynie Javy. Fajnie integruje się ze standardowymi klasami Javy, co znacznie zwiększa jego funkcjonalność.</p>
<p>Silnik obsługuje na razie tylko prosty model oświetlenia Phonga oraz przecinanie promienia jedynie z kulami.</p>
<div class="wp-caption aligncenter" style="width: 310px"><a href="http://www.greenpath.pl/wp-content/uploads/2009/06/scala-raytracing.png"><img class=" " title="scala-raytracing" src="/wp-content/uploads/2009/06/scala-raytracing-300x164.png" alt="scala-raytracing" width="300" height="164" /></a><p class="wp-caption-text">Scala Ray Tracing</p></div>
<p style="text-align: center;">
<p>Zamierzam dopisać do tego bump mapping, ale z czasem może być krucho i na zamiarach może się skończyć <img src='http://www.greenpath.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Poniżej przykład wygenerowanego obrazu (zamierzam sprawić, że będzie to bardziej spektakularne <img src='http://www.greenpath.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p>Projekt hostowany jest na code.google.com i dostępny na licencji MIT.</p>
<p>Link do projektu: <a title="Scala Ray Tracing" href="http://code.google.com/p/scala-raytracer/">http://code.google.com/p/scala-raytracer/</a></p>
<p>W chwili wolnego czasu opiszę kawałki kodu, gdyż języki funkcyjne delikatnie różnią się od tych, w których najczęściej programujemy <img src='http://www.greenpath.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.greenpath.pl/2009/06/ray-tracing-w-jezyku-scala/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

