<?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>AdamCe&#039;s Blog</title>
	<atom:link href="http://celarek.at/feed/" rel="self" type="application/rss+xml" />
	<link>http://celarek.at</link>
	<description>Just another weblog ; )</description>
	<lastBuildDate>Fri, 19 Apr 2013 18:08:25 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Merging Ray Tracing and Rasterization in Mixed Reality</title>
		<link>http://celarek.at/2013/01/merging-ray-tracing-and-rasterization-in-mixed-reality/</link>
		<comments>http://celarek.at/2013/01/merging-ray-tracing-and-rasterization-in-mixed-reality/#comments</comments>
		<pubDate>Sat, 05 Jan 2013 21:58:11 +0000</pubDate>
		<dc:creator>Adam Celarek</dc:creator>
				<category><![CDATA[Computer graphics]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[bachelor thesis]]></category>
		<category><![CDATA[CG]]></category>
		<category><![CDATA[ray tracing]]></category>
		<category><![CDATA[rendering]]></category>

		<guid isPermaLink="false">http://celarek.at/?p=182</guid>
		<description><![CDATA[I&#8217;ve been studying computer sciences for three years and recently I finished writing my bachelor thesis. The topic was implementing reflections and refractions in the context of mixed reality. Basically, mixed reality means adding virtual objects into a video stream (of real environment). One of the goals is to make the resulting images look as [...]]]></description>
				<content:encoded><![CDATA[<div id="attachment_188" class="wp-caption alignright" style="width: 250px"><a href="http://celarek.at/2013/01/merging-ray-tracing-and-rasterization-in-mixed-reality/reflectionscene_optix_knecht/" rel="attachment wp-att-188"><img class=" wp-image-188 " alt="Reflection Scene rendered by our combined renderer" src="http://celarek.at/wp/wp-content/uploads/2013/01/reflectionScene_optix_knecht-300x225.jpg" width="240" height="180" /></a><p class="wp-caption-text">Reflection Scene rendered by our combined renderer</p></div>
<p>I&#8217;ve been studying <a title="University homepage about the programme, I focused on computer graphics" href="http://www.tuwien.ac.at/en/teaching/bachelor_programmes/computer_sciences/#c25960">computer sciences</a> for three years and recently I finished writing my bachelor thesis. The topic was implementing reflections and refractions in the context of <a title="Wikipedia on Mixed reality. The article is poor at the time of writing, so I will elaborate." href="http://en.wikipedia.org/wiki/Mixed_reality">mixed reality</a>. Basically, mixed reality means adding virtual objects into a video stream (of real environment). One of the goals is to make the resulting images look as realistic as possible. Naturally this includes reflection and refraction effects.</p>
<p>In my work I utilise the framework implemented in the <a title="RESHADE website" href="http://www.cg.tuwien.ac.at/research/projects/RESHADE/">RESHADE</a> project. There was already a mixed reality renderer based on a Direct3D rasterizer. My task was to work on a ray tracer using <a title="NVIDIA OptiX" href="https://developer.nvidia.com/optix">OptiX</a> and merge the resulting image with the rasterizer&#8217;s image. OptiX provides a ray tracing framework for the graphics card.</p>
<div id="attachment_197" class="wp-caption alignleft" style="width: 250px"><a href="http://celarek.at/2013/01/merging-ray-tracing-and-rasterization-in-mixed-reality/glassbunny_optix_9xaa/" rel="attachment wp-att-197"><img class=" wp-image-197 " alt="Glass Bunny Scene" src="http://celarek.at/wp/wp-content/uploads/2013/01/glassBunny_optix_9xaa-300x240.jpg" width="240" height="192" /></a><p class="wp-caption-text">Glass Bunny Scene</p></div>
<p>Generally a ray tracer is slower than a rasterizer, but it has better quality with reflections and refractions. Because of that, we used a combined method. The ray tracer is working only on transparent and reflecting surfaces. This is achieved by a mask, which is created by the rasterizer in a separate render pass. This mask indicates, where reflecting or refracting objects are.</p>
<p>Especially with virtual flat mirrors there are very strong artefacts (see reflection scene, right mirror). This is due to lack of information. We are using the video frame, the environment map and the textured model of the real scene to gather information for the reflected ray.</p>
<p>Other problems we encountered were artefacts due to different shading algorithms in the rasterizer and ray tracer, and various issues with implementation due to the tone mapper.</p>
<p>When I was more or less finished with my work, I discovered that somebody else in the project was working on the implementation of reflections and refractions using the rasterizer. This was cool, because we were able to compare the results. Usually rasterizing is much faster than ray tracing. Surprisingly this was not the case with all scenarios. The reflection scene (first image) was faster with the combined method, the transparent bunny was slower. Especially with the bunny scene, I believe that the main drawback in speed was accuracy. The ray tracer also computes inner reflections, which causes a lot of additional work. I didn&#8217;t manage to benchmark this (rendering without inner reflections), because I was running out of time, but maybe I will do it yet..</p>
<p>Thanks to <a title="Institute homepage" href="http://www.cg.tuwien.ac.at/staff/MichaelWimmer.html">Michael Wimmer</a> for making this work possible and special thanks to <a title="Private homepage" href="http://martinknecht.com">Martin</a> <a title="Institute homepage" href="http://www.cg.tuwien.ac.at/staff/MartinKnecht.html">Knecht</a> for being an excellent supervisor and helping with all the questions <img src='http://celarek.at/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Finally, if you are interested into more details, <a title="My bachelor thesis on the university homepage" href="http://www.cg.tuwien.ac.at/research/publications/2012/celarek_adam-2012-rrmro/">here you can find the thesis</a>..</p>
]]></content:encoded>
			<wfw:commentRss>http://celarek.at/2013/01/merging-ray-tracing-and-rasterization-in-mixed-reality/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lindenmayer brush for Krita</title>
		<link>http://celarek.at/2012/01/lindenmayer-brush-for-krita/</link>
		<comments>http://celarek.at/2012/01/lindenmayer-brush-for-krita/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 23:30:12 +0000</pubDate>
		<dc:creator>Adam Celarek</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[brush]]></category>
		<category><![CDATA[CG]]></category>
		<category><![CDATA[krita]]></category>
		<category><![CDATA[lindenmayer]]></category>

		<guid isPermaLink="false">http://celarek.at/?p=148</guid>
		<description><![CDATA[This term i had a course about fractals on the university. We also had to write code for a submission and the lecturer made the technique and topic free to choose. So I chose to make a lindenmayer brush for krita, because I planed to do so since the first university year, where I heard [...]]]></description>
				<content:encoded><![CDATA[<p>This term i had a course about fractals on the university. We also had to write code for a submission and the lecturer made the technique and topic free to choose. So I chose to make a <a href="http://en.wikipedia.org/wiki/Lindenmayer_systems">lindenmayer</a> brush for <a href="http://www.krita.org">krita</a>, because I planed to do so since the first university year, where I heard of lindenmayer systems the first time.</p>
<p><a href="http://celarek.at/wp/wp-content/uploads/2012/01/krita_lindenmayer_1.png"><img class="alignright size-medium wp-image-150" title="First Lindenmayer Test" src="http://celarek.at/wp/wp-content/uploads/2012/01/krita_lindenmayer_1-269x300.png" alt="" width="269" height="300" /></a></p>
<p>I quickly coded something together, so that I was able to prove, that my idea would work.</p>
<p>Lindenmayer systems are some kind of a <a href="http://en.wikipedia.org/wiki/Formal_grammar">grammar</a>, they work like this: You have an alphabet of letters, in this case these letters are simple short lines, then you have productions and a rule: Always produce all letters. These productions eat one letter and produce ether no, one or several new letters. There are several classes of such productions, one of the simplest would be &#8220;A -> AA&#8221;. More sophisticated productions, like in the brush, can contain parameters, if clauses, calculations, random values etc. Basically it would be possible to have several different productions, but I chose to have only one and in turn make it more powerful.</p>
<p>Here is an example of a production, it is used in one of the brushes:<br />
<code><br />
if{letter[branched] == false} {<br />
newLetter = newLetter();<br />
newLetter[position] = variant(letter[endPosition]);<br />
newLetter[angle] = variant(newLetter[angleToSun]);<br />
newLetter[length] = 5;<br />
letter[branched] = bool(true);<br />
}</p>
<p>if{letter[age] > 1} {<br />
letter.delete();<br />
}<br />
</code></p>
<p>It actually creates just a line.</p>
<p>At first the productions were plain C++ code, but that is very cumbersome, as you have to build, install and start krita for testing. The next thing I tried, was to use <a href="http://developer.qt.nokia.com/doc/qt-4.8/scripting.html">QtScript</a> and write the productions in <a href="http://en.wikipedia.org/wiki/ECMAScript">ECMAScript (also called JavaScript)</a>. It took about 5 to 7 hours until I proved, that it was way to slow.</p>
<p>So I decided to implement my own little scripting language. The interpreter is about 700 lines of code, including some tests. It&#8217;s certainly not as powerful, as ECMAScript, but it&#8217;s fast and okayish for this use case.</p>
<p>There is an if clause, which supports &#038;&#038;, there is a rand() function, a function for mixing angles, some very basic math, bool and float data types, you can create new letters and delete old ones. It&#8217;s possible to write new parameters (&#8220;branched&#8221; in the code above), edit some default ones (position, angle, length..), which will be used for drawing and access some computed ones (endPosition, angleToSun, distanceToSun, age..).</p>
<p>I have to write some documentation, expand the possibilities of the language and work on the configuration interface. But for now you can already test the current code, it&#8217;s in the krita-lbrush-adamc branch in the <a href="http://www.calligra.org/">calligra</a> repository.</p>
<p>Here is a final picture..<br />
<a href="http://celarek.at/wp/wp-content/uploads/2012/01/krita_lindenmayer_2.png"><img src="http://celarek.at/wp/wp-content/uploads/2012/01/krita_lindenmayer_2-1024x378.png" alt="" title="Some brush demos" width="450" height="166" class="aligncenter size-large wp-image-153" /></a><br />
The presets for this brushes are included in the repository <img src='http://celarek.at/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://celarek.at/2012/01/lindenmayer-brush-for-krita/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Chawah, Final update a little latish..</title>
		<link>http://celarek.at/2012/01/chawah-final-update-a-little-latish/</link>
		<comments>http://celarek.at/2012/01/chawah-final-update-a-little-latish/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 23:04:56 +0000</pubDate>
		<dc:creator>Adam Celarek</dc:creator>
				<category><![CDATA[Computer graphics]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[CG]]></category>
		<category><![CDATA[Chawah]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[OpenGL]]></category>

		<guid isPermaLink="false">http://celarek.at/?p=144</guid>
		<description><![CDATA[I had lots of things to do, no time etc etc. You know the excuses. But now I want to write another blog about a new Lindenmayer brush for Krita, and though have the motivation to catch up with old posts.. Well, we added loads of new features, mainly graphical ones: lens  flares and sun [...]]]></description>
				<content:encoded><![CDATA[<p>I had lots of things to do, no time etc etc. You know the excuses. But now I want to write another blog about a new Lindenmayer brush for Krita, and though have the motivation to catch up with old posts..</p>
<p>Well, we added loads of new features, mainly graphical ones:</p>
<ul>
<li>lens  flares and sun dazzle effect</li>
<li>moving space dust (white circles), which are moving randomly, this is an simple particle system.</li>
<li>explosion and fire stream effects (more complicated particle systems)</li>
<li>environment mapping (on the ships and station)</li>
<li>bloom</li>
<li>music and sound effects</li>
<li>some power ups (armor, rockets, boost)</li>
<li>&#8230;</li>
</ul>
<p>Here is a video, we made for the presentation. Unfortunately it&#8217;s low quality, I hope to get a better one tomorrow, but it&#8217;s probably gone..</p>
<p><object width="560" height="315"><param name="movie" value="http://www.youtube-nocookie.com/v/PrdZnlJZRzM?version=3&amp;hl=en_GB&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/PrdZnlJZRzM?version=3&amp;hl=en_GB&amp;rel=0" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Update: We found a better HD quality Video <img src='http://celarek.at/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://celarek.at/2012/01/chawah-final-update-a-little-latish/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chawah Progress</title>
		<link>http://celarek.at/2011/06/chawah-progress/</link>
		<comments>http://celarek.at/2011/06/chawah-progress/#comments</comments>
		<pubDate>Sat, 04 Jun 2011 16:04:53 +0000</pubDate>
		<dc:creator>Adam Celarek</dc:creator>
				<category><![CDATA[Computer graphics]]></category>
		<category><![CDATA[CG]]></category>
		<category><![CDATA[Chawah]]></category>
		<category><![CDATA[Environment mapping]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[OpenGL]]></category>

		<guid isPermaLink="false">http://celarek.at/?p=127</guid>
		<description><![CDATA[More than one month since my last post and we (Felix and me) are quite satisfied with our progress. There is some basic game logic (you can destroy the other ship and then the game restarts), health display and physics. We got all points at our first submission and currently we are starting implementing the [...]]]></description>
				<content:encoded><![CDATA[<p>More than one month since my last post and we (Felix and me) are quite satisfied with our progress. There is some basic game logic (you can destroy the other ship and then the game restarts), health display and physics. We got all points at our first submission and currently we are starting implementing the <a href="https://cg2.cg.tuwien.ac.at/wiki/doku.php?id=students:ss2011:chawah:design_document&#effects">effects</a>. Environment mapping is already in place.<br />
<a href="http://celarek.at/wp/wp-content/uploads/2011/06/chawah3.jpeg"><img src="http://celarek.at/wp/wp-content/uploads/2011/06/chawah3-300x187.jpg" alt="" title="Third Chawah Screenshot" width="300" height="187" class="aligncenter size-medium wp-image-125" /></a><br />
<a href="http://celarek.at/wp/wp-content/uploads/2011/06/chawah4.jpeg"><img src="http://celarek.at/wp/wp-content/uploads/2011/06/chawah4-300x187.jpg" alt="" title="Fourth Chawah Screenshot" width="300" height="187" class="aligncenter size-medium wp-image-126" /></a></p>
<p>I&#8217;ve made a short video, where you can see bullet physics in action (at the end of the video you can see bullet debug mode enabled).<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/MvwcdqsD75M?hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/MvwcdqsD75M?hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
Music by <a href="http://www.jamendo.com/en/artist/b.z.d.h">Bézèd&#8217;h</a>, music and video are CC licensed.</p>
]]></content:encoded>
			<wfw:commentRss>http://celarek.at/2011/06/chawah-progress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First chawah screenshots</title>
		<link>http://celarek.at/2011/04/first-chawah-screenshots/</link>
		<comments>http://celarek.at/2011/04/first-chawah-screenshots/#comments</comments>
		<pubDate>Wed, 27 Apr 2011 23:02:59 +0000</pubDate>
		<dc:creator>Adam Celarek</dc:creator>
				<category><![CDATA[Computer graphics]]></category>
		<category><![CDATA[Assimp]]></category>
		<category><![CDATA[CG]]></category>
		<category><![CDATA[Chawah]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[GLEW]]></category>
		<category><![CDATA[GLFW]]></category>
		<category><![CDATA[OpenGL]]></category>

		<guid isPermaLink="false">http://celarek.at/?p=108</guid>
		<description><![CDATA[Unfortunatly I hadn&#8217;t time for Krita any time recently. I had to work and do stuff for university. I will focus more on Krita in summer again.. This term i&#8217;m attending the second computer graphics course in my university. The goal is to program a 3d game in OpenGL. We (Felix and me) chose to [...]]]></description>
				<content:encoded><![CDATA[<p>Unfortunatly I hadn&#8217;t time for Krita any time recently. I had to work and do stuff for university. I will focus more on Krita in summer again..</p>
<p>This term i&#8217;m attending the second <a href="http://cg.tuwien.ac.at/courses/CG23/LU.html">computer graphics</a> course in my university. The goal is to program a 3d game in OpenGL. We (Felix and me) chose to program a <a href="https://cg2.cg.tuwien.ac.at/wiki/doku.php?id=students:ss2011:chawah:overview">split screen flight duel game</a>, as this is a simple game concept, but it&#8217;s still very extensible graphics and game logic wise.</p>
<p>The first step was to setup OpenGL etc. (<a href="http://glew.sourceforge.net/">GLEW</a>, <a href="http://www.glfw.org/">GLFW</a>), which produced this first screen shot in begin of April.<br />
<img src="http://celarek.at/wp/wp-content/uploads/2011/04/chawah1.jpg" alt="First Chawah screen shot" height="200" /></p>
<p>We have worked hard and now we have implemented model loading (<a href="http://assimp.sourceforge.net/">Assimp</a>), shading, texturing, controls and split screen. Looks good for our first deadline <img src='http://celarek.at/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<a href="http://celarek.at/wp/wp-content/uploads/2011/04/chawah2.jpg"><img src="http://celarek.at/wp/wp-content/uploads/2011/04/chawah2.jpg" alt="First Chawah screen shot" height="200" /></a></p>
<p>Next steps will be to implement some more game logic, in game display of hull state, frags and menu and then physics. We will use <a href="http://www.cegui.org.uk">CEGUI</a> and <a href="http://bulletphysics.org">Bullet</a> for these tasks..</p>
]]></content:encoded>
			<wfw:commentRss>http://celarek.at/2011/04/first-chawah-screenshots/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A new curve widget for Krita</title>
		<link>http://celarek.at/2010/08/a-new-curve-widget-for-krita/</link>
		<comments>http://celarek.at/2010/08/a-new-curve-widget-for-krita/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 11:48:44 +0000</pubDate>
		<dc:creator>Adam Celarek</dc:creator>
				<category><![CDATA[KDE]]></category>

		<guid isPermaLink="false">http://celarek.at/?p=98</guid>
		<description><![CDATA[I&#8217;m coding right now on a new curve widget. Here are some screen-shots of the still unfinished work: There are no icons yet, but enkithan promised to create some, thanks . It&#8217;s currently not yet possible to extract the curves as data and i still have to port the current krita curve (some kind of [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m coding right now on a new curve widget. Here are some screen-shots of the still unfinished work:<br />
<img src="http://celarek.at/wp/wp-content/uploads/2010/08/curvewidget1.png" alt="freehand curve" /><br />
<img src="http://celarek.at/wp/wp-content/uploads/2010/08/curvewidget2.png" alt="cubic curve" /><br />
<img src="http://celarek.at/wp/wp-content/uploads/2010/08/curvewidget3.png" alt="linear curve" /><br />
<img src="http://celarek.at/wp/wp-content/uploads/2010/08/curvewidget4.png" alt="another cubic curve" /></p>
<p>There are no icons yet, but enkithan promised to create some, thanks <img src='http://celarek.at/wp/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . It&#8217;s currently not yet possible to extract the curves as data and i still have to port the current krita curve (some kind of function curve made by <a href="http://dimula73.blogspot.com/">Dmitry Kazakov</a>) to this new widget and integrate it in Krita.</p>
<p>I was told, that Dmitry has created an extendible api. If i can reuse that, it would be possible to replace all widgets at once, which in turn would mean, that the new curve could appear in Krita 2.3. Unfortunately i broke my ankle last week, while climbing in Croatia, and i have to undergo a surgery next Thursday or Friday, so maybe i won&#8217;t be able to code in the next week.</p>
]]></content:encoded>
			<wfw:commentRss>http://celarek.at/2010/08/a-new-curve-widget-for-krita/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Krita GSoC: Colour selectors once more</title>
		<link>http://celarek.at/2010/08/krita-gsoc-colour-selectors-once-more/</link>
		<comments>http://celarek.at/2010/08/krita-gsoc-colour-selectors-once-more/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 00:14:53 +0000</pubDate>
		<dc:creator>Adam Celarek</dc:creator>
				<category><![CDATA[KDE]]></category>

		<guid isPermaLink="false">http://celarek.at/?p=76</guid>
		<description><![CDATA[My last blog was long ago. I know, this is bad, i should blog every week, but well i didn&#8217;t really had interesting news. I was doing very much small changes, tweaks, bug fixes, layouting code and much more. The last bigger addition was the minimal shade selector, I will talk about it in a [...]]]></description>
				<content:encoded><![CDATA[<p>My last blog was long ago. I know, this is bad, i should blog every week, but well i didn&#8217;t really had interesting news.</p>
<p>I was doing very much small changes, tweaks, bug fixes, layouting code and much more. The last bigger addition was the minimal shade selector, I will talk about it in a few lines.</p>
<p>But first here is a small summary, of what i was doing since the last blog post: I&#8217;ve connect the colour selectors to the resource manager, made the settings save to kritarc, added a tab in krita preferences (thanks Boud for the new registry, that was needed for that), added a colour history, moved the settings button to a more space efficient place, implemented drag and drop for colours, shortcuts for quick access and an api for setting a colour. The last point was actually much more difficult, than it sounds, because of the way, the selectors work with colour spaces. The selector has to search for the colour, that generates the user visible colour by using the colour spaces. <a href="http://celarek.at/wp/wp-content/uploads/2010/08/colorProb.png">Here is an attempt to explain it graphically.</a></p>
<p>Lets turn to a slightly more interesting thing, the minimal shade selector. Probably some pictures are better than 1000 words <img src='http://celarek.at/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<img src="http://celarek.at/wp/wp-content/uploads/2010/08/minimalShadeSelector.png" alt="minimal shade selector" /><img src="http://celarek.at/wp/wp-content/uploads/2010/08/minimalShadeSelector2.png" alt="minimal shade selector 2" /><img src="http://celarek.at/wp/wp-content/uploads/2010/08/minimalShadeSelector1.png" alt="minimal shade selector 3" /><br />
It&#8217;s the bottom part with the gradients / patches.</p>
<p>Here is the configuration dialog.<br />
<img src="http://celarek.at/wp/wp-content/uploads/2010/08/shadeConfig.png" alt="shade selector configuration" /></p>
<p>And the combo box for selecting the gradients.<br />
<img src="http://celarek.at/wp/wp-content/uploads/2010/08/minimalShadeSelectorLines.png" alt="minimal shade combo box" /><br />
You can select one of the predefined gradients or configure one in the highlighted area.</p>
<p>That&#8217;s it for now..</p>
<p>Next Tuesday I&#8217;m going on a motorcycle trip to Constanta, which certainly will take a few days. So in that time I will be offline. Hopefully the weather will be ok <img src='http://celarek.at/wp/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://celarek.at/2010/08/krita-gsoc-colour-selectors-once-more/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Krita GSoC: Colour selectors with Colourspaces support</title>
		<link>http://celarek.at/2010/07/krita-gsoc-colour-selectors-with-colourspaces-support/</link>
		<comments>http://celarek.at/2010/07/krita-gsoc-colour-selectors-with-colourspaces-support/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 11:29:23 +0000</pubDate>
		<dc:creator>Adam Celarek</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[colour selectors]]></category>
		<category><![CDATA[gsoc2010]]></category>
		<category><![CDATA[krita]]></category>
		<category><![CDATA[mypaint]]></category>

		<guid isPermaLink="false">http://celarek.at/?p=64</guid>
		<description><![CDATA[Hi, my last post was long ago, the reason were my exams which ended a week ago and which forced me to do some learning. But in the past week I started working on Krita again. All selector types from this site are implemented now. All of them support colour spaces, which is important, if [...]]]></description>
				<content:encoded><![CDATA[<p>Hi,<br />
my last post was long ago, the reason were my exams which ended a week ago and which forced me to do some learning. But in the past week I started working on <a href="http://www.krita.org">Krita</a> again.</p>
<p>All selector types from <a href="http://community.kde.org/Krita/Community_Mockups_and_Wishlist#Color_selector_Types">this site</a> are implemented now. All of them support colour spaces, which is important, if using cmyk. There is quite a difference in what you are probably used to, as you can see here:<br />
<img src="http://celarek.at/wp/wp-content/uploads/2010/07/colorselectorselectorwidget.png" alt="colour selector types" /></p>
<p>This is of course still work in progress. I plan to change the layout of the selectors dynamically according to the space provided. For instance the horizontal slider of the wheel selector will be a vertical one, if the width is greater than the height. This way the widget will be very space efficient.</p>
<p>I also made the <a href="http://mypaint.intilinux.com/">MyPaint</a> shade selector colour space aware. Here is a direct comparison between cmyk at the top and rgb at the bottom.<br />
<img src="http://celarek.at/wp/wp-content/uploads/2010/07/mypaintall.png" alt="my paint selector, cmyk and rgb" /><br />
As you probably see, this widget is not antialiased. It&#8217;s not as simple as setting a flag in Qt, but during programming the standard selectors, I&#8217;ve learned, how to make it antialiased. So in the final version there will certainly be a MyPaint selector with antialiased edges. If I have time, I will also happily implement some of <a href="http://wiki.mypaint.info/Brainstorming/UI/ColorSelector">these</a> ideas.</p>
]]></content:encoded>
			<wfw:commentRss>http://celarek.at/2010/07/krita-gsoc-colour-selectors-with-colourspaces-support/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Krita GSoC: Layouting code for colour selector mostly done</title>
		<link>http://celarek.at/2010/06/krita-gsoc-layouting-code-for-colour-selector-mostly-done/</link>
		<comments>http://celarek.at/2010/06/krita-gsoc-layouting-code-for-colour-selector-mostly-done/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 19:38:48 +0000</pubDate>
		<dc:creator>Adam Celarek</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[gsoc2010]]></category>
		<category><![CDATA[krita]]></category>

		<guid isPermaLink="false">http://celarek.at/?p=33</guid>
		<description><![CDATA[One of my goals in my project was to create a colour selector, which has many features but uses little space. However it&#8217;s hard to select a colour, if the chooser is small, because 1. it&#8217;s small and 2. a small chooser with view pixels cannot show all colours. I approached this from two sides: [...]]]></description>
				<content:encoded><![CDATA[<p>One of my goals in my project was to create a colour selector, which has many features but uses little space. However it&#8217;s hard to select a colour, if the chooser is small, because 1. it&#8217;s small and 2. a small chooser with view pixels cannot show all colours.</p>
<p>I approached this from two sides: a space efficient and configurable layout, so that the user can select whichever size fits him best and an optional zoom, so that the user can make the widget small and yet simply make the chooser bigger, if he needs it.</p>
<p>Edit2:<br />
The colour patches below the selectors represent common colours from the image and on the right there will be a history of last used colours..</p>
<p>So here are some screenshots, on how it looks like currently.<br />
This is a &#8216;big&#8217; layout,<br />
<img src="http://celarek.at/wp/wp-content/uploads/2010/06/colorselector1.png" alt="'big' layout" /></p>
<p>&#8216;small&#8217; and space efficient,<br />
<img src="http://celarek.at/wp/wp-content/uploads/2010/06/colorselector2.png" alt="'small', horizontal layout" /></p>
<p>a popup with a bigger selector,<br />
<img src="http://celarek.at/wp/wp-content/uploads/2010/06/colorselector3.png" alt="popup (zoom)" /></p>
<p>and finally a page from the settings window.<br />
<img src="http://celarek.at/wp/wp-content/uploads/2010/06/colorselector4.png" alt="a page from the settings window" /></p>
<p>Not all of the settings are connected already, the colour selector (triangle in the images) is just a dummy and the whole thing is not connected to the painting colour.<br />
But I hope to get some comments on the layouting, maybe some more ideas and so on. I&#8217;ve just enabled building of this plugin in trunk, if you want to test it, you probably also have to enable this docker in settings menu -> dockers -> Color Selector Ng.</p>
<p>Edit:<br />
This is still work in progress, next steps will be to gather some comments on usability, refine layouting and move on to implement pigment, colour selectors and so on. It&#8217;s not even half time of GSoC <img src='http://celarek.at/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://celarek.at/2010/06/krita-gsoc-layouting-code-for-colour-selector-mostly-done/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Krita GSoC: Implemented algorithm for extracting colours and ported MyPaint algorithm for shade selector</title>
		<link>http://celarek.at/2010/06/krita-gsoc-implemented-algorithm-for-extracting-colours-and-ported-mypaint-algorithm-for-shade-selector/</link>
		<comments>http://celarek.at/2010/06/krita-gsoc-implemented-algorithm-for-extracting-colours-and-ported-mypaint-algorithm-for-shade-selector/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 11:38:34 +0000</pubDate>
		<dc:creator>Adam Celarek</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[gsoc2010]]></category>
		<category><![CDATA[krita]]></category>

		<guid isPermaLink="false">http://celarek.at/?p=18</guid>
		<description><![CDATA[Hi, i&#8217;ve implemented an algorithm to extract the most important colours of an image. Here is an example of what it does: Here are more examples The algorithm is a slightly modified version of median cut and it is quite the same as the one used in JFIF jpeg library for reducing colours and indexing [...]]]></description>
				<content:encoded><![CDATA[<p>Hi,<br />
i&#8217;ve implemented an algorithm to extract the most important colours of an image. Here is an example of what it does:<br />
<img src="http://celarek.at/wp/wp-content/uploads/2010/06/s6.png" alt="" /><br />
<a href="http://celarek.at/wp/wp-content/uploads/2010/06/colourExtractDemo.jpg">Here are more examples</a></p>
<p>The algorithm is a slightly modified version of <a href="http://en.wikipedia.org/wiki/Median_cut">median cut</a> and it is quite the same as the one used in JFIF jpeg library for reducing colours and indexing images. There is a quite good and easy to understand <a href="http://www.leptonica.com/papers/mediancut.pdf">paper from leptonica</a> on this topic. Thanks to pippin for guiding me to median cut <img src='http://celarek.at/wp/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  .</p>
<p>I also ported the shade selector algorithm from <a href="http://mypaint.intilinux.com/">MyPaint</a> to Krita. This is already a docker in Krita, but it isn&#8217;t connected yet:<br />
<img src="http://celarek.at/wp/wp-content/uploads/2010/06/s9.png" alt="" />.</p>
<p>Also, <a href="http://wiki.koffice.org/index.php?title=Pigment">Pigment</a> is not yet used, which is important to support colour spaces properly. Anyway, the next step will be to implement all widgets with dummy graphics, so Pigment and connection must wait.</p>
]]></content:encoded>
			<wfw:commentRss>http://celarek.at/2010/06/krita-gsoc-implemented-algorithm-for-extracting-colours-and-ported-mypaint-algorithm-for-shade-selector/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
