<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<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/"
	>

<channel>
	<title>antialiasing &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/antialiasing/</link>
	<description>Feed of posts on WordPress.com tagged "antialiasing"</description>
	<pubDate>Tue, 08 Dec 2009 19:21:04 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Forcing Anti-Aliasing (AA) on older Games]]></title>
<link>http://asknask.wordpress.com/2009/12/03/forcing-anti-aliasing-aa-on-older-games/</link>
<pubDate>Thu, 03 Dec 2009 15:26:49 +0000</pubDate>
<dc:creator>Asim</dc:creator>
<guid>http://asknask.wordpress.com/2009/12/03/forcing-anti-aliasing-aa-on-older-games/</guid>
<description><![CDATA[I remember the year 1998 when I bought my first computer (or&#8230; when my parents bought me my fir]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I remember the year 1998 when I bought my first computer (or&#8230; when my parents bought me my first computer)&#8230; It was an Intel Celeron PC clocked at 366MHz, 64kb L2 cache, with a 4mb Trident 3D Accelerator and 32mb of RAM operating at a frequency of 100MHz. The HDD was 4.3 gigs.</p>
<p>Today, Its a totally different story. I have a Dual Core processor clocked at a speed of 3600MHz, with 6144kb L2 cache. The 3D card has GDDR3 memory of size 896mb. The RAM is 4096mb and operated at almost 1000MHz. The HDD is 500 gigs.</p>
<p>Point is, times have changed. The world of computers is advancing at a breathtaking pace. New processor architectures are unveiled almost every couple of years. In the same way, 3D graphic cards are also getting faster and powerful by the day. The mainstream cards of today are able to process teraflops of data without breaking sweat.</p>
<p>Now suppose you own a GTX 260 and you see an old game that you want to play. By old, I don&#8217;t mean Doom 2 old. I&#8217;m talking about games from this decade. For this tutorial, I&#8217;ll be using the game Cricket Revolution as an example. Although a new game, Cricket Revolution&#8217;s graphical requirements are very modest. The game runs fine on most 3D cards, and even on the built-in Intel chipset accelerators. Now if you run this game on a GTX 260, you are wasting a lot of graphical power! Well&#8230; Why not apply anti-aliasing to the game? Why not force anisotropic filtering? We&#8217;ll do just that.</p>
<h3><span style="color:#ff0000;">This tutorial is for NVIDIA cards only. You can do this with ATI cards as well, but since I currently use NVIDIA, I can only assist NVIDIA users.</span></h3>
<p><span style="color:#ffffff;">1- Open the NVIDIA  Control Panel.</span></p>
<p><span style="color:#ff0000;"><span style="color:#000000;"><img class="aligncenter" title="NVIDIA Control Panel" src="http://img21.imageshack.us/img21/600/captureybm.jpg" alt="" width="974" height="718" /><br />
</span></span></p>
<p><span style="color:#ffffff;">2- In the left pane, click <strong>Manage 3D Settings</strong>.</span></p>
<p><span style="color:#ff0000;"><span style="color:#000000;"><img class="aligncenter" title="Manage 3D Settings" src="http://img138.imageshack.us/img138/2264/capture2.jpg" alt="" width="974" height="718" /><br />
</span></span></p>
<p><span style="color:#ffffff;">3- Click <strong>Add</strong> and point the browser to your game executable (.exe).</span></p>
<p><img class="aligncenter" title="Add a new game" src="http://img249.imageshack.us/img249/1035/capture3i.jpg" alt="" width="974" height="718" /></p>
<p><span style="color:#ffffff;">4- Once your game appears in the drop-down list, select it. Now comes the important part. Applying settings.</span></p>
<p><span style="color:#ffffff;">5- In the field next to <strong>Anisotropic Filtering</strong>, select <strong>16x</strong>.</span></p>
<p><img class="alignnone" title="Anisotropic Filtering - 16x" src="http://img21.imageshack.us/img21/7990/35489271.jpg" alt="" width="546" height="486" /></p>
<p><span style="color:#ffffff;">6- In the field next to <strong>Anti-aliasing Mode</strong>, select <strong>Override any Application setting</strong>.</span></p>
<p><img class="aligncenter" title="Anti-Aliasing Mode - Override Application Settings" src="http://img215.imageshack.us/img215/6376/19350033.jpg" alt="" width="530" height="425" /></p>
<p><span style="color:#ffffff;">7- In the field <strong>Anti-aliasing Setting</strong>, select <strong>16xQ</strong>.</span></p>
<p><img class="aligncenter" title="Anti-Aliasing Setting - 16xQ" src="http://img256.imageshack.us/img256/9163/27154898.jpg" alt="" width="558" height="434" /></p>
<p><span style="color:#ffffff;">8- Click <strong>Apply</strong>.</span></p>
<p>That is it! You&#8217;re done. Now, when you run your game, it will have proper AA (anti-aliasing) and AF (anisotropic filtering). The difference it makes in Cricket Revolution can be seen below:</p>
<p><strong>Cricket Revolution WITHOUT AA/AF</strong></p>
<p><strong><img class="alignnone" title="Image Quality without AA/AF" src="http://img3.imageshack.us/img3/9937/cricketrevolution200912.png" alt="" width="399" height="361" /><br />
</strong></p>
<p><strong>Cricket Revolution WITH AA/AF</strong></p>
<p><strong><img class="alignnone" title="Image Quality with AA/AF" src="http://img3.imageshack.us/img3/6584/cricketrevolution200912n.png" alt="" width="399" height="361" /><br />
</strong></p>
<p>As you can see, the edges of the second images are much more smooth compared the first one.</p>
<p>Try this on other games and see if it improves your gaming experience!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[deferred rendering in frameranger.]]></title>
<link>http://directtovideo.wordpress.com/2009/11/13/deferred-rendering-in-frameranger/</link>
<pubDate>Fri, 13 Nov 2009 12:43:31 +0000</pubDate>
<dc:creator>directtovideo</dc:creator>
<guid>http://directtovideo.wordpress.com/2009/11/13/deferred-rendering-in-frameranger/</guid>
<description><![CDATA[(This is going to get technical. Fast.) I&#8217;m a big fan of deferred rendering as you might have ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>(This is going to get technical. Fast.)</p>
<p>I&#8217;m a big fan of deferred rendering as you might have gathered from my <a href="http://research.scee.net/files/presentations/gdc2009/DeferredLightingandPostProcessingonPS3.ppt">GDC 09</a> talk. So it made sense that for Frameranger, and subsequent projects, I moved my demo engine over from what was essentially a forward renderer to a complete deferred renderer. I wanted to share some of the experience here. There are some good introductions to deferred rendering out there, like <a href="http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter09.html">this one</a>, which cover the basics so I don&#8217;t have to.</p>
<p>Note, I&#8217;m working on DX9 &#8211; DX10 wasn&#8217;t an option at the time of development (and still isn&#8217;t, really, until the supporting OSes take the vast majority of the market) &#8211; so that adjusts my available feature set. No depth buffer reads, no hardware MSAA.</p>
<p>So, why go deferred?</p>
<ul>
<li>Only need one geometry pass for the main render. Previously we usually needed a z prepass for performance, and sometimes even another separate pass for motion blur velocities and for depths for SSAO and other effects. For some of the stuff we had to render which was very high poly or had a lot of draw calls, or where it wasn&#8217;t polygons at all, only having to do them once is important. (Shadows still always cost extra, though.)</li>
<li>Separate rasterisation and shading. Not having to worry about lighting and so on at the geometry stage means that the geometry stage becomes simple, and most geometry shares one shader &#8211; we don&#8217;t need so many combinations of ubershader anymore. Combined with the reduced number of geometry passes it means we can reduce our batch count, amount of state changes and number of shaders we have to generate by a lot.</li>
<li>Lighting as a 2D post process. Apply as many lights as you want, efficiently, and without having to build many uber shader combinations. As many lights as we want, as many types of lights as we want, mixing shadowed and unshadowed, potentially handling 1000s of lights.</li>
<li>Spatially optimise lighting and complex shading. Only apply light to the pixels which are actually in the light&#8217;s area of effect.</li>
<li>Only shade pixels with complex lighting shaders once (per light) &#8211; less issues with overdraw from geometry rendering.</li>
<li>Use the additional GBuffer information to do some more interesting post fx and rendering.</li>
</ul>
<p>So there were a lot of things we wanted a piece of. Unfortunately there are some major downsides too, which is why I hadn&#8217;t gone down this road before:</p>
<ul>
<li>No hardware antialiasing (on DX9). For me this had been the killer up to now. I don&#8217;t like unantialised renders. This time around though the benefits were so big that I decided to just screw it and worry about antialiasing later.</li>
<li>Overhead of memory use &#8211; we need to store those fat-ass GBuffers somewhere &#8211; and rendering. It smooths out the render performance with all the pretty fixed overheads &#8211; which makes the complex cases faster (or work at all), but the simple cases are potentially a lot slower. I decided our general case is complex enough not to care about the simple cases.</li>
<li>Potentially reduced material flexibility. We can&#8217;t just hack a shader which computes some lighting and messes with the equations for that one material &#8211; we have to do everything en-masse in 2D processes.</li>
<li>Alpha stuff still has to be handled in a second, forward rendered pass. Which means we still need a working forward renderer.</li>
</ul>
<p>So, I managed to sufficiently minimise in my head how much I cared about the downsides and just crack on and implement the deferred renderer to see what happened. It was actually very easy to do &#8211; a day or two&#8217;s work had the whole thing up and running with multiple types of light working. Then there were weeks or months of work in adding all the interesting stuff on top.</p>
<p>The first task was to get the geometry rendered to GBuffers. When rendering the GBuffers it&#8217;s important to minimise the number of channels and the bit depth required &#8211; the greater it is, the more memory and slower the render is. You also have to consider how you want to read the data &#8211; you probably don&#8217;t need the colour info until late in the day, whereas the normals are needed a lot &#8211; so don&#8217;t pack something you need a lot with the colours, because it&#8217;ll be a wasted additional GBuffer read.<br />
I used 3 or 4 MRTs for my GBuffer rendering, depending on whether or not motion blur was enabled, where each MRT was 32 bits wide. The channels I rendered to GBuffers were:</p>
<p>Colour+ObjectIndex : RGBA8888;<br />
Normal+MaterialIndex : RGBA8888;<br />
Depth : Float32<br />
VelocityBuffer (optional &#8211; only if motion blur enabled) : RG Float16<br />
and of course a D24S8 depthstencil. Which I cant read from, because DX9 doesnt allow it. How annoying. If I could I could skip that float32 depth, like I would on PS3. But I can&#8217;t. Damnit. Actually it works on ATI, so it&#8217;s just NVIDIA that&#8217;s the problem. Dear NVIDIA: you guys managed to hack in almost every other feature under the sun using 4CCs and other tricks, so how about adding depth buffer value reads for DX9, and multisampled buffer reads while you&#8217;re there? Go on &#8211; I bet it&#8217;s there in the drivers already, and I just don&#8217;t know what the magic incantation is to access it.</p>
<p>One thing that comes up a lot when discussing deferred renderers is the storage of normals. Nearaz has a <a href="http://aras-p.info/texts/CompactNormalStorage.html">really good summary / investigation</a> of the different methods. I&#8217;m lazy, so initially I just wrote out the normal as an XYZ, deciding that if I ever needed an extra GBuffer channel I&#8217;d fix it and use XY in a compacted form and recreate Z. So far I didn&#8217;t.</p>
<p>Next I added the basic light types. It&#8217;s pretty easy to move the lighting code over from a forward render &#8211; it just needed the extra code to pull the values out of the GBuffers and back project to recreate positions, rather than pull everything out of the vertex interpolators.<br />
Spot lights were trivial, of course. A single projected shadow map did the job. Point lights proved annoying because of another D3D limitation &#8211; I couldn&#8217;t create a depth stencil cubemap, and I wanted to render to a depth stencil for efficiency on render and for free hardware PCF &#8211; so I ended up making a &#8220;virtual cube map&#8221; which spread the faces out on a 2D texture. Finally, for directional lights I implemented a varying number of cascaded shadow maps. Directionals proved to be by far the most used light type, and I put some work into making it calculate a good set of shadows for the splits.</p>
<p>The nice trick with a deferred renderer is that I can apply the splits separately to the screen in 2D, rather than sampling all of them per pixel. I first render a series of view-aligned planes at the depth of each split, front to back, into the depth+stencil, marking the stencil where they pass the depth test. This gives me a series of stencil masks that I can use to test against when rendering full screen quads, one per split, which sample just that one split&#8217;s shadow map each.</p>
<p><img src="http://directtovideo.wordpress.com/files/2009/10/deferred_2points.jpg" alt="An early test with deferred lighting using two point lights." /></p>
<p>The initial work of adding the lighting was quite easy, but it instantly proved the benefits of deferred shading. Previously, just adding a new type of light, changing lighting code or adding more influencing lights cost work &#8211; a new shader code path which had to be propogated through the ubershaders &#8211; increasing the compile time every time &#8211;  and then into the code to select the ubershaders. There was a hard limit on the complexity of each light and the number of lights, because of the hard limit on the size of shaders and, more pressingly, the number of textures that could be used at once. But now it was simply a case of adding another 2D pass, and a single piece of shader code which could be edited and reloaded over and over again easily. I had never bothered to add all the different light types or cascading shadow map support to my forward renderer because it required too many permutations and too many simultaneous textures, but now I had it all working easily, and finally could handle shadows well from massive scenes with directional lights. Adding deferred rendering had already paid off.</p>
<p>Now, what about those classic problems with deferred rendering?</p>
<p><strong>Flexibility</strong></p>
<p>The next issue was that of flexibility &#8211; how to get materials that look different to each other. With forward renders it&#8217;s easy &#8211; you just make a different shader for the material, and change the behaviour of that material. But with deferred renderers it doesn&#8217;t work like that &#8211; everything is done in a series of 2D passes on the whole screen. So, you have to render extra information into the GBuffers which tell those passes how to produce the correct behaviour for each pixel. Unfortunately GBuffers get fat fast if you add a lot of parameters. Most of our parameters varied per material, so I simply created a material palette as I was rendering the objects of all the unique materials, and wrote two indices to the GBuffers &#8211; the object index, and the material index. Both limited to 256 indices (lists updated per frame). Bad news? Well, if we had that many draw calls we&#8217;d be screwed performance-wise anyway, so a 256 material+object limit didn&#8217;t matter.</p>
<p>As development continued, the data in our material palette grew and grew. By the end it was several textures worth &#8211; with data for fresnel coefficients, how to apply envmaps, various light equation constant modifiers, and so on. It enabled us to easily adjust the material parameters without adding a lot to our GBuffers. I&#8217;ve heard it said that this doesn&#8217;t work &#8211; because you want to vary a lot per pixel, like specular gloss, specular power, and so on, and this doesn&#8217;t allow it. I&#8217;ve also heard that you need lots of different shaders to get a good look. Well, it was never the case for us. Probably 90% of our geometry always went through the same default shader; we didn&#8217;t adjust that much per pixel in textures except where it was really needed &#8211; it added a lot more work to the art side as well as more space requirements.</p>
<p>Another useful thing about the material palette came to light later on when optimising the renderer to reduce draw call counts. The only remaining per-material parameters that were used when rendering the mesh were the textures and the material index &#8211; everything else was in the material palette. That meant that it was easy to merge meshes together and store a palette index in a vertex buffer channel I didn&#8217;t need (I used vertex colour alpha). This meant I could pack the meshes down completely except where the textures differed, but still allow on-the-fly editing of the separate material properties. In addition I could actually change the material index per pixel if I wanted &#8211; e.g. using a mask texture to select between two materials &#8211; with very little overhead. This exposed a whole new set of tricks and went some way to solving the problem of not being able to vary material properties using textures.</p>
<p>Besides that, where we did need something special there were a few tricks we could use when applying shading in the deferred passes. The material ID + object ID could be used to mask in whole special materials for certain objects (or parts of objects). For example, the car had a special paint shader that was masked in. Each material palette entry had a world-space bound box which was accumulated for all the objects which used it per frame; this was used to generate accurate-enough masks for 2D passes quickly and efficiently. And when it came to that extra bit of per-pixel data we needed but just didn&#8217;t have &#8211; we generated it. A simple function of the position and normal was plenty enough to sample a dirt texture or noise texture for fading reflections in and out or adjusting the bluriness. It&#8217;s a basic, hacked up form of deferred texturing, and it did the job nicely. Fortunately it&#8217;s really easy in my renderer to add extra passes and stages into the rendering pipeline, so this was something we could use a lot to customise things.</p>
<p><img src="http://directtovideo.wordpress.com/files/2009/10/carshader01.jpg" alt="custom shader used for the car paint, applied in the deferred render" /></p>
<p>The deferred approach obviously worked great for lights. Number of lights is usually the big sell for deferred rendering. But it worked great for environment maps too. In Frameranger we had quite a lot of shiny stuff &#8211; e.g. a car and a robot &#8211; and we wanted to handle it by multiple dynamic environment maps. With the deferred render it was easy to apply. We attached dynamic envmap nodes to things so they moved around, and then attached different objects as inputs and outputs. The inputs get rendered to the envmap, and the outputs get the envmap applied to them. To apply, I generated a small dynamic 1d mask texture which mapped the object indices to white or black &#8211; so I could sample it per pixel using the object index and determine whether that object was affected by the envmap. I calculated world-space bounds for the objects which received the envmap and used that to roughly stencil in the shader, and applied the envmap additively, adjusting it using parameters from the material tables. To control fresnel reflection we wanted something better than the usual single &#8220;fresnel power&#8221; parameter. In Lightwave you can create an envelope for it and explicitly control the fresnel response over the range of the incident angle values, and I wanted something similar &#8211; so I exposed 4 control values and used a 1d bezier curve to interpolate them. Worked great &#8211; you could generate a very flexible response with it.</p>
<p><strong>Non-polygonal elements</strong></p>
<p>We hand to render more than just triangle-based meshes. Some of the effects &#8211; specifically the liquids / fluid dynamics &#8211; were raytraced using distance fields. Rather than write a special shading path to handle their lighting I decided to just add these into the deferred rendering pipeline and use the routines that were already in place. This had the benefit of making them interact properly with the other objects in the scene, casting shadows onto them, receiving shadows from them, working with dynamic environment maps and so on &#8211; it meant the effects looked properly part of the scene, not just floating in space separate from everything else.</p>
<p><img src="http://directtovideo.wordpress.com/files/2009/11/fluid_jar_01.jpg" alt="raytraced fluid deferred rendered and mixed with poly elements" /></p>
<p>It was pretty easy to add. I raytraced the distance fields and output the results straight to the GBuffer &#8211; depth, normal, colour, etc. This also meant the ZBuffer was correct so the effects overlapped properly with the rest of the geometry. For the shadow map rendering passes I just raytraced them from the light&#8217;s point of view straight into the depth shadow map. It worked out nicely without too much effort.</p>
<p><img src="http://directtovideo.wordpress.com/files/2009/11/fluid_jar_02.jpg" alt="raytraced fluid with deferred rendering, mixed with polygonal elements" /></p>
<p><strong>Alpha stuff</strong></p>
<p>Alpha stuff doesn&#8217;t like deferred rendering &#8211; sad but true. Actually I have found a way around it so you can perform deferred rendering on some alpha stuff too &#8211; I&#8217;ll get onto that in another post &#8211; but in terms of general alpha blended stuff, you&#8217;re limited to using a forward render which mimics the look of the deferred rendered geometry. Fortunately in Frameranger we didn&#8217;t have that much generic alpha mesh stuff to deal with &#8211; the particles, smoke, light beams and so on were already special cases or handled with effects in other ways &#8211; so it wasn&#8217;t a massive deal. We also avoided treating punch-through alphas or cutouts as &#8220;alpha&#8221; by using alpha testing dithered with a random noise map. As it turned out I just used my ubershadered forward rendering code for the alpha stuff like a &#8220;legacy&#8221; pass. One compromise I made was to skip shadow receiving for alpha stuff &#8211; although it would have been possible, it would have meant I&#8217;d have had to keep the shadow maps around longer than the deferred passes, whereas at present the same maps could be reused for all the lights. In reality, the only real alpha stuff we had to deal with in this way were a couple of transparent bits on the car.</p>
<p><strong>Antialiasing</strong></p>
<p>One of the major downsides of deferred rendering is the inability to apply standard hardware MSAA to it. On some architectures it&#8217;s possible to use MSAA when rendering the Gbuffers, but you have to do the slow bit &#8211; using the GBuffers to perform deferred rendering passes &#8211; on a per-sample basis. i.e. for 4x MSAA, you have to light 4x as many pixels and then average the results at the end. Our aim is to achieve a comparable quality of antialiasing as MSAA provides forward renderers, but with the cost of deferred rendering with unantialiased rendertargets &#8211; i.e. only lighting the number of actual pixels on screen. With deferred rendering much of the cost of rendering is pushed to the deferred, 2D passes, so it&#8217;s important to avoid incurring a large performance cost there when adding antialiasing &#8211; scaling that cost by 4 to support 4x MSAA is not feasible.<br />
On consoles or DX10 the natural starting point is to render the geometry to MSAA GBuffers and to try and optimise the lighting process so you don&#8217;t need to light every sample. Indeed, I outlined how to optimise the process on Playstation 3 in my <a href="http://research.scee.net/files/presentations/gdc2009/DeferredLightingandPostProcessingonPS3.ppt">GDC 09 presentation</a>. That can reduce the number of additional samples you have to light to only around 20-30% more than the number of pixels in the unantialiased buffer, which is a great improvement but still costs.<br />
On DX9 the problem is even worse because you can&#8217;t read the individual samples from an MSAA buffer, so MSAA is completely unusable for deferred rendering there.</p>
<p>So, plan B then.</p>
<p>There are several ways to tackle antialiasing of deferred renderers. First, you could just render everything 2x or 4x the size, light it as usual, and downsample it at the very end. It looks nice &#8211; much like MSAA on a forward render, really &#8211; and it&#8217;s easy to add. But it has exactly the effect on framerate you might imagine, so it&#8217;s not a practical solution for realtime. So the usual way people try and do it is to fake it &#8211; perform a 2D post process on the result of the deferred render which somehow works out where the edges are and fixes them in a way that looks like they were rendered with antialiasing. This approach is apparently rife on xbox360 titles where the hardware&#8217;s dubious memory arrangement makes using proper MSAA on HD framebuffers problematic.</p>
<p>So, how would that magic post process work exactly? Step 1 &#8211; detecting edges &#8211; is easy, particularly in a deferred renderer where we have a ton of information around to help. An edge detection kernel filter applied to the depth, normal and material index/object index usually gives great results, far superior to using a colour buffer for our purposes. Step 2 &#8211; antialiasing those edges &#8211; is a little bit more difficult. It&#8217;s important to remember that what antialiasing is doing is over-sampling: generating a load of possible values and averaging them. The usual approach with post-process AA is to blur the neighbouring pixels on the edges, which is really the opposite of what we wanted. So it doesn&#8217;t really work. For Frameranger I experimented a lot and managed a reasonable attempt at it which used noise, a poisson disc and some magic weighting of the samples &#8211; and it looked marginally better than a typical edge blur &#8211; more like an &#8220;edge dither&#8221;.</p>
<p>Here&#8217;s some screenshots of the edge noise technique. As you can see, it doesn&#8217;t entirely look like antialiasing. Actually as an effect, adding noise to the edges, it was alright &#8211; but as antialiasing it wasn&#8217;t a good substitute. It appeared that if I wanted to achieve the look of antialiasing I was going to have to move away from using only the 2D results as input and render the geometry differently in the first place &#8211; try and gain some more information that way. By the way, all the antialias comparsion screenshots should be matched so you can download the images and diff them or toggle back and forth between them if you want to see the differences. </p>
<p><img src="http://directtovideo.wordpress.com/files/2009/11/dirty_edge_noise_off.jpg" alt="edge noise off" /><br />
<img src="http://directtovideo.wordpress.com/files/2009/11/dirty_edge_noise_on.jpg" alt="edge noise on" /></p>
<p>The second approach I used borrowed from temporal reprojection techniques, and a very old way of antialiasing in an OpenGL example. In that example, antialiasing was done by rendering the scene over and over again to an accumulation buffer and jittering the projection matrix by a sub-pixel amount each time. It&#8217;s basically stochastic sampling of the render but flipped around so that you render the screen with one stochastic offset, then again with another offset etc. and average the results at the end. When you offset the projection slightly you cause the edges of the triangles to move slightly, and you get slightly different coverage and a different set of aliasing artefacts &#8211; when you average enough of them together you get an antialiased image.</p>
<p>Sadly, as you might expect, rendering the scene loads of times per frame isn&#8217;t too practical for realtime. But we can take the basic idea and split it over frames &#8211; so each frame we slightly jitter the projection matrix when we render, and we blend the current frame on top of the previous frames with a low alpha value. That works great and gives you a really nice antialiased image.. as long as nothing moves. As soon as you move you get big ugly motion-blur-like trails. So what we need to do is try and fix the case where it moves.</p>
<p>I split &#8220;movement&#8221; into two cases: object movement and camera movement. Camera movement is where temporal reprojection comes into play. How this works is, when we&#8217;re blending the current frame onto the previous frame we don&#8217;t just use the same pixel in the previous frame. Instead we project the current frame&#8217;s pixel back into the previous frame&#8217;s camera space by using a combination of the inverse view projection for the current frame and the view projection from the previous frame &#8211; which also requires the pixel depth, which is fortunately kicking around in a GBuffer &#8211; then sample the pixel there and blend it. This is basically trying to track positions in world space as they move in screen space. It does indeed fix most of the camera movement artefacts. Of course, problems do occur &#8211; at the edge of the screen, or where pixels that were occluded become unoccluded and vice versa. To cancel those, I weight the alpha of the blend by the world-space distance between the previous and last frame pixels. What it&#8217;s trying to work out is &#8220;is it really the same pixel&#8221;, and if it isn&#8217;t, don&#8217;t try and blend it &#8211; just overwrite it. Conveniently that can be used to fix object motions too. Finally use an edge detect mask on the whole thing so only the edges get blended.</p>
<p>Here&#8217;s some images to compare (off and on):</p>
<p><img src="http://directtovideo.wordpress.com/files/2009/10/temporaledgeaa_off01.jpg" alt="temporal AA off" /><img src="http://directtovideo.wordpress.com/files/2009/10/temporaledgeaa_on01.jpg" alt="temporal AA on" /></p>
<p>Well, it works! It actually works pretty nicely. The thing about temporal techniques is that they settle over time &#8211; so when you get a relatively static screen it quickly convolves to an antialiased image, becoming more aliased as movement is introduced. For a situation where you didn&#8217;t have too much movement on screen it&#8217;s a good technique. The problem is, for Frameranger we had some very fast camera movements &#8211; it just wasn&#8217;t working well enough.</p>
<p>Here&#8217;s some shots showing how it looks when the red cube is in motion (off and on again) &#8211; and with a small camera motion too. As you can see, some aliasing does creep back in.<br />
<img src="http://directtovideo.wordpress.com/files/2009/10/temporaledgeaa_motion_off01.jpg" alt="temporal aa off in motion" /><img src="http://directtovideo.wordpress.com/files/2009/10/temporaledgeaa_motion_on01.jpg" alt="temporal on in motion" /></p>
<p>Finally, over time, I came up with an actual real solution to deferred rendering with antialiasing. Unfortunately it requires an additional geometry pass, but it gives you the look of proper MSAA. The idea is to render the GBuffers, lighting passes and so on to a non-MSAA buffer, then re-render the geometry to an MSAA buffer, which a shader that just samples the buffer containing the lighting results using a bilateral filter based on depth. Then resolve that MSAA buffer to give you an antialiased result. This is in a way quite similar to a light prepass using inferred lighting, but the MSAA pass <em>only</em> samples the lighting results buffer &#8211; it doesn&#8217;t need to compute any shading of it&#8217;s own.</p>
<p>We know that the reason MSAA is efficient is it only runs the pixel shader once per pixel, but generates a depth/stencil value for each sample in the pixel &#8211; so depth test+write is performed multiple times. This means that for primitive interiors with no intersections, the value of the pixel will be the same as for the non-MSAA buffer &#8211; only the edges of primitives and the intersections between primitives will have different values. This technique exploits this. We generate the depth values for MSAA by re-rendering the primitives; we just need to work out what colour to write for each pixel on each primitive. On edge pixels for a non-MSAA buffer, the final pixel value will be that of the front-most primitive. On edge pixels for a resolved MSAA buffer, the pixel value will be an average of the MSAA sample values &#8211; the value of the front-most primitive per sample. This technique estimates the value per primitive to write by using the bilateral filter to look around a small area around the pixel in the same screen location as the one it&#8217;s currently shading on the non-MSAA buffer, and asking &#8220;which of these probably came from the primitive I&#8217;m rendering, and is therefore a good estimate&#8221;. Or in practice a weighted average of the pixels in the area, weighted by the difference between the non-MSAA depth and the primitive&#8217;s pixel depth.</p>
<p>Bilateral upsampling is an extremely useful technique for fixing up edges. It&#8217;s also a very good way to upsample lower resolution soft particle buffers, for example. I&#8217;m pretty happy with this method, and it&#8217;s what we&#8217;re now using for the much improved Frameranger final version (due out soon!). It&#8217;s made a lot of difference to the quality and cleanness of the look, with a pretty acceptable overhead. It scales to 4x, 8x or more MSAA samples nicely and only impacts the cost for that one pass, which has a reasonably simple shader and output bandwidth requirement (compared to the GBuffer stages or the deferred lighting passes). It actually has some similarities to <a href="http://graphics.cs.uiuc.edu/~kircher/publications.html">Inferred Lighting</a>, although my method is just for antialasing and not for shading.</p>
<p><img src="http://directtovideo.wordpress.com/files/2009/11/bilateral_aa_off1.jpg" alt="bilateral aa off" /><br />
<img src="http://directtovideo.wordpress.com/files/2009/11/bilateral_aa_on1.jpg" alt="bilateral aa on" /></p>
<p>Now, if you happen to be on a more flexible API or piece of hardware than me where you can read samples from MSAA buffers &#8211; like a PS3 &#8211; there&#8217;s an optimisation / extension to this &#8211; you can use the same technique but avoid the re-render. It goes like this: render the GBuffers to MSAA targets; resolve the buffers using a point sampling scheme &#8211; e.g. &#8220;pick top left sample&#8221;; run the lighting processes on these resolved buffers; now perform an additional fullscreen pass:, read in your original MSAA Gbuffers, then for each MSAA sample from that buffer &#8211; perform a bilateral filter w.r.t depth/normal, sampling from the resolved GBuffers and light buffer, to weight the resolved light buffer samples for that MSAA sample from the GBuffer. That will give you a bilateral upsampled light result per MSAA sample of the Gbuffer, and you can average them in the shader and write out one final antialiased light value. Clearly you only need to run these shaders on edges if you wish to optimise it further. So there you go &#8211; a practical solution to deferred rendered antialiasing which only needs one geometry rendering pass, and lets you perform lighting on a single-sample screen-sized buffer without worrying about MSAA at that stage. Shame it doesn&#8217;t work on DX9, because then for me it would be the ideal solution.</p>
<p>Coming up in part 2 : ambient occlusion.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Anti-aliasing in EQ2 with nVidia 19x.xx drivers?  See here!]]></title>
<link>http://ratwarlock.wordpress.com/2009/10/30/anti-aliasing-in-eq2-with-nvidia-19x-xx-drivers-see-here/</link>
<pubDate>Fri, 30 Oct 2009 18:00:49 +0000</pubDate>
<dc:creator>araxes</dc:creator>
<guid>http://ratwarlock.wordpress.com/2009/10/30/anti-aliasing-in-eq2-with-nvidia-19x-xx-drivers-see-here/</guid>
<description><![CDATA[(I&#8217;ve only verified this to work on Vista 64 and Windows 7 64, fyi.) Having problems getting E]]></description>
<content:encoded><![CDATA[(I&#8217;ve only verified this to work on Vista 64 and Windows 7 64, fyi.) Having problems getting E]]></content:encoded>
</item>
<item>
<title><![CDATA[Migliorare la resa dei caratteri di Firefox su Ubuntu Karmic Koala]]></title>
<link>http://guiodic.wordpress.com/2009/10/27/migliorare-la-resa-dei-caratteri-di-firefox-su-karmic/</link>
<pubDate>Tue, 27 Oct 2009 12:33:26 +0000</pubDate>
<dc:creator>guiodic</dc:creator>
<guid>http://guiodic.wordpress.com/2009/10/27/migliorare-la-resa-dei-caratteri-di-firefox-su-karmic/</guid>
<description><![CDATA[E&#8217; noto che Firefox non è una applicazione di GNOME. Quindi non c&#8217;è alcun motivo per cui]]></description>
<content:encoded><![CDATA[E&#8217; noto che Firefox non è una applicazione di GNOME. Quindi non c&#8217;è alcun motivo per cui]]></content:encoded>
</item>
<item>
<title><![CDATA[Merender Huruf]]></title>
<link>http://hobyt.wordpress.com/2009/10/17/merender-huruf/</link>
<pubDate>Sat, 17 Oct 2009 02:45:10 +0000</pubDate>
<dc:creator>hobyt</dc:creator>
<guid>http://hobyt.wordpress.com/2009/10/17/merender-huruf/</guid>
<description><![CDATA[Ketika kita bekerja dengan huruf entah itu untuk percetakan atau online publishing, komputer yang ak]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Ketika kita bekerja dengan huruf entah itu untuk percetakan atau online publishing, komputer yang akan menjadi mediumnya, dimana kita akan mengumpulkan materi dan mengerjakan konsep dan desain yang akan dibuat. Oleh karena itu kebutuhan akan pengetahuan grafis pada tampilan layar dan reproduksi grafis sangat dibutuhkan untuk mendapatkan final output yang terlihat oleh target audiens sesuai seperti apa yang kita harapkan.</p>
<p>1. Bitmap<br />
Dalam Tampilan layar monitor atau pun cetak digital, teks di render oleh ribuan kumpulan grid mosaik berwarna berbentuk seperti titik yang disebut pixel untuk membuat sebuah bentuk yang diinginkan. Susunan bentuk grid inilah yang disebut dengan Bitmap. Bitmap sangat intensif terhadap memory, sebuah file harus mengandung informasi tentang warna dan posisi dalam sebuah halaman di setiap pixelnya. Ketika sebuah gambar bitmap di perbesar, software hanya bisa memperbesar bentuk pixel pada gambar tersebut, sehingga mempengaruhi pixel asli dari gambar tersebut dan bagian pixel yang kecil dan bergerigi akan menjadi terlihat besar dan menjadikan gambar terlihat lebih bergerigi.</p>
<p>2. Vektor<br />
Vektor mendeskripsikan sebuah bentuk sebagai sebuah garis seperti garis lurus atau garis melengkung yang saling menyatu dengan titik yang telah ditentukan. Garis-garis tersebut (vektor) di rekam dalam bentuk file sebagai formula matematika. Dan kemudian garis yang telah terbentuk di isi oleh pixel. Vektor sangat baik untuk kualitas pengskalaan, ketika sebuah gambar vektor diperbesar, posisi kordinat titik vektor di susun ulang dengan dikontrol oleh formula matematika agar garis lurus dan lengkung pada titik-titik tersebut tetap konstan, dan bentuk baru ini kemudian di isi oleh pixel sesuai dengan bentuk dari vektor tersebut tanpa ada cacat pixel. File gambar vektor memakan memory lebih kecil dibandingkan dengan file bitmap. Menggambar dengan vektor sangat efisien akan tetapi bagaimanapun juga gambar vektor ini ketika bertemu dengan layar monitor harus di render sebagai titik-titik matrix atau dengan kata lain garis vektor harus di konversi kedalam bentuk bitmap. Informasi garis vektor di konversi menjadi bitmap untuk dicetak, bedanya bitmap yang akan dicetak ini memiliki resolusi yang tinggi.</p>
<p>Huruf dan Layar Komputer<br />
Gambar dihadirkan di layar komputer oleh kumpulan titik-titik berwarna yang disusun dalam grid yang rapat yang dinamakan pixel, kualitas on-screen rendering dari huruf digital dihambat oleh kecilnya resolusi dari layar komputer yaitu, 72 pixel per inch (ppi) di layar Macintosh dan 96 ppi di layar PC. Ukuran huruf yang kecil akan tampil buruk dilayar dan sangat mengganggu dan masalahnya huruf berukuran kecil sering digunakan dalam penkerjaan desktop publishing. Ukuran resolusi yang rendah dari layar komputer tidak bisa menghadirkan detail yang baik, sehingga ketika huruf berukuran kecil di raster dan disesuaikan dengan grid pixel, detail dengan ukuran lebih kecil dari 1 pixel harus dibesarkan atau dihilangkan, ini menyebabkan fitur seperti ketebalan stroke atau serif menjadi tidak konsisten atau mungkin menjadi hilang dan akhirnya membentuk huruf dan ruang yang tidak baik. Beberapa teknik diperlukan untuk mengatasi permasalahan tersebut, teknik tersebut dinamakan Hinting, font-font yang berkualitas tinggi telah melewati proses ini dan mengandung informasi hinting. Saat meraster, software mengusahakan untuk meratakan outline gambar terhadap grid pixel, hanya pixel yang jatuh di outline gambar yang digunakan secara normal. Jika terdapat sedikit pixel untuk menghadirkan huruf berukuran kecil dengan benar, perintah hinting digunakan untuk membuat penyesuaian yang akan memberikan bentuk yang lebih baik secara optis.</p>
<p>Huruf dan Media Cetak<br />
Untuk melihat detail font dengan jelas bisa di capai dengan mencetaknya diatas kertas, mesin cetak menggunakan titik kecil hitam atau berwarna untuk membentuk sebuah gambar. Jumlah dot per inch (dpi) / titik per inci sangatlah jauh lebih baik dibandingkan layar komputer dan oleh sebab itu gambar yang lebih detail bisa dibentuk. Kebanyakan mesin cetak inkjet atau laserjet memiliki output resolusi 300 hingga 600 dpi, dan bahkan imagesetter memiliki output resolusi hingga 3000 dpi. Saat ini mesin cetak inkjet dan laserjet sudah bisa menghasilkan kualitas cetak yang sangat baik, tetapi jika diteliti lebih dekat akan terlihat formasi titik-titik yang membentuk area gambar, mesin cetak tersebut tetap memiliki keterbatasan resolusi, pembentukan gradasi dan warna. Secara kontras, titik-titik yang digunakan oleh imagesetter sangatlah kecil hingga sulit dideteksi oleh visual, sehingga sudut-sudut pada gambar dan huruf terlihat sempurna.</p>
<p>1. Postscript<br />
Adalah bahasa deskripsi halaman yang dipatenkan oleh Adobe. Mengkonversi informasi vektor menjadi bitmap beresolusi tinggi untuk rendering berkualitas tinggi. Adobe Type Manager (ATM) menggunakan postscript untuk menghasilkan bitmap superior dari outline di pencitraan layar komputer.<br />
2. Inkjet Printer<br />
Titik-titik mikroskopik dari tinta disemprotkan ke atas kertas dengan resolusi 300 hingga 1500 dpi. Dengan keterbatasan resolusi dan kualitas kertas banyak mesin cetak inkjet murahan tidak mampu memaksimalkan postscript hingga tidak bisa merender bentuk huruf dengan tepat. Tapi inkjet-inkjet keluaran terbaru yang dilengkapi oleh postscript atau postscript simulation bisa menghasilkan output yang sangat baik.<br />
3. Laser Printer<br />
Kebanyakan Laser Printer sudah dilengkapi oleh software postscript, yang akan bisa dengan baik menerjemahkan bentuk huruf dan pengaturan jarak dengan akurat, walaupun mereka membuat tampilan yang ‘crisp’, laser printer mengalami hambatan ketika ukuran ukuran gambar yang akan di cetak kecil. Karena partikel dari bubuk toner digunakan untuk membuat gambar lebih lebih kecil dan huruf-huruf berstroke tipis tampil lebih tebal ketika tercetak.<br />
4. Imagesetter<br />
Imagesetter berbasis postscript, dengan menggunakan cermin putar dan sinar laser, memberikan hasil gambar dengan kualitas tinggi, pemanfaatan eksposur fotografi dikombinasikan dengan resolusi yang sangat tinggi untuk mendapatkan detail yang sangat baik. Imagesetter mengarahkan cahaya keatas film, yang akan digunakan untuk menyinarkan cahaya ke atas pelat cetakan. Gambar sekarang sudah berpindah ke atas pelat yang sudah ditintakan dan gambar inilah yang akan dipindahkan keatas kertas atau media cetak lainnya.<br />
5. Online Viewing<br />
Online viewing adalah istilah aplikasi desain yang dibuat dengan tampilan yang terlihat dilayar komputer adalah hasil akhir yang akan dilihat oleh pemirsa desain contohnya, desain website atau multimedia interaktif. Permasalahan yang kerap hadir dalam pengaplikasian online viewing adalah keterbatasan resolusi yang dimiliki oleh layar monitor komputer yaitu 72 ppi untuk Macintosh dan 96 ppi untuk PC sehingga memberikan efek yang tidak baik untuk penampilan-penampilan huruf dalam ukuran kecil, oleh karena itu banyak desain-desain website yang menggunakan huruf dengan ukuran besar untuk aplikasi text dan ini sangat mengganggu untuk kenyamanan komposisi layout, dan juga permasalahan online viewing yang berhubungan dengan resolusi belum terpecahkan. Untuk mengatasi permasalahan resolusi ini hadirlah sebuah teknik yang dinamakan Antialiasing.</p>
<p>a. Antialiasing<br />
Terkadang menggunakan font dengan ukuran kecil adalah satu-satunya cara yang memungkinkan untuk mendisplay text dengan ukuran kolom yang terbatas. Agar font tetap terlihat baik di ukuran kecil tanpa kehilangan legibility nya, para pembuat software membuat teknik antialiasing, teknik ini bekerja membandingkan garis vektor dengan grid bitmap dan membaca bagian dari gambar atau huruf yang hilang atau terdistorsi, lalu dengan kecanggihan teknologi, software memasukan pixel berbentuk bayangan warna abu-abu yang bervariasi disekeliling bentuk huruf untuk menciptakan ilusi mata bentuk stroke yang halus. Kekurangan dari teknik antialiasing adalah teks dengan font berukuran kecil akan terlihat kurang hitam akan tetapi kekurangan ini cukup terbayar dengan kehalusan dan integritas atas bentuk huruf yang ditampilkan.<br />
[IMG]http://i21.photobucket.com/albums/b266/ritchienedhansel/Untitled5.png[/IMG] gambar diambil dari http://www.newcottage.com</p>
<p><strong>Sumber: </strong><br />
<em>1. http://id.wikipedia.org/wiki/Huruf_Digital_(Font)</em></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Firefox 3.5.3, per bene, con l'antialiasing, su Ubuntu]]></title>
<link>http://guiodic.wordpress.com/2009/07/01/firefox-3-5-per-bene-antialiasing-su-ubuntu-jaunty/</link>
<pubDate>Wed, 01 Jul 2009 16:49:11 +0000</pubDate>
<dc:creator>guiodic</dc:creator>
<guid>http://guiodic.wordpress.com/2009/07/01/firefox-3-5-per-bene-antialiasing-su-ubuntu-jaunty/</guid>
<description><![CDATA[QUESTA GUIDA E&#8217; STATA AGGIORNATA PER FIREFOX 3.5.3 Personalmente sono un maniaco della perfezi]]></description>
<content:encoded><![CDATA[QUESTA GUIDA E&#8217; STATA AGGIORNATA PER FIREFOX 3.5.3 Personalmente sono un maniaco della perfezi]]></content:encoded>
</item>
<item>
<title><![CDATA[OS X 10.5.7 Text Rendering Issue On Mail.app]]></title>
<link>http://linkenfuego.wordpress.com/2009/06/16/os-x-10-5-7-text-rendering-issue-on-mail-app/</link>
<pubDate>Tue, 16 Jun 2009 09:57:24 +0000</pubDate>
<dc:creator>Bram Pitoyo</dc:creator>
<guid>http://linkenfuego.wordpress.com/2009/06/16/os-x-10-5-7-text-rendering-issue-on-mail-app/</guid>
<description><![CDATA[A strange thing happened to me every time I composed a piece of text on my OS X 10.5.7-powered Mail.]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>A strange thing happened to me every time I composed a piece of text on my OS X 10.5.7-powered Mail.app.</p>
<p>(My text setting is Lucida Grande at 12pt. size)</p>
<p><img src="http://linkenfuego.wordpress.com/files/2009/06/text-rendering-100-percent.png" alt="OS X 10.5.7 Text Rendering at 100%" title="OS X 10.5.7 Text Rendering at 100%" width="70" height="80" class="alignnone size-full wp-image-931" /></p>
<p>On random occasions, the rendered text would look the exact same way, yet somehow kerned loosely. It’s as if the line of text loses its spacing information entirely. See it?</p>
<p><img src="http://linkenfuego.wordpress.com/files/2009/06/text-rendering-500-percent.png" alt="OS X 10.5.7 Text Rendering at 500% zoom level" title="OS X 10.5.7 Text Rendering at 500% zoom level" width="350" height="340" class="alignnone size-full wp-image-932" /></p>
<p>Note how the text “I just saw” on the second line and the one on the fourth is spaced differently. Let’s juxtapose the two directly below each other to make it clearer.</p>
<p><img src="http://linkenfuego.wordpress.com/files/2009/06/text-rendering-detail.png" alt="The bottom set of word is rendered too loosely" title="The bottom set of word is rendered too loosely" width="350" height="161" class="alignnone size-full wp-image-933" /></p>
<p>I noted that the kerning between the letters j–u, s–t and s–a shifted to the right by 1 pixel, yet these minor changes are enough to make the spacing between the word “just” and “saw” appear larger, thus distracting the eye from the normal pace of reading.</p>
<p>If you’re an OS X 10.5.7 and Mail.app user, try reproducing this problem by writing several lines of new mail on Mail.app. See how, from time to time, the spacing of the letters would shift.</p>
<p>Have anyone else had this problem?</p>
<p>PS. Despite the pixel shift, the anti-aliasing method used to draw these letters remains unchanged. Note how the ‘fringes’ around the alphabets are actually of the same color—except for the leftmost stroke of the letter ‘u’ which lightened considerably.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[E’ disponibile l’upgrade di Open Office versione 3.1]]></title>
<link>http://softwarepaghe.wordpress.com/2009/06/04/e%e2%80%99-disponibile-l%e2%80%99upgrade-di-open-office-versione-3-1/</link>
<pubDate>Thu, 04 Jun 2009 15:14:16 +0000</pubDate>
<dc:creator>HI</dc:creator>
<guid>http://softwarepaghe.wordpress.com/2009/06/04/e%e2%80%99-disponibile-l%e2%80%99upgrade-di-open-office-versione-3-1/</guid>
<description><![CDATA[Il mondo dei programmi open source gratuitamente disponibili per ogni utente o azienda presenta un’i]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Il mondo dei programmi open source gratuitamente disponibili per ogni utente o azienda presenta un’importante novità. L’applicazione <strong>Open Office</strong> è giunta alla <strong>versione 3.1</strong> con una utilissima serie di features aggiuntive. Gli sviluppatori del software dichiarano cifre a dir poco sorprendenti dei download effettuati  che superano anche le più rosee aspettative. Sarà il periodo di crisi globale ma già la versione di Open Office 3.0 aveva superato i 50 milioni di download: di questi quasi 5 milioni sono stati collezionati dalla sola localizzazione italiana. Un traguardo significativo sul nostro mercato, dove il numero mensile dei download ormai supera regolarmente quello delle vendite di nuovi PC.</p>
<p><img class="aligncenter size-full wp-image-282" title="OpenOffice-3-1-RC1-Released-New-Features-Added software" src="http://softwarepaghe.wordpress.com/files/2009/06/openoffice-3-1-rc1-released-new-features-added.jpg" alt="OpenOffice-3-1-RC1-Released-New-Features-Added software" width="408" height="306" /></p>
<p>Il <strong>PLIO</strong> (Progetto Linguistico Italiano OpenOffice.org) che cura la versione italiana della suite, dichiara sulla nuova suite:  “La novità più importante e più facile da notare è la completa riscrittura del modulo per la visualizzazione degli elementi grafici sullo schermo (circa mezzo milione di <strong>linee di codice</strong>), che apporta &#8211; grazie all&#8217;<strong>antialiasing</strong> &#8211; un evidente miglioramento della qualità, e influisce sul modo in cui le immagini vengono visualizzate durante il trascinamento e i testi selezionati vengono evidenziati, e permette di effettuare la sopralineatura del testo». L&#8217;antialiasing viene applicato ad ogni oggetto di tipo vettoriale, come grafici e diagrammi, e può contribuire a migliorare l&#8217;aspetto di documenti e presentazioni. <strong>Open Office 3.1</strong> è disponibile in download per Windows, Linux, MacOS X e Solaris.</p>
<p><img class="aligncenter size-full wp-image-283" title="openoffice310 software" src="http://softwarepaghe.wordpress.com/files/2009/06/openoffice310.png" alt="openoffice310 software" width="256" height="256" /></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Cutting Corners]]></title>
<link>http://hbfs.wordpress.com/2009/05/26/cutting-corners/</link>
<pubDate>Tue, 26 May 2009 10:21:06 +0000</pubDate>
<dc:creator>Steven Pigeon</dc:creator>
<guid>http://hbfs.wordpress.com/2009/05/26/cutting-corners/</guid>
<description><![CDATA[Cutting corners is generally thought of as a bad thing. It generally is, I agree. But in some occasi]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Cutting corners is generally thought of as a bad thing. It generally is, I agree. But in some occasions, <em>optimally</em> cutting corners is the right thing to do. I can show you what I mean. Using the <a href="http://en.wikipedia.org/wiki/Logo_(programming_language)" target="_blank">Logo</a> programming language (precisely the <a href="http://edu.kde.org/kturtle/" target="_blank">KTurtle</a> implementation), I devised the following experiment. Consider the following image:</p>
<div id="attachment_1082" class="wp-caption aligncenter" style="width: 250px"><a href="http://hbfs.wordpress.com/files/2009/04/circles-1.png"><img src="http://hbfs.wordpress.com/files/2009/04/circles-1.png" alt="Two circles drawn with KTurtle" title="circles-1" width="240" height="239" class="size-full wp-image-1082" /></a><p class="wp-caption-text">Two circles drawn with KTurtle</p></div><br />
<!--more--></p>
<p>The two circles do look the same, aside from color and shift, that is. The blue circle is done using the classic child-like approach: the turtle repeats 360 times the <tt>forward 1 turnright 1</tt> commands. Superficially, at that resolution, the red circles <em>does</em> look quite a lot like the blue one. Or does it? Shifting back both circles to the same position:</p>
<p><div id="attachment_1083" class="wp-caption aligncenter" style="width: 251px"><a href="http://hbfs.wordpress.com/files/2009/04/circles-2.png"><img src="http://hbfs.wordpress.com/files/2009/04/circles-2.png" alt="The two circles, superimposed." title="circles-2" width="241" height="231" class="size-full wp-image-1083" /></a><p class="wp-caption-text">The two circles, superimposed.</p></div>
<p>We see that there are minutes differences between the two. But the red circle doesn&#8217;t have 360 sides, only 36. The second, red, circle is drawn by repeating 36 times <tt>forward 10 turnright 10</tt> commands. It is only by superimposing the two that we actually see the difference.</p>
<p>Granted, Logo programming is not exactly a major concern for modern graphics rendering or game programming, but this short example does prove my point that sometimes, a great speedup can be obtained by using short-cut evaluation of more complex mathematical expressions, such as <a href="http://en.wikipedia.org/wiki/Bezier_curve" target="_blank">Bézier curves</a> that are often used to calculate smooth trajectories of cameras in scenes. Using a <a href="http://en.wikipedia.org/wiki/Bezier_curve#Constructing_B.C3.A9zier_curves" target="_blank">simple method</a> (the <a href="http://en.wikipedia.org/wiki/De_Casteljau's_algorithm">de Casteljau&#8217;s algorithm</a>) one can compute a sufficiently precise approximation without exceeding a given number of computations; or at least balance between the precision and the number of points computed. Does a Bézier curve approximated by 10, 20 segments looks smooth under your rendering conditions? Or does the <a href="http://en.wikipedia.org/wiki/Roller_coaster" target="_blank">roller-coaster</a> ride still looks realistic? That&#8217;s up to you to decide.</p>
<p>Taking back the circle example. How precise does it have to be, really? We would probably all agree that it should be precise to the rounded-pixel. Some will argue that <a href="http://en.wikipedia.org/wiki/Anti-aliasing" target="_blank">anti-aliasing</a> is quite necessary so that <a href="http://en.wikipedia.org/wiki/Subpixel_rendering" target="_blank">sub-pixel precision</a> is required. Is splitting pixels in four enough? In 16? Answering this question first will help you guide your efforts toward the development of a <em>good enough</em> algorithm.</p>
<p>This reasoning doesn&#8217;t apply only to graphics applications; it is true for a large number of other applications and contexts. It is not because someone came up with a complex algorithm that offers the best precision and that it&#8217;s the accepted method that there is no room to cut corners. You may get away with a much faster <a href="http://en.wikipedia.org/wiki/Prediction#Anticipatory_science_forecasts" target="_blank">prediction algorithm</a> that is right 95% of the times instead of 97% because the cost of being wrong 2% more often doesn&#8217;t mean all that much because it occurs comparatively rarely.</p>
<p align="center">*<br />*&#8195;*</p>
<p>Balancing between the amount of computation and the precision of the result is one of the eternal struggles in computing. You have to chose between the <a href="http://en.wikipedia.org/wiki/Rube_Goldberg_machine" target="_blank"><em>usine à gaz</em></a> that provides precision up to the umpteenth bit, or much simpler devices that will give you <em>acceptable</em> precision, often with a much reduced computational load. You have to fully understand the trade-offs involved in the <a href="http://en.wikipedia.org/wiki/Accuracy_and_precision" target="_blank"><em>precision</em> vs <em>accuracy</em></a> dilemma for your specific problem. Increasing the computation time does not mean you will gain a significant amount of accuracy or precision; moreover even though the difference may be significant mathematically, it doesn&#8217;t mean it&#8217;s <em>pragmatically</em> relevant.</p>
<p>As everything else, nothing is as simple as it first seems.</p>
<p><b>Further Readings</b><br />
<a href="http://books.google.com/books?id=giFQcZub80oC&#38;pg=PA128#PPP1,M1" target="_blank">An Introduction to Error Analysis: The Study of Uncertainties in Physical Measurements</a> (Google Books). Although this book does not discuss the subject of numerical approximation, it is still a must read to understand the precision vs accuracy dilemma under the more mathematical approach of error propagation. Or you can get it from <a href="http://www.amazon.com/gp/product/093570275X?ie=UTF8&#38;tag=hardbettfasts-20&#38;linkCode=xm2&#38;camp=1789&#38;creativeASIN=093570275X" target="_blank">Amazon.com</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[AMSN 0.98(SVN) NO UBUNTU 8.04 HARDY HERON + COLD SKIN]]></title>
<link>http://bsdlinux.wordpress.com/2009/04/17/amsn-098svn-no-ubuntu-804-hardy-heron-cold-skin/</link>
<pubDate>Fri, 17 Apr 2009 10:11:20 +0000</pubDate>
<dc:creator>rmbernardes</dc:creator>
<guid>http://bsdlinux.wordpress.com/2009/04/17/amsn-098svn-no-ubuntu-804-hardy-heron-cold-skin/</guid>
<description><![CDATA[VEJA TAMBÉM O ARTIGO “COMO HABILITAR O ARRASTA E SOLTA NO AMSN” Antes de iniciar execute apt-get ins]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div class="cite"><a href="http://rmbernardes.files.wordpress.com/2008/02/amsnlogo.jpg"><img class="alignnone size-medium wp-image-78" src="http://rmbernardes.files.wordpress.com/2008/02/amsnlogo.jpg?w=300&#038;h=230#38;h=230" alt="" width="300" height="230" /></a></div>
<div class="snap_preview">
<p><code><strong>VEJA TAMBÉM O ARTIGO <a href="http://rmbernardes.wordpress.com/2008/08/13/como-habilitar-o-%e2%80%9carrasta-e-solta%e2%80%9d-no-amsn-ubuntu-804/">“COMO HABILITAR O ARRASTA E SOLTA NO AMSN”</a></strong></code></p>
<p>Antes de iniciar execute<br />
<code>apt-get install xorg-dev libpng12-dev libjpeg-dev subversion build-essential</code><br />
1.Faça o download destes arquivos:<br />
<a href="http://ufpr.dl.sourceforge.net/sourceforge/tcl/tcl8.5.2-src.tar.gz">http://ufpr.dl.sourceforge.net/sourceforge/tcl/tcl8.5.2-src.tar.gz</a><br />
<a href="http://ufpr.dl.sourceforge.net/sourceforge/tcl/tk8.5.2-src.tar.gz">http://ufpr.dl.sourceforge.net/sourceforge/tcl/tk8.5.2-src.tar.gz</a></p>
<p>2.Instalando os pacotes:<br />
<code>tar xvzf tcl8.5.2-src.tar.gz<br />
cd tcl8.5.2/unix<br />
./configure<br />
make<br />
make install<br />
make clean</code></p>
<p><code>tar -xvzf tk8.5.2-src.tar.gz<br />
cd tk8.5.2/unix<br />
./configure –with-tcl=/usr/local/lib –enable-xft (substituir o hifen por dois hifens)<br />
make<br />
make install<br />
make clean<br />
cd ~<br />
</code></p>
<p>3.Baixe a ultima versão do amsn via svn.<br />
<code>svn co https://amsn.svn.sourceforge.net/svnroot/amsn/trunk/amsn amsn</code></p>
<p>4.Acesse o diretorio amsn e execute:<br />
<code>./configure –with-tk=/usr/local/lib/ –with-tcl=/usr/local/lib/ (substituir o hifen por dois hifens)<br />
make<br />
make install<br />
make clean</code></p>
<p>5.Finalizando<br />
<code>vi /usr/local/bin/amsn </code><br />
Substitua o wish por wish8.5<br />
(abra o amsn antes para criar a pasta .amsn)</p>
<p>6.Instalando o skin<br />
Faça o download do arquivo <a href="http://ufpr.dl.sourceforge.net/sourceforge/amsn/cold-1.0.zip">Cold.zip</a>.<br />
Descompacte-o<br />
<code>unzip cold-1.0.zip</code></p>
<p>Mova a pasta Cold para pasta skins do amsn<br />
<code>mv Cold ~/.amsn/skins/</code></p>
<p>Agora no Amsn, clique em Account &#8211; Select Skin e selecione Cold &#8211; Ok<br />
Era isso!</p>
<p><a href="http://rmbernardes.files.wordpress.com/2008/08/amsn098.jpg"><img class="alignnone size-thumbnail wp-image-153" src="http://rmbernardes.files.wordpress.com/2008/08/amsn098.jpg?w=120&#038;h=96#38;h=96" alt="" width="120" height="96" /></a><br />
<a title="Bookmark and Share" href="http://www.addthis.com/bookmark.php" target="_blank"><img src="http://s7.addthis.com/button1-addthis.gif" border="0" alt="Bookmark and Share" width="125" height="16" /></a></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Отпечатване на икони и снимки на екрана]]></title>
<link>http://bulged.wordpress.com/2009/04/16/%d0%be%d1%82%d0%bf%d0%b5%d1%87%d0%b0%d1%82%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%b8%d0%ba%d0%be%d0%bd%d0%b8-%d0%b8-%d1%81%d0%bd%d0%b8%d0%bc%d0%ba%d0%b8-%d0%bd%d0%b0-%d0%b5%d0%ba%d1%80%d0%b0%d0%bd/</link>
<pubDate>Thu, 16 Apr 2009 19:46:16 +0000</pubDate>
<dc:creator>bulged</dc:creator>
<guid>http://bulged.wordpress.com/2009/04/16/%d0%be%d1%82%d0%bf%d0%b5%d1%87%d0%b0%d1%82%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%b8%d0%ba%d0%be%d0%bd%d0%b8-%d0%b8-%d1%81%d0%bd%d0%b8%d0%bc%d0%ba%d0%b8-%d0%bd%d0%b0-%d0%b5%d0%ba%d1%80%d0%b0%d0%bd/</guid>
<description><![CDATA[Текстът е превод от www.artlebedev.com Специалистите по предпечат, знаят, че изображенията, подготве]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Текстът е превод от <a href="http://www.artlebedev.com" target="_blank">www.artlebedev.com</a></p>
<p>Специалистите по предпечат, знаят, че изображенията, подготвени за печат трябвва да имат разделителна способност от поне 300 точки на инч. Уеб дизайнерите също са чували за това вълшебно число и искрено му се доверяват. Като резулатат както хората, които се занимават с печат, така и интернет дизайнерите стават неспособни да отпечатат правилно пиктограма или снимка на екрана, изображения с първоначално ниска резолюция.</p>
<p>Като правило, проблемът свързан с разделителната способност, който дизайнерите не успяват да разберат е:</p>
<p>Ако напишете &#8220;300&#8243; в полето &#8220;разделителна способност&#8221; на софтуера на крайното устройство, например принтер, то получава инструкции, които му казват, че всяка точка трябва да заеме 1/300 от инча (85 микрона).</p>
<p>Затова, ако трябва да отпечатаме голяма икона (<img src="http://img.artlebedev.ru/kovodstvo/sections/155/home.gif" border="0" alt="" width="11" height="11" />), простото 16 кратно увеличение ще предизвика ужасяващи резултати:</p>
<p style="text-align:center;"><img class="size-full wp-image-787 aligncenter" title="home-big-aliased3" src="http://bulged.wordpress.com/files/2009/04/home-big-aliased3.gif" alt="home-big-aliased3" width="205" height="189" /></p>
<p>Това е резулататът, който любителите на 300 точки на инч ще преценят като задоволителен. Цялостното замазване и омекотяване на образа се дължи на автоматичният <em>antialiasing, </em>който се опитва да попречи на простото увеличаване на размера на пикселите, като генерира нови според вградения си алгоритъм. Заради малкото налична графична информация, програмата за редакция на изображения, започва да обработва образа. Алгоритимите, които използва работят добре, когато се използват за смаляване или увеличаване на фотографски изображения, тоест такива с преходи на цветовете и полутонове.</p>
<p>Така изглежда същото изображение, с размер променен без интерполация от графичния софтуер.</p>
<p style="text-align:center;"><img class="size-full wp-image-789 aligncenter" title="home-big" src="http://bulged.wordpress.com/files/2009/04/home-big.gif" alt="home-big" width="205" height="189" /></p>
<p>В случая опростените форми са точно това, което искаме &#8211; иконата изглежда добре.</p>
<p>Какво ще видим, ако отворим книга, наречена &#8220;Дизайн на икони&#8221;? Изображения, които доказват, че някои хора не отстъпват от догмите (трябва да бъде изображение с 300 точки на инч), но не могат да повярват на собствените си очи (резултатът ви кара да потръпнете от ужас).</p>
<div id="attachment_790" class="wp-caption aligncenter" style="width: 640px"><img class="size-full wp-image-790" title="pictograms" src="http://bulged.wordpress.com/files/2009/04/pictograms.jpg" alt="pictograms" width="630" height="370" /><p class="wp-caption-text">Steve Caplin. Icon Design: Graphic Icons in Computer Interface Design. Moscow, Astrel, AST, 2003. Достойно за отбелязване, технолозите на английското издание са предотвратили грешката.</p></div>
<p>Същото се отнася за снимките на екрана &#8211; трябва да използвате софтуер за страниране за увеличаването на размера им, а не редактори на изображения.</p>
<p><strong>Правило:</strong></p>
<p>За да отпечатате икона или снимка на екрана, просто трябва да промените размера и, без предварително смекчаване. Ако някой, който е свързан с печата застане на пътя ви, казвайки &#8220;72 точки на инч за печат? Само през трупа ми,&#8221; промушете го с кола.</p>
<p>С пожелание за по-малко излишни пиксели,</p>
<p>Мартин</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Type display on Windows]]></title>
<link>http://rbiii.wordpress.com/2009/03/05/type-display-on-windows/</link>
<pubDate>Thu, 05 Mar 2009 13:57:33 +0000</pubDate>
<dc:creator>Ran</dc:creator>
<guid>http://rbiii.wordpress.com/2009/03/05/type-display-on-windows/</guid>
<description><![CDATA[Yesterday, the Safari 4 beta died on my work PC, taking with it a slew of tabs with no mechanism to ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Yesterday, the <a href="http://www.apple.com/safari/download/" target="_blank">Safari 4 beta</a> died on my work PC, taking with it a slew of tabs with no mechanism to restore them. I am so accustomed to <a href="http://www.mozilla.com/en-US/firefox/" target="_blank">Firefox</a> and <a href="http://www.google.com/chrome" target="_blank">Chrome</a> saving my sessions that I really take that for granted, but it is so awful that I resumed using Chrome as my default browser on my PC. (At home, I move back and forth between Firefox and <a href="http://caminobrowser.org/" target="_blank">Camino</a>.)</p>
<p>No sooner did I fire up Chrome than I was reminded how awful the type display on Windows is. Look at the three samples below:</p>
<div id="attachment_1105" class="wp-caption alignnone" style="width: 446px"><img class="size-full wp-image-1105" style="border:1px solid black;" title="screen14" src="http://rbiii.wordpress.com/files/2009/03/screen14.png" alt="screen14" width="436" height="40" /><p class="wp-caption-text">Type rendered in Chrome using XP and no ClearType</p></div>
<div id="attachment_1106" class="wp-caption alignnone" style="width: 448px"><img class="size-full wp-image-1106" style="border:1px solid black;" title="screen15" src="http://rbiii.wordpress.com/files/2009/03/screen15.png" alt="screen15" width="438" height="44" /><p class="wp-caption-text">The same thing, with ClearType enabled</p></div>
<div id="attachment_1104" class="wp-caption alignnone" style="width: 452px"><img class="size-full wp-image-1104 " style="border:1px solid black;" title="screen16" src="http://rbiii.wordpress.com/files/2009/03/screen16.png" alt="screen16" width="442" height="44" /><p class="wp-caption-text">And finally, the same text from Safari 4 in Windows.</p></div>
<p>Seriously, it is 2009 &#8211; how is it possible that Apple can manage to display type on a Windows machine more attractively than the native rendering routines? Wikipedia says <a href="http://en.wikipedia.org/wiki/ClearType" target="_blank">ClearType</a> is now 10 years old &#8211; yet type looks better on my iPod touch than it does on my PC, for crying out loud!</p>
<p>Even more amazing, when Apple first released Safari for Windows, was the outcry by so many users that Apple made the type look blurry, which is (I assume) the reason Safari 4 brags about native rendering as the default.</p>
<p>In my book, this is further proof that the Windoze world does not deserve a satisfying, aesthetically coherent computing experience. Thank heavens I can go home and return to my Mac at the end of the day.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Change AA On Games With No Options]]></title>
<link>http://fixxit.wordpress.com/2009/01/25/add-a/</link>
<pubDate>Sun, 25 Jan 2009 23:39:21 +0000</pubDate>
<dc:creator>riggzz</dc:creator>
<guid>http://fixxit.wordpress.com/2009/01/25/add-a/</guid>
<description><![CDATA[Problem: Some games do not give you the option to increase the anti aliasing or other graphical feat]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Problem: Some games do not give you the option to increase the anti aliasing or other graphical features, such as MMORPGs. If your video card has the capability why not increase the them!? (This method only works for Nvidia cards)</p>
<p>Solution: On your computer find the Nvidia control panel. For XP it is usually in your tray, but vista you need to right click on your desktop and click Nvidia Control Panel. Once you are there click on the &#8220;Manage 3d Settings&#8221; category. If the game you want to modify is not in the drop-down menu then find the .exe file of that program (probably found here C:\Program Files\(game folder)\(game exe file)). Once the game is selected simply change the Anisotropic and Antialiasing to what ever you want. I always choose to enhance the application settings or to override them.</p>
<p>Hope this helped, Good luck.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Getting Fallout 3 to Work]]></title>
<link>http://aphilosopher.wordpress.com/2008/11/02/getting-fallout-3-to-work/</link>
<pubDate>Sun, 02 Nov 2008 15:17:32 +0000</pubDate>
<dc:creator>Michael LaBossiere</dc:creator>
<guid>http://aphilosopher.wordpress.com/2008/11/02/getting-fallout-3-to-work/</guid>
<description><![CDATA[As I mentioned in my last post, I had trouble with Fallout 3. I finally got it working. Sort of. If ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>As I mentioned in my last post, I had trouble with Fallout 3. I finally got it working. Sort of.</p>
<p>If you have having problems with the game, try the usual steps:</p>
<p>1. Update your video card and sound card drivers.</p>
<p>2. Make sure that any firewall and anti-malware software are set to allow Fallout 3 to run properly. Such programs often pop up request windows that are not visible when Fallout 3 (or other games) run. So, the fix might be as simple as running Fallout in Windowed Mode. This will allow you to see such popup windows and allow Fallout 3 the permissions it needs. To run Fallout 3 in Windowed Mode, launch Fallout 3 and click on Options. When the options window comes up, check Windowed in the Mode section. Now click on Play. If the warning pop ups appear, give Fallout 3 the permissions it needs.</p>
<p>3. Run a check on your system with anti-malware software (something that should be done anyway). Also, run a check on your disk (right click on the icon for the drive, select properties,  select Tools and then click on the button to start the error checking. You can also try a registry checker, if you have one.</p>
<p>Even after doing all of this, Fallout 3 might still fail to run. If you are getting a black screen and a a lock up when you try to play the game, run Fallout 3 and then select Options. I was able to get the game to run by checking the Windowed Mode option, setting the Screen Effects to None, the Antialiasing to 8, the Ariristosropic Filtering to 8, the Aspect Ratio to 16:10, and the Resolution to 1280X800. This might not work for you. If you have the patience, try changing a setting and then running the game. Keep doing this until it works or you get sick of it.</p>
<p>Of course, if you get the game to work and spend too much time playing it, your significant other might send you one of <a href="http://aphilosopher.wordpress.com/2008/10/29/quick-breakups/">these.</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Amsn 0.98(svn) no Ubuntu 8.04 Hardy Heron + Cold Skin]]></title>
<link>http://rmbernardes.wordpress.com/2008/08/13/amsn-098svn-no-ubuntu-804-hardy-heron-cold-skin/</link>
<pubDate>Wed, 13 Aug 2008 15:12:48 +0000</pubDate>
<dc:creator>rmbernardes</dc:creator>
<guid>http://rmbernardes.wordpress.com/2008/08/13/amsn-098svn-no-ubuntu-804-hardy-heron-cold-skin/</guid>
<description><![CDATA[VEJA TAMBÉM O ARTIGO "COMO HABILITAR O ARRASTA E SOLTA NO AMSN" Antes de iniciar execute apt-get ins]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://rmbernardes.wordpress.com/files/2008/02/amsnlogo.jpg"><img class="alignnone size-medium wp-image-78" style="border:0 none;" src="http://rmbernardes.wordpress.com/files/2008/02/amsnlogo.jpg?w=300" alt="" width="300" height="230" /></a></p>
<p><code><strong>VEJA TAMBÉM O ARTIGO <a href="http://rmbernardes.wordpress.com/2008/08/13/como-habilitar-o-%e2%80%9carrasta-e-solta%e2%80%9d-no-amsn-ubuntu-804/">"COMO HABILITAR O ARRASTA E SOLTA NO AMSN"</a></strong></code></p>
<p>Antes de iniciar execute<br />
<code>apt-get install xorg-dev libpng12-dev libjpeg-dev subversion build-essential</code><br />
1.Faça o download destes arquivos:<br />
<a href="http://ufpr.dl.sourceforge.net/sourceforge/tcl/tcl8.5.2-src.tar.gz">http://ufpr.dl.sourceforge.net/sourceforge/tcl/tcl8.5.2-src.tar.gz</a><br />
<a href="http://ufpr.dl.sourceforge.net/sourceforge/tcl/tk8.5.2-src.tar.gz">http://ufpr.dl.sourceforge.net/sourceforge/tcl/tk8.5.2-src.tar.gz</a></p>
<p>2.Instalando os pacotes:<br />
<code>tar xvzf tcl8.5.2-src.tar.gz<br />
cd tcl8.5.2/unix<br />
./configure<br />
make<br />
make install<br />
make clean</code></p>
<p><code>tar -xvzf tk8.5.2-src.tar.gz<br />
cd tk8.5.2/unix<br />
./configure –with-tcl=/usr/local/lib –enable-xft (substituir o hifen por dois hifens)<br />
make<br />
make install<br />
make clean<br />
cd ~<br />
</code></p>
<p>3.Baixe a ultima versão do amsn via svn.<br />
<code>svn co https://amsn.svn.sourceforge.net/svnroot/amsn/trunk/amsn amsn </code></p>
<p>4.Acesse o diretorio amsn e execute:<br />
<code>./configure –with-tk=/usr/local/lib/ –with-tcl=/usr/local/lib/ (substituir o hifen por dois hifens)<br />
make<br />
make install<br />
make clean </code></p>
<p>5.Finalizando<br />
<code>vi /usr/local/bin/amsn </code><br />
Substitua o wish por wish8.5<br />
(abra o amsn antes para criar a pasta .amsn)</p>
<p>6.Instalando o skin<br />
Faça o download do arquivo <a href="http://ufpr.dl.sourceforge.net/sourceforge/amsn/cold-1.0.zip">Cold.zip</a>.<br />
Descompacte-o<br />
<code>unzip cold-1.0.zip </code></p>
<p>Mova a pasta Cold para pasta skins do amsn<br />
<code>mv Cold ~/.amsn/skins/ </code></p>
<p>Agora no Amsn, clique em Account &#8211; Select Skin e selecione Cold &#8211; Ok<br />
Era isso!</p>
<p><a href="http://rmbernardes.wordpress.com/files/2008/08/amsn098.jpg"><img class="alignnone size-thumbnail wp-image-153" style="border:0 none;" src="http://rmbernardes.wordpress.com/files/2008/08/amsn098.jpg?w=120" alt="" width="120" height="96" /></a></p>
<p><!-- AddThis Button BEGIN --><br />
<a href="http://www.addthis.com/bookmark.php" title="Bookmark and Share" target="_blank"><img src="http://s7.addthis.com/button1-addthis.gif" width="125" height="16" border="0" alt="Bookmark and Share" /></a><br />
<!-- AddThis Button END --></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Addio Ubuntu: sono passato ad Arch Linux!]]></title>
<link>http://lucandrea.wordpress.com/2008/06/08/addio-ubuntu-sono-passato-ad-arch-linux/</link>
<pubDate>Sun, 08 Jun 2008 18:35:57 +0000</pubDate>
<dc:creator>LucAndrea</dc:creator>
<guid>http://lucandrea.wordpress.com/2008/06/08/addio-ubuntu-sono-passato-ad-arch-linux/</guid>
<description><![CDATA[Ubuntu mi ha rotto. Da ieri sono infatti passato definitivamente ad Arch Linux (http://www.archlinux]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong>Ubuntu mi ha rotto</strong>. Da ieri sono infatti passato definitivamente ad Arch Linux (<a href="http://www.archlinux.org/" target="_blank">http://www.archlinux.org/</a>), una distribuzione basata sul KISS (Keep It Simple Stupid, il significato penso sia ovvio&#8230;): una volta installata, infatti, è priva di qualsiasi interfaccia grafica e in generale l&#8217;intera distribuzione ha una struttura poco complessa.</p>
<p style="text-align:center;"><img class="aligncenter size-full wp-image-151" src="http://lucandrea.wordpress.com/files/2008/06/logoarch.jpg" alt="" width="341" height="266" /></p>
<p>Per questo non è adatta a tutti, ma solo agli &#8220;smanettoni&#8221; e a quelli che vogliono il massimo della personalizzazione. Nel mio caso, ho installato GNOME e numerosi programmi indispensabili (GIMP e Inkscape per la grafica, Kino e Avidemux per l&#8217;editing video, VLC come media player e cosí via&#8230;).</p>
<p>Lo ammetto: ho installato anche <em>aMSN</em>, il client open-source per chattare con chi utilizza quell&#8217;obbrobrio di <em>Windows Live Merdenger</em>. Ma&#8230; sorpresa! Quei bravi ragazzi che creano i pacchetti per Arch hanno compilato le TCL/Tk con l&#8217;antialiasing attivo, cosí aMSN sembra molto piú bello!</p>
<p>Per il momento non mi ha deluso nulla di Arch (a parte i driver della scheda video, ma quella è colpa di ATI): ho fatto molta fatica in piú rispetto a quando ho installato Ubuntu, ma devo ammettere che ne è valsa la pena, data la grande reattività e stabilità di questa distribuzione.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[SLI]]></title>
<link>http://shohagsust.wordpress.com/2008/04/19/sli/</link>
<pubDate>Sat, 19 Apr 2008 09:43:29 +0000</pubDate>
<dc:creator>shohagsust</dc:creator>
<guid>http://shohagsust.wordpress.com/2008/04/19/sli/</guid>
<description><![CDATA[Today I want to talk about SLI. This technology brings a war among Graphics giant. You can get thous]]></description>
<content:encoded><![CDATA[Today I want to talk about SLI. This technology brings a war among Graphics giant. You can get thous]]></content:encoded>
</item>
<item>
<title><![CDATA[Compilare aMsn 0.98 da sorgenti con antialiasing (Tcl/Tk 8.5.x)]]></title>
<link>http://nonsolounix.wordpress.com/2008/04/06/compilare-amsn-098-da-sorgenti-con-antialiasing-tcltk-85x/</link>
<pubDate>Sun, 06 Apr 2008 11:30:37 +0000</pubDate>
<dc:creator>nonsolounix</dc:creator>
<guid>http://nonsolounix.wordpress.com/2008/04/06/compilare-amsn-098-da-sorgenti-con-antialiasing-tcltk-85x/</guid>
<description><![CDATA[Salve a tutti!! In questa guida voglio proporre un metodo alternativo alla compilazione di aMsn 0.98]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Salve a tutti!!</p>
<p>In questa guida voglio proporre un metodo alternativo alla compilazione di aMsn 0.98 con antialiasing visto che la <a href="http://nonsolounix.wordpress.com/2008/02/04/amsn-098b-con-antialiasing-e-dragdrop-da-svn/" target="_blank">precedente guida</a>, sta cominciando a dare problemi. L&#8217;altra guida proponeva uno script scritto da alcuni utenti del forum di Ubuntu, ma dall&#8217;ultimo aggiornamento mi sono reso conto che cercava di compilare aMsn con le Tcl/Tk 8.6 e durante la compilazione con queste librerie viene restiuito un errore.</p>
<p>Se avete seguito <a href="http://nonsolounix.wordpress.com/2008/02/04/amsn-098b-con-antialiasing-e-dragdrop-da-svn/">questa</a> guida e vi siete ritrovati installate le Tcl/tk 8.6 seguite questa procedura per ripulire il sistema altrimenti saltate direttamente al passo 2.</p>
<p><strong>1. Ripulire il sistema dalle Tcl/Tk 8.6</strong></p>
<ol>
<li>Entrate nella directory /usr/local/lib col comando <strong>cd /usr/local/lib/</strong></li>
<li>Eseguite uno alla volta questi comandi:
<ul>
<li>sudo rm -r  tk8.6/</li>
<li>sudo rm -r  tcl8.6/</li>
<li>sudo rm libtkstub8.6.a</li>
<li>sudo rm libtk8.6.so</li>
<li>sudo rm libtclstub8.6.a</li>
<li>sudo rm libtcl8.6.so</li>
</ul>
</li>
<li>Entrate nella directory tcl8 con  <strong>cd tcl8</strong></li>
<li>Eliminate le 8.6 dando il comnando <strong>sudo rm -r  8.6/</strong></li>
</ol>
<p><strong>2. Installare le Tcl/Tk 8.5</strong></p>
<p>Per installare le Tcl/tk 8.5 su Ubuntu Gutsy Gibbon basta inserire nel file /etc/apt/sources.list il repository di backports di Hardy Heron:</p>
<blockquote><p>sudo gedit /etc/apt/sources.list</p></blockquote>
<p>Inserite la seguente stringa in fondo al file, salvate e chiudete:</p>
<blockquote><p>deb http://archive.ubuntu.com/ubuntu gutsy-backports main universe multiverse restricted</p></blockquote>
<p>Aggiornate la cache dei pacchetti:</p>
<blockquote><p>sudo apt-get update</p></blockquote>
<p>Rimuovete le Tcl/Tk 8.4 cercandovele da Synaptic e usate il front-end grafico per rimuoverle.</p>
<p>Installate i seguenti pacchetti:</p>
<blockquote><p>sudo apt-get install tcl8.5 tcl8.5-dev tcl8.5-doc tk8.5 tk8.5-dev tk8.5-doc</p></blockquote>
<p><strong>3. Compilare aMsn da SVN</strong></p>
<p>Per prima cosa scarichiamoci i sorgenti, quindi date un <strong>cd ~</strong> e poi il seguente comando:</p>
<blockquote><p>svn co https://amsn.svn.sourceforge.net/svnroot/amsn/trunk/amsn amsn</p></blockquote>
<p>Rimuoviamo qualsiasi altra versione di aMsn da Synaptic.</p>
<p>Entriamo nella directory appena scaricata:</p>
<blockquote><p>cd amsn</p></blockquote>
<p>E diamo i soliti comandi per compilare assicurandoci che dopo il comando ./configure venga resituito l&#8217;uso delle Tcl/tk 8.5, se diversamente consiglio di non proseguire, verrà dato al 90% un errore di compilazione.</p>
<blockquote><p>./configure</p>
<p>make</p>
<p>sudo make install</p></blockquote>
<p>Provate a lanciare aMsn, e se non viene restituito nessun errore&#8230;&#8230; !!BRAVI!! avete appena installato l&#8217;ultima versione di aMsn con antialiasing!!</p>
<p>¹Altrimenti provate a dare questo comando:</p>
<blockquote><p>sudo update-alternatives &#8211;config tclsh &#38;&#38; sudo update-alternatives &#8211;config wish</p></blockquote>
<p>E assicuratevi che venga restituito un qualcosa del genere:</p>
<blockquote><p>C&#8217;è un solo programma che fornisce tclsh<br />
(/usr/bin/tclsh8.5). Non c&#8217;è nulla da configurare.</p>
<p>C&#8217;è un solo programma che fornisce wish<br />
(/usr/bin/wish8.5). Non c&#8217;è nulla da configurare.</p></blockquote>
<p>¹Se vi permette di scegliere tra più versioni della stessa libreria ma non risultano le Tcl/Tk 8.5 date questi comandi e poi di nuovo il precedente:</p>
<blockquote><p>sudo update-alternatives &#8211;install $(which tclsh) tclsh /usr/local/bin/tclsh8.5 900;</p>
<p>sudo update-alternatives &#8211;install $(which wish) wish /usr/local/bin/wish8.5 900;</p></blockquote>
<p>Se da terminale provando a  dare il comando <strong>/usr/local/bin/amsn </strong>viene restituito &#8220;<em><strong>/usr/local/bin/amsn: line 3: exec: wish: not found</strong></em>&#8221; o qualcosa del genere provate a dare questo comando:</p>
<blockquote><p><code style="font-weight:bold;color:#333333;">sudo ln -s /usr/local/bin/wish8.5 /usr/local/bin/wish</code></p></blockquote>
<p>¹ATTENZIONE: Questi comandi funzionano solo in distribuzioni Debian-Like (Debian Etch, Ubuntu Gutsy Gibon, Ubuntu Hardy Heron, etc), per altri tipi di distro Linux vi rimando al <a title="Wiki Amsn antialiasing" href="http://www.amsn-project.net/wiki/Enabling_antialiasing" target="_blank">wiki ufficiale di aMsn</a></p>
<p>Ulteriori info <a href="http://www.amsn-project.net/wiki/Installing_SVN" target="_blank">qui</a> e <a href="http://www.amsn-project.net/wiki/Compiling_aMSN" target="_blank">qui</a></p>
<p><strong>4. Plugins e Skins</strong></p>
<p>Se volete potete scaricare <a href="http://nonsolounix.altervista.org/Plugins_Skins.tar.gz" target="_self">questo archivio di plugins e skin</a> da me creato estraetelo e copiatene il contenuto nella directory ~/.amsn</p>
<p><strong>5. Aggiornare a nuove versioni.</strong></p>
<p>Per aggiornamenti futuri vi basta andare dalla vostra home nella directory amsn e dare il comando:</p>
<blockquote><p>svn update</p></blockquote>
<p>Poi compilate dando:</p>
<blockquote><p>make clean</p>
<p>./configure</p>
<p>make</p>
<p>sudo make install</p></blockquote>
<p>Non mi resta che augurarvi buona fortuna e ovviamente postate commenti, soprattutto se ci sono stati problemi nel seguire la mia guida!</p>
<p>A presto, NonSolo1x</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Migliorare i font su Debian]]></title>
<link>http://toastedtech.wordpress.com/2008/03/19/migliorare-i-font-su-debian/</link>
<pubDate>Wed, 19 Mar 2008 14:56:58 +0000</pubDate>
<dc:creator>montoya</dc:creator>
<guid>http://toastedtech.wordpress.com/2008/03/19/migliorare-i-font-su-debian/</guid>
<description><![CDATA[Uno dei problemi maggiori che affligge chi usa Debian è sicuramente la resa dei font. Per risolvere ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Uno dei problemi maggiori che affligge chi usa Debian è sicuramente la resa dei font.</p>
<p><a title="antialias.jpg" href="http://toastedtech.wordpress.com/files/2008/03/antialias.jpg"></a></p>
<div style="text-align:center;"><a title="antialias.jpg" href="http://toastedtech.wordpress.com/files/2008/03/antialias.jpg"><img src="http://toastedtech.wordpress.com/files/2008/03/antialias.jpg" alt="antialias.jpg" /></a></div>
<p>Per risolvere questo inconveniente, basta seguire alcuni semplici accorgimenti.</p>
<p><!--more--></p>
<p><strong>1) Installare font aggiuntivi</strong></p>
<p>I font che preferisco aver installato nel mio pc sono i font bitstream e quelli che seguono nel comando che segue:<br />
<code><br />
$ apt-get install ttf-bitstream-vera ttf-freefont ttf-opensymbol</code></p>
<p><strong>2) Settare la resa dei font su KDE</strong></p>
<p>Bisogna aprire Kcontrol e settare alcuni parametri:</p>
<p>&#8220;Aspetto e temi -&#62; Tipi di carattere&#8221;</p>
<p>A questo punto: &#8220;Utilizza antialiasing&#8221; -&#62; &#8220;abilitato&#8221; e nel tasto &#8220;Configura&#8221; selezionate &#8220;Stile di hinting -&#62; Nessuno&#8221;</p>
<p>Successivamente su &#8220;Sistema tutti i caratteri&#8221; settate il font &#8220;Bitstream Vera Sans&#8221;</p>
<p>Infine: &#8220;Forza DPI&#8221; -&#62; &#8220;96 DPI&#8221;</p>
<p><strong>3) Riconfigurare il gestore dei font</strong><br />
<code><br />
$ dpkg-reconfigure fontconfig-config</code></p>
<p>Durante la riconfigurazione bisogna rispondere a 3 domande:</p>
<ul>
<li>Nativo</li>
<li>Automatico</li>
<li>No</li>
</ul>
<p>Dopo un riavvio del server X si potrà ammirare probabilmente un netto miglioramento della resa dei font.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Amsn con antialiasing su (K)Ubuntu]]></title>
<link>http://morolandia.wordpress.com/2008/03/05/amsn-con-antialiasing-su-kubuntu/</link>
<pubDate>Wed, 05 Mar 2008 15:25:30 +0000</pubDate>
<dc:creator>morolandia</dc:creator>
<guid>http://morolandia.wordpress.com/2008/03/05/amsn-con-antialiasing-su-kubuntu/</guid>
<description><![CDATA[In giro si trovano vari post (io in particolare mi riferisco a questo) che spiegano come installare ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img src="http://morolandia.wordpress.com/files/2008/03/amsn.png" alt="amsn" width="85" height="76" align="left" />In giro si trovano vari post (io in particolare mi riferisco a<a title="amsn + antialiasing" href="http://www.intilinux.com/software/590/amsn-098b-svn-con-antialiasing-su-ubuntu-gutsy-710/" target="_blank"> questo</a>) che spiegano come installare amsn con attivato l&#8217;antialiasing tramite uno script. Questo script si chiama fixamsn. Ma ha un problema, almeno con il mio portatile (in effetti la procedura di installazione della pagina a cui faccio riferimento funziona benissimo sul mio fisso) e si pianta allegramente dando un fastiodiosissimo errore: <em>Could not install build dependencies.</em></p>
<p>Per fortuna, però sono riuscito, smanettando un pò, a risolvere questo problema. Facendo quindi riferimento alla guida di prima, il cui blogger ovviamente ringrazio, spiegerò come installare amsn senza problemi.</p>
<p>Per prima cosa dobbiamo scaricare lo script, apriamo la shell, entriamo in una cartella a piacere e digitiamo:</p>
<ul>
<li>wget  <code>http://repo.intilinux.com/fixamsn.tar.gz</code></li>
</ul>
<p>Scompattiamo il file:</p>
<ul>
<li> <code>tar zxvf fixamsn.tar.gz</code></li>
</ul>
<p>Ora apriamo il file (kwrite fixamsn.sh) e andiamo alla riga 135 e la sostituiamo con quella successiva:</p>
<ul>
<li>sudo apt-get $APTOPTIONS build-dep tcl8.4 tk8.4 amsn &#124;&#124; error_exit &#8220;Could not install build dependencies.&#8221;</li>
<li>sudo apt-get $APTOPTIONS build-dep tcl8.4 tk8.4 &#124;&#124; error_exit &#8220;Could not install build dependencies.&#8221;</li>
</ul>
<p>Ora installiamo l&#8217;ultima versione di amsn, ci vorrà un pò di tempo, dato che scaricherà e compilerà le librerie necessarie:</p>
<ul>
<li>bash fixamsn.sh cvs</li>
</ul>
<p>Ora è pronto per essere eseguito.</p>
<p><span style="text-decoration:underline;"><strong>Aggiornamento 03.12.08: </strong></span>Dalla versione 8.04 di ubuntu questa guida è diventata obsoleta, visto che il pacchetto presente nei repository ha abilitato l&#8217;opzione antialiasing di default.</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
