<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>Development blog for Umbra Technologies</description><title>Umbra Technologies</title><generator>Tumblr (3.0; @umbratech)</generator><link>http://umbratech.tumblr.com/</link><item><title>MatteOS and MFS</title><description>&lt;p&gt;I finally got fed up with there not being a good utility for making FAT-images for OS development, so I made (though not finished yet) my own file system and utility to add/remove files to an image with this FS. This file system is currently (rather conservatively) named Matte File System. It is in a very early stage, but it supports folders, files and pretty much all the basic IO stuff.&lt;!-- more --&gt;&lt;/p&gt;
&lt;p&gt;By using my own file system instead of FAT or ISO or something else, I will know exactly how the file system works. It also gives me greater control of the sectors, especially the boot sector. I will probably be writing my OS from scratch using this file system, though not the current version, which is pretty limited - though the system supports it, files can currently not be larger than 512 bytes.&lt;/p&gt;
&lt;p&gt;So, I just loaded my kernel (which just prints a message in green at the moment) with my boot loader in my own file system, which I guess is pretty cool.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://i.imgur.com/XTLZW.png" width="500" height="400"/&gt;&lt;/p&gt;
&lt;p&gt;The utility for making images with the file system in question (which also compiles the kernel and boot sector at the moment):&lt;/p&gt;
&lt;p&gt;&lt;img src="http://i.imgur.com/CGkJw.png" width="500" height="280"/&gt;&lt;/p&gt;</description><link>http://umbratech.tumblr.com/post/12211421838</link><guid>http://umbratech.tumblr.com/post/12211421838</guid><pubDate>Tue, 01 Nov 2011 23:02:00 +0100</pubDate><category>Private projects of Matte</category></item><item><title>A Compiler for a C-inspired Language</title><description>&lt;p&gt;Hey!&lt;/p&gt;
&lt;p&gt;Updates on the voxel engine have been few and slow. This is both due to school and other occupations, and that I needed to take my mind off the project for a while. There is nothing better to do for relaxation purposes other than starting another programming project!&lt;/p&gt;
&lt;p&gt;So here I present my newest project: a compiler!&lt;!-- more --&gt;&lt;/p&gt;
&lt;p&gt;What I&amp;#8217;m making is a compiler which will take a piece of code and spit out x86 machine code. The piece of code will be written in a language (which has no name at the moment) that is very similar to C. The compiler will hopefully also be able to assemble executables too, although it&amp;#8217;s not a first priority.&lt;/p&gt;
&lt;p&gt;&lt;img height="750" width="450" src="http://i.imgur.com/NMm4M.png" align="middle"/&gt;&lt;/p&gt;
&lt;p&gt;This image shows current progress on variable declaration.&lt;/p&gt;
&lt;p&gt;The preprocessor will take the code and turn it into something more friendly for the tokenizer.&lt;/p&gt;
&lt;p&gt;The tokenizer splits the code into tokens, for instance an identifier, operator or a keyword or function. It then translates the infix expressions to postfix, also known as RPN ( Reverse Polish Notation), expressions using the &lt;a href="http://en.wikipedia.org/wiki/Shunting-yard_algorithm"&gt;Shunting-Yard algorithm&lt;/a&gt;. This means that the expression (2 + 4) will be turned into (2&amp;#160;4 +). Read more about RPN &lt;a href="http://en.wikipedia.org/wiki/Reverse_Polish_notation"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The (currently) last stage turns the tokenized and RPNified(?) code into a pseudo-assembly language. This code will be reviewed, optimized and error-checked in the later stages of the compiler. And lastly, the code will be compiled into x86 assembly.&lt;/p&gt;</description><link>http://umbratech.tumblr.com/post/11833387860</link><guid>http://umbratech.tumblr.com/post/11833387860</guid><pubDate>Sun, 23 Oct 2011 22:45:00 +0200</pubDate><category>Private projects of Matte</category></item><item><title>Ray casting!</title><description>&lt;p&gt;We&amp;#8217;re looking into changing our rendering method from ordinary polygon rendering to ray casting. &lt;/p&gt;
&lt;p&gt;There are reasons beyond count why we should do this. Because of the way ray casting work, we no longer need to work around the bugs any more - the bugs won&amp;#8217;t exist in the first place due to how ray casting works.&lt;/p&gt;
&lt;p&gt;The main reason is that it will improve the code immensely, it will make it more simple and much more elegant. We get rid of some of the complicated measures taken regarding, for instance, the vertex buffers.&lt;/p&gt;
&lt;p&gt;It will also reduce memory consumption. A lot. A simple test showed that the memory consumption could be less than halved. And that was a fast test without optimization.&lt;/p&gt;
&lt;p&gt;It will also save us time when loading. We no longer need to generate the vertex buffers and perform checks to see which faces can be seen or not.&lt;/p&gt;

&lt;p&gt;After an email to ray casting legend &lt;a href="http://en.wikipedia.org/wiki/Ken_Silverman"&gt;Ken Silverman&lt;/a&gt;, we got a few pointers as to how we should approach this. If I undrstood the man right, this type of thing should be totally feasible, even in software.&lt;/p&gt;
&lt;p&gt;Even while this bodes well for us, I can&amp;#8217;t help put emphasize that this is only testing. If, for some reason, ray casting does not work as we expect, or there are unforeseen results which make a renderer like this unfeasible, we can always turn back to traditional rendering.&lt;/p&gt;</description><link>http://umbratech.tumblr.com/post/11536864075</link><guid>http://umbratech.tumblr.com/post/11536864075</guid><pubDate>Sun, 16 Oct 2011 21:41:01 +0200</pubDate><category>Umbra Voxel Engine</category></item><item><title>Welcome!</title><description>&lt;p&gt;Hey, and welcome!&lt;/p&gt;
&lt;p&gt;This is the new development blog for Umbra Technologies. Here we will post updates on our projects as well as share thoughts and similar.&lt;/p&gt;
&lt;p&gt;If you follow our projects, this is where we&amp;#8217;ll post updates first.&lt;/p&gt;</description><link>http://umbratech.tumblr.com/post/11536274136</link><guid>http://umbratech.tumblr.com/post/11536274136</guid><pubDate>Sun, 16 Oct 2011 21:28:00 +0200</pubDate></item></channel></rss>
