<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>mike&#039;s digital anthology</title>
	<atom:link href="http://blog.mikepan.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mikepan.com</link>
	<description>updated whenever i feel like it</description>
	<lastBuildDate>Sun, 22 Nov 2009 23:15:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The importance of shading</title>
		<link>http://blog.mikepan.com/the-importance-of-shading/</link>
		<comments>http://blog.mikepan.com/the-importance-of-shading/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 19:08:20 +0000</pubDate>
		<dc:creator>mike pan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://blog.mikepan.com/?p=120</guid>
		<description><![CDATA[
Introducing&#8230; a flat, boring porins protein, this is how most scientific vistualization would show it.
What&#8217;s wrong with the image?  Well technically nothing, it&#8217;s scientifically accurate, each atom is color coded to represent an element, and it even rotates so that you can see the overall structure of protein.  But can we do better?  You bet!
Click ]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.mikepan.com/wp-content/uploads/porin.gif"><img class="size-full wp-image-122 alignleft" title="Porin molecule, No Ambient Occlusion" src="http://blog.mikepan.com/wp-content/uploads/porin2.gif" alt="Porin molecule, No Ambient Occlusion" width="256" height="256" /></a></p>
<p>Introducing&#8230; a flat, boring porins protein, this is how most scientific vistualization would show it.</p>
<p>What&#8217;s wrong with the image?  Well technically nothing, it&#8217;s scientifically accurate, each atom is color coded to represent an element, and it even rotates so that you can see the overall structure of protein.  But can we do better?  You bet!</p>
<p><a href="http://blog.mikepan.com/wp-content/uploads/porin.gif">Click here</a> to see the exact same porins protein, but with a much advanced shading model, I think it&#8217;s clear why this one is superior.  With ambient occlusion, in which the model is shaded based on how likely an area is occluded because of surrounding objects, the spatial structure of the protein is much easier to understand.  And with today&#8217;s super fast GPUs, doing a screen-space ambient occlusion is virtually instant.</p>
<p>And if anyone is curious, the software I used to generate the graph is <a href="http://qutemol.sourceforge.net/">CuteMol</a>, an</p>
<blockquote><p>interactive, <em>high quality molecular visualization system</em>.        QuteMol exploits the current GPU capabilites through OpenGL shaders to        offers an array of innovative visual effects. QuteMol visualization        techniques are aimed at improving clarity and an easier understanding of        the 3D shape and structure of large molecules or complex proteins.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikepan.com/the-importance-of-shading/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Very simple 2 player networking in Python</title>
		<link>http://blog.mikepan.com/very-simple-2player-networking-in-python/</link>
		<comments>http://blog.mikepan.com/very-simple-2player-networking-in-python/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 06:15:21 +0000</pubDate>
		<dc:creator>mike pan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[realtime]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://mikepan.homeip.net/blog/?p=75</guid>
		<description><![CDATA[A while ago, I posted a simple demo I made in the Blender game engine that let&#8217;s 2 player interact with each other over the internet, all it is required is a really simple networking script and the IP address of the two players.  Here is as youtube video of it in action, mouse-over the ]]></description>
			<content:encoded><![CDATA[<p>A while ago, I posted a simple demo I made in the Blender game engine that let&#8217;s 2 player interact with each other over the internet, all it is required is a really simple networking script and the IP address of the two players.  Here is as youtube video of it in action, mouse-over the video to see some caption text.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="510" height="310" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Az8C1IW5E5s&amp;hl=en&amp;fs=1&amp;rel=0&amp;hd=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="510" height="310" src="http://www.youtube.com/v/Az8C1IW5E5s&amp;hl=en&amp;fs=1&amp;rel=0&amp;hd=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>The laptop on the left is physically separated from the desktop to the right, linked only by a wireless internet connection.  And as you can see, input made to the desktop computer is sent across the network to the laptop, in realtime.</p>
<p>And here is the script, I&#8217;ll try to explain everything as best I can:</p>
<pre># Simple Python UDP networking demo Created by Mike Pan
# Todo: auto-self IP detection would be nice

# the following line loads the game module used by Python
# to access the Blender Game Engine API, and assigns it the alias G
import GameLogic as G
# load the network socket python module, we'll need it later
import socket

# define own IP address, and stores it as a property under GameLogic
# essentially making it accessible as a global variable
G.ownIP = "xxx.xxx.xxx.xxx"
# define peer IP address, stores it as a property under GameLogic
# again, essentially making it accessible as a global variable
G.peerIP = "xxx.xxx.xxx.xxx"
# define the port number (arbitrary), and the socket buffer size
# (4096 is a good starting point)
G.port = 4000
G.buffer = 4096

# create an IPV4 address with the pre-defined IP and the port number
addr = (G.peerIP, G.port)

# We'll add this line to all our communication, so when debugging,
# we won't get confused as to who send the packets.
signature = "Sent from " + G.ownIP

def init():
	# create an UDP socket for **sending** datagram
	G.sender = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
	# time out is 10ms, pretty short for realworld application,
	#but enough for debugging over local network
	G.sender.settimeout(0.01)
	# this is important! by making this socket object a
	# non-blocking operation, all network stuff is run on
	# a separate thread, thus any network delay will not
	# cause the game to slow down
	G.sender.setblocking(0)

	# creates UDP socket for **receiving** datagram
	G.listener = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
	# same as above, time out is 10ms
	G.listener.settimeout(0.01)
	# same as above, we also need to make sure network operations
	# will not slow down the main application
	G.listener.setblocking(0)

	# Win32 needs the socket binded:
	try:
	 G.listener.bind((G.ownIP, G.port))
	except:
	 print "Binding Listener failed"

def comm():
	# get the object that is attached to this script
	own = G.getCurrentController().owner

 	# receive from peer
	try:
		data, port = G.listener.recvfrom(G.buffer)
		# data contains all the data that came through,
		# it's a string, and we can do whatever we want
		# like print it out
		print data.split(',')
	# if the receiving fails, print something to notify the user
	except:
		print "Receive failed"

	# send to peer
	# generate data to be sent here,
	# send the position data across the network:
	string = str(own.worldPosition)+ ',' + signature

	# going to try to send the data
	try:
		G.sender.sendto(string, addr)
		# if sending fails, notify with error message
	except:
		print "Send failed"</pre>
<p>That&#8217;s it!  To use this script, we simply need to call init() once at the start of the game, and then comm() everytime you wish to send/receive some data (perhaps every 1/30th of a second).  As mentioned, here is no &#8217;server&#8217; involved, the two peers connect direction to each other via a UDP socket.  All the user has to do is specify the two IP addresses.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikepan.com/very-simple-2player-networking-in-python/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Happy Flare-tuesday</title>
		<link>http://blog.mikepan.com/happy-flare-tuesday/</link>
		<comments>http://blog.mikepan.com/happy-flare-tuesday/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 03:21:04 +0000</pubDate>
		<dc:creator>mike pan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://mikepan.homeip.net/blog/?p=59</guid>
		<description><![CDATA[Inspired by JJ Abram&#8217;s ridiculous liberal use of lens flare in Star Trek, I&#8217;ve been messing with flares on my own time.  Using a basic dSLR and with various lenses at different aperture settings&#8230;
Canon EF 100mm F2 @ F22

EF 50mm F1.4



You&#8217;ll notice the shape of the flare is very different for different lenses, and also ]]></description>
			<content:encoded><![CDATA[<p>Inspired by JJ Abram&#8217;s ridiculous liberal use of<a href="http://www.firstshowing.net/2009/04/29/hey-jj-abrams-whats-with-the-lens-flares-in-star-trek/"> lens flare in Star Trek</a>, I&#8217;ve been messing with flares on my own time.  Using a basic dSLR and with various lenses at different aperture settings&#8230;</p>
<p>Canon EF 100mm F2 @ F22</p>
<p><a title="Bright and sunny by mike pan, on Flickr" href="http://www.flickr.com/photos/mikepan/3986153620/"><img src="http://farm3.static.flickr.com/2593/3986153620_b936e88c04.jpg" alt="Bright and sunny" width="500" height="334" /></a></p>
<p>EF 50mm F1.4<br />
<a title="Flare from 50mm F1.4 by mike pan, on Flickr" href="http://www.flickr.com/photos/mikepan/3989017112/"><img src="http://farm3.static.flickr.com/2428/3989017112_4152c5bf35.jpg" alt="Flare from 50mm F1.4" width="500" height="334" /></a></p>
<p><a title="Flare from 50mm F1.4 by mike pan, on Flickr" href="http://www.flickr.com/photos/mikepan/3989017312/"><img src="http://farm3.static.flickr.com/2426/3989017312_59a5d2b4c7.jpg" alt="Flare from 50mm F1.4" width="500" height="334" /></a></p>
<p><a title="Flare from 50mm F1.4 by mike pan, on Flickr" href="http://www.flickr.com/photos/mikepan/3989017556/"><img src="http://farm3.static.flickr.com/2628/3989017556_7533923cb1.jpg" alt="Flare from 50mm F1.4" width="500" height="334" /></a></p>
<p>You&#8217;ll notice the shape of the flare is very different for different lenses, and also the aperture size(F-stop setting) plays a big part in defining the shape of the flare as well.  In general, large f-number(F22) gives a more defined star-burst shape to the flare, while a small f-number (F1.4) gives a softer looking flare.</p>
<p><a href="http://images.google.com/images?hl=en&amp;q=anamorphic+lens+flare">Anamorphic</a> lens flares, which looks &#8216;cooler&#8217; in my opinion, are harder to reproduce on a regular consumer camera because they require special anamorphic lenses.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikepan.com/happy-flare-tuesday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blender source file pack</title>
		<link>http://blog.mikepan.com/blender-source-file-pack/</link>
		<comments>http://blog.mikepan.com/blender-source-file-pack/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 00:03:46 +0000</pubDate>
		<dc:creator>mike pan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[me]]></category>

		<guid isPermaLink="false">http://mikepan.homeip.net/blog/?p=42</guid>
		<description><![CDATA[I know I will never be a great writer, so instead of doing tutorials, I have decided to release some of the personal project I&#8217;ve worked on. The result is a 300MB folder of 22 project, including a lot of the things on my portfolio and demoreel.
When I was learning Blender, I start a lot ]]></description>
			<content:encoded><![CDATA[<p>I know I will never be a great writer, so instead of doing tutorials, I have decided to release some of the personal project I&#8217;ve worked on. The result is a 300MB folder of 22 project, including a lot of the things on my <a href="http://mikepan.com/stills.htm" target="_blank">portfolio</a> and demoreel.</p>
<p>When I was learning Blender, I start a lot of personal mini-project that I never really finished, so instead of having them just sitting on my harddrive, perhaps others can find them useful in some way.  The pack contains animations, stills and a realtime game project.</p>
<p><strong>=======================Download===================  ====</strong></p>
<p><a href="http://files.me.com/ecopath/mkkbnx">Mike&#8217;s Blender Pack v2 Zip</a> (175MB Compressed)</p>
<p><a href="http://rapidshare.com/files/279871614/mpan_Blenderfiles.zip">Mike&#8217;s Blender Pack v2 Zip (RapidShare.com Mirror)</a> (175MB Compressed)</p>
<p><a href="http://mikepan.com/files.php">Mike&#8217;s Blender Pack v2 Individual files</a></p>
<p><strong>=======================Download===================  ====</strong></p>
<p><strong> </strong></p>
<div id="attachment_49" class="wp-caption alignnone" style="width: 312px"><strong> </strong><strong><img class="size-full wp-image-49 " style="border: 1px solid black;" title="File listing of the Blender Pack content." src="http://blog.mikepan.com/wp-content/uploads/2009/09/listing.png" alt="File listing of the Blender Pack content." width="302" height="564" /></strong><p class="wp-caption-text">File listing of the Blender Pack content.</p></div>
<p>I&#8217;ve tried my best to make sure everything is packed and ready to go. All files should work in Blender 2.49a.</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post"> </form>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post"> </form>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post"> </form>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post"> </form>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post"> </form>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post"> </form>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikepan.com/blender-source-file-pack/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Compile Blender &#8211; Advanced</title>
		<link>http://blog.mikepan.com/compile-blender-advanced/</link>
		<comments>http://blog.mikepan.com/compile-blender-advanced/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 01:28:11 +0000</pubDate>
		<dc:creator>mike pan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://mikepan.homeip.net/blog/?p=39</guid>
		<description><![CDATA[Compiling Blender 2.45 on Windows&#8230;Advanced Guide
An Easier guide: Compiling Blender 2.45 on Windows. The Easy way.
Please follow the guide precisely.  The guide also assumes all software installations use the default path
This guide is provided as-is because a few people have requested it.  I do not know if the same approach would build Blender 2.49a.
1. ]]></description>
			<content:encoded><![CDATA[<p>Compiling Blender 2.45 on Windows&#8230;Advanced Guide<br />
An Easier guide:<a href="http://mikepan.homeip.net/blog/compile-blender-simple/"> Compiling Blender 2.45 on Windows. The Easy way.</a></p>
<p style="background:#F66; border:1px dashed; border-color: #666; padding: 10px; color:#000">Please follow the guide precisely.  The guide also assumes all software installations use the default path</p>
<p style="background:#F66; border:1px dashed; border-color: #666; padding: 10px; color:#000">This guide is provided as-is because a few people have requested it.  I do not know if the same approach would build Blender 2.49a.</p>
<h3>1. Acquire Blender source code and libraries</h3>
<p>- Download and install tortoisesvn from: <a href="http://tortoisesvn.tigris.org/">tortoisesvn.tigris.org</a><br />
-created a folder named &#8220;blender&#8221; under c:\build, select the folder and click on SVN checkout, and use the following location:<br />
<strong>https://svn.blender.org/svnroot/bf-blender/trunk/blender</strong><br />
-created a folder named &#8220;windows&#8221; under c:\build\lib, select the folder and click on SVN checkout, and use the following location:<br />
<strong>https://svn.blender.org/svnroot/bf-blender/trunk/lib/windows</strong></p>
<p>Once the above 3 steps are done, you will have the most up-to-date blender source code in the world.</p>
<p style="background:#CCC; border:1px dashed; border-color: #666; padding: 10px; color:#000">OPTIONAL INFO: If you want to build an official release, you can grab the more stable source code (~10MB, library files are not included) from <a href="http://www.blender.org/download/source-code/">blender.org/download/source-code</a>.  Simply delete everything under C:\build\blender and then extract the tarball to the same directory.  Building from the official release ensures the Blender you compiled is stable and relatively bug-free.</p>
<h3>2. Acquire compiling softwares</h3>
<p>- Download and install Python 2.5.1 (9MB) from <a href="http://www.python.org/download/releases/2.5.1/"> www.python.org </a><br />
- Download Mingw 5.1.3 (~10MB) from <a href="http://sourceforge.net/project/showfiles.php?group_id=2435&amp;package_id=240780&amp;release_id=529741"> www.mingw.org </a>.  Run the installer, Pick any mirror, Select <strong>Current</strong> and install packages <strong>MinGW BASETOOLS</strong> and <strong>G++ COMPILER</strong>.<br />
- Download and install SCons 0.97 Windows (300KB) from <a href="http://prdownloads.sourceforge.net/scons/scons-0.97.win32.exe"> www.scons.org </a><br />
- Download the experimental GCC4.x for MinGW package from <a href="http://www.tdragon.net/recentgcc/">tdragon.net</a>.  Extract it to the place where you installed MinGW, and this will serve as a &#8216;drop in&#8217; replacement compiler.  From my own testing, GCC4 is faster than the one that comes with MinGW, but can cause trouble when compiling OpenAL.</p>
<h3>3. Environment setup</h3>
<p>- Go to Start Menu &gt;&gt; Control Panel &gt;&gt; System &gt;&gt; Advanced (Tab) &gt;&gt; Envoronmant Variables (button) &gt;&gt; System Variables scroll area double click on the PATH item<br />
- Add the following line to the end: <code style="background:#FCA; padding: 5px; color:#000">;C:\Python25;C:\mingw\bin</code><br />
- For Vista Users: <a href="http://www.google.com/search?hl=en&amp;q=vista+mingw+path">There is one more step involved</a></p>
<h3>4. Python stuff&#8230;</h3>
<p>Copy <strong>libpython25.a</strong> from <strong>C:\Python25\libs</strong> to <strong>C:\build\lib\windows\python\lib</strong></p>
<h3>5.Getting Ready (You can use this step to customize what features you want, and the optimization to use)</h3>
<p>- Create a new file named <strong>user-config.py</strong> under <strong>C:\build\blender\</strong><br />
- Open user-config.py with notepad and copy the following text into it.</p>
<p style="background:#FCA; padding: 5px; color:#000">WITH_BF_GAMEENGINE=&#8217;true&#8217;<br />
WITH_BF_BULLET = &#8216;true&#8217;<br />
WITH_BF_ODE = &#8216;true&#8217;<br />
WITH_BF_OPENEXR = &#8216;true&#8217;<br />
WITH_BF_FTGL = &#8216;true&#8217;<br />
WITH_BF_FMOD = &#8216;true&#8217;<br />
WITH_BF_FFMPEG = &#8216;true&#8217;<br />
WITH_BF_QUICKTIME = &#8216;false&#8217;<br />
WITH_BF_OPENAL = &#8216;false&#8217;<br />
WITH_BF_SDL = &#8216;false&#8217;<br />
BF_PYTHON_VERSION = &#8216;2.5&#8242;</p>
<p>CCFLAGS.extend( ['-march=i686', '-ftracer', '-fomit-frame-pointer', '-finline-functions', '-ffast-math'])<br />
CXXFLAGS.extend(['-march=i686', '-ftracer', '-fomit-frame-pointer', '-finline-functions', '-ffast-math'])</p>
<p>REL_CFLAGS = [ '-O3' ]<br />
REL_CCFLAGS = [ '-O3' ]</p>
<p><strong>&#8216;-march=&#8217;</strong> is probably the most important flag in this config file.  Newer Intel CPU (Pentium D, Core 2) owners are recommended to use <strong>&#8216;-march=nocona&#8217;</strong>, AMD (A64, X2) owners can try <strong>&#8216;-march=k8&#8242;</strong>.<br />
<strong>&#8216;-mmmx&#8217;, &#8216;-msse&#8217;, &#8216;-msse2&#8242;, &#8216;-msse3&#8242;</strong> are usually implied by using a valid <strong>march</strong> flag, therefore they are not included in the config file.<br />
<strong>&#8216;-ffast-math&#8217;</strong> are in general stable enough for daily use (I&#8217;ve never seen a crash), but if you are running a real production server or can not tolorate crashes, remove this flag.  It will make the binary a little slower.</p>
<p>This is how the directory should look like:<br />
<img src="content/resources/build2.png" alt="compile blender using gcc" /></p>
<h3>6. Compile!</h3>
<p>- Open a command prompt window by click on Start &gt;&gt; Run &gt;&gt; type in &#8220;cmd&#8221; and hit OK.<br />
- Navigate to where the Blender source code is by typing this into the command prompt <code style="background:#FCA; padding: 5px; color:#000">cd C:\build\blender</code><br />
- Start the building process: <code style="background:#FCA; padding: 5px; color:#000">scons BF_TOOLSET=mingw BF_BUILDDIR=c:\install -j2</code><br />
- The above command should take about 5-10 minutes to process, and it helps if you have a dual-core processor!<br />
- When it finishes, (Hopefully without error), you can nagivate to <strong>C:\install\win32-mingw\</strong> and find a complete Blender installation ready to be zipped up and distributed!</p>
<h3>7. LargeAddressAware</h3>
<p>More info one what it does <a href="http://mpan3.homeip.net/?blendermemory">here</a>.  But in a nut shell: making a program &#8216;LAA&#8217; means it will be able to address more memory than conventional applications &#8211; a good thing for Blender when dealing with large scenes.</p>
<p>You will need <a href="http://www.microsoft.com/express/download/default.aspx">install Visual C++ 2008 Express Edition</a> (Free)<br />
Then simply run this command<br />
<code style="background:#FCA; padding: 5px; color:#000"><strong>YOUR_PATH_TO_VISUAL_STUDIO_9</strong>\VC\bin\editbin.exe /LARGEADDRESSAWARE C:\install\win32-mingw\blender.exe</code></p>
<p>This will flag the binary as &#8216;LargeAddressAware&#8217;.  However, do this step after you &#8217;strip&#8217; the executable, otherwise the flag might get stripped as well.</p>
<h3>Where to go from here?</h3>
</p>
<p style="background:#CCC; border:1px dashed; border-color: #666; padding: 10px; color:#000">You might want to rid the blender.exe of extra useless debug data by entering the following command into the command line:<br />
<strong>strip C:\install\win32-mingw\blender.exe</strong><br />
This will reduce the size of the executable by 8mb or so without having any negative impact</p>
<p>The above &#8216;user-config.py&#8217; file will result in a full-featured Blender that is optimized for speed and should run on almost all modern processors.  To speed up the building process, you can chose to disable some of the features by replacing &#8216;true&#8217; with &#8216;false&#8217; (this will give you a blender binary without certain feaures such as gameengine, audio, etc&#8230;)</p>
<p><strong>scons clean BF_TOOLSET=mingw BF_BUILDDIR=C:\install</strong><br />
can be used to clean the build data and getting ready for a new build</p>
<p><strong>Acknowledgement</strong>: A big thanks goes to Nathan Letwory(jesterKing), lukep, Jonathan Jacobs and Johnny Matthews for the BlenderDev/SconsRefactoring article at mediawiki.blender.org; and jmk for pointing me to the python25.a solution.<br />
<strong>I also recommend</strong>: How to <a href="http://www.geneome.net/index.php/blender-tutorials/building-blender-with-msvc-using-cmake/">build Blender using Visual C++ Express Edition 2008</a> By Eugene (etr9j), MSVC produces faster binary, but takes a lot longer to setup for the first time.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikepan.com/compile-blender-advanced/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Compile Blender &#8211; Simple</title>
		<link>http://blog.mikepan.com/compile-blender-simple/</link>
		<comments>http://blog.mikepan.com/compile-blender-simple/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 01:26:37 +0000</pubDate>
		<dc:creator>mike pan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://mikepan.homeip.net/blog/?p=37</guid>
		<description><![CDATA[Compiling Blender 2.45 on Windows&#8230;The easy way
Please follow the guide precisely.  The guide also assumes all software installations use the default path
This guide is provided as-is because a few people have requested it.  I do not know if the same approach would build Blender 2.49a.
1. Acquire Blender source code and libraries
- Download and install ]]></description>
			<content:encoded><![CDATA[<p>Compiling Blender 2.45 on Windows&#8230;The easy way</p>
<p style="background:#F66; border:1px dashed; border-color: #666; padding: 10px; color:#000">Please follow the guide precisely.  The guide also assumes all software installations use the default path</p>
<p style="background:#F66; border:1px dashed; border-color: #666; padding: 10px; color:#000">This guide is provided as-is because a few people have requested it.  I do not know if the same approach would build Blender 2.49a.</p>
<h3>1. Acquire Blender source code and libraries</h3>
<p>- Download and install tortoisesvn from: <a href="http://tortoisesvn.tigris.org/">tortoisesvn.tigris.org</a><br />
-created a folder named &#8220;blender&#8221; under c:\build, select the folder and click on SVN checkout, and use the following location:<br />
<strong>https://svn.blender.org/svnroot/bf-blender/trunk/blender</strong><br />
-created a folder named &#8220;windows&#8221; under c:\build\lib, select the folder and click on SVN checkout, and use the following location:<br />
<strong>https://svn.blender.org/svnroot/bf-blender/trunk/lib/windows</strong></p>
<h3>2. Acquire compiling softwares</h3>
<p>- Download and install Python 2.5.1 (9MB) from <a href="http://www.python.org/download/releases/2.5.1/"> www.python.org </a><br />
- Download Mingw 5.1.3 (~10MB) from <a href="http://sourceforge.net/project/showfiles.php?group_id=2435&amp;package_id=240780&amp;release_id=529741"> www.mingw.org </a>.  Run the installer, Pick any mirror, Select <strong>Current</strong> and install packages <strong>MinGW BASETOOLS</strong> and <strong>G++ COMPILER</strong>.<br />
- Download and install SCons 0.97 Windows (300KB) from <a href="http://prdownloads.sourceforge.net/scons/scons-0.97.win32.exe"> www.scons.org </a></p>
<h3>3. Environment setup</h3>
<p>- Go to Start Menu &gt;&gt; Control Panel &gt;&gt; System &gt;&gt; Advanced (Tab) &gt;&gt; Envoronmant Variables (button) &gt;&gt; System Variables scroll area double click on the PATH item<br />
- Add the following line to the end: <code style="background:#FCA; padding: 5px; color:#000">;C:\Python25;C:\mingw\bin</code><br />
- Copy <strong>libpython25.a</strong> from <strong>C:\Python25\libs</strong> to <strong>C:\build\lib\windows\python\lib</strong><br />
- If you are running <strong>Windows Vista</strong>: add also <code style="background:#FCA; padding: 5px; color:#000">;C:\MinGW\libexec\gcc\mingw32\MinGW-Version</code> where MinGW-Version is the Version of MinGW you are using.</p>
<h3>4. Compile!</h3>
<p>Before you start, this is how the everything should look like: (Ignore user-config.py for now, that is covered in the <a href="?compileblender">advanced guide</a>)<br />
<img style="float:left" src="content/resources/build2.png" alt="compile blender using gcc" /><br />
- Open a command prompt window by click on Start &gt;&gt; Run &gt;&gt; type in &#8220;cmd&#8221; and hit OK.</p>
<p>- Navigate to where the Blender source code is by typing this into the command prompt <code style="background:#FCA; padding: 5px; color:#000">cd C:\build\blender</code></p>
<p>- Start the building process by:<br />
<code style="background:#FCA; padding: 5px; color:#000">scons BF_BUILDDIR=c:\install -j2</code></p>
<p>- The above command should take about 5-10 minutes to process, and it helps if you have a dual-core processor!</p>
<p>- When it finishes, (Hopefully without error), you can nagivate to <strong>C:\install\win32-mingw\</strong> and find a complete Blender installation ready to be zipped up and distributed!</p>
<h3>Where to go from here?</h3>
<p style="background:#CCC; border:1px dashed; border-color: #666; padding: 10px; color:#000">You might want to rid the blender.exe of extra useless debug data by entering the following command into the command line:<br />
<strong>strip C:\install\win32-mingw\blender.exe</strong><br />
This will reduce the size of the executable by 8mb or so without having any negative impact</p>
<p><strong>scons clean BF_BUILDDIR=C:\install</strong><br />
can be used to clean the build data and getting ready for a new build</p>
<p>Once you have successfully compiled Blender, you can try more customization by following the <a href="?compileblender">Advanced Guide.</a></p>
<p><strong>Acknowledgement</strong>: A big thanks goes to Nathan Letwory(jesterKing), lukep, Jonathan Jacobs and Johnny Matthews for the BlenderDev/SconsRefactoring article at mediawiki.blender.org; and jmk for pointing me to the python25.a solution.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikepan.com/compile-blender-simple/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>a new blender racing game</title>
		<link>http://blog.mikepan.com/a-new-blender-racing-game/</link>
		<comments>http://blog.mikepan.com/a-new-blender-racing-game/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 04:57:06 +0000</pubDate>
		<dc:creator>mike pan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[realtime]]></category>

		<guid isPermaLink="false">http://mikepan.homeip.net/blog/?p=35</guid>
		<description><![CDATA[It&#8217;s still very early, but here is the first video capture of the game I am working on at the moment:

]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s still very early, but here is the first video capture of the game I am working on at the moment:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="510" height="310" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/RHBEJLlHz04&amp;hl=en&amp;fs=1&amp;rel=0&amp;hd=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="510" height="310" src="http://www.youtube.com/v/RHBEJLlHz04&amp;hl=en&amp;fs=1&amp;rel=0&amp;hd=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikepan.com/a-new-blender-racing-game/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Blender Game networking test</title>
		<link>http://blog.mikepan.com/blender-game-networking-test/</link>
		<comments>http://blog.mikepan.com/blender-game-networking-test/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 04:36:06 +0000</pubDate>
		<dc:creator>mike pan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[realtime]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://mikepan.homeip.net/blog/?p=30</guid>
		<description><![CDATA[Now that I am working on a game, using Python cPickle and Socket, i was able to create a  peer to peer, symmetrical network implementation for the multiplayer aspect of the project.   Using some 30 lines of Python, each player would &#8216;trade&#8217; data with its peers.
YouTube  Demo:
httpvhd://www.youtube.com/watch?v=Az8C1IW5E5s
I am using UDP, so it&#8217;s naturally faster ]]></description>
			<content:encoded><![CDATA[<p>Now that I am working on a <a href="http://blenderartists.org/forum/showthread.php?t=161961">game</a>, using Python cPickle and Socket, i was able to create a  peer to peer, symmetrical network implementation for the multiplayer aspect of the project.   Using some 30 lines of Python, each player would &#8216;trade&#8217; data with its peers.</p>
<p>YouTube  Demo:</p>
<p>httpvhd://www.youtube.com/watch?v=Az8C1IW5E5s</p>
<p>I am using UDP, so it&#8217;s naturally faster than TCP/IP, but delivery is not guranteed.  But for realtime games latency is the main concern, so UDP is definitely the way to go.  The video shows me controlling a cube on the desktop computer (monitor to the right), it&#8217;s position data is sent across the internet* to the laptop which displays a similar cube.</p>
<p>Close to the end of the video, I turned off the Wi-Fi on the laptop, killing the network connection.  As expected, the cube stops updating, when I turn it back on, it takes a few second to reconnect, and then the cube starts moving again.</p>
<p>*I route the network traffic through another computer somewhere in town to simulate a more realistic network delay.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikepan.com/blender-game-networking-test/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>latest screenshots</title>
		<link>http://blog.mikepan.com/latest-screenshots/</link>
		<comments>http://blog.mikepan.com/latest-screenshots/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 05:44:10 +0000</pubDate>
		<dc:creator>mike pan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[realtime]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://mikepan.homeip.net/blog/?p=26</guid>
		<description><![CDATA[Two new screenshots&#8230;
]]></description>
			<content:encoded><![CDATA[<p>Two new screenshots&#8230;</p>
<div id="attachment_28" class="wp-caption alignnone" style="width: 310px"><img class="size-thumbnail wp-image-28" title="'oceanviz' blender realtime underwater visualization" src="http://mikepan.homeip.net/blog/wp-content/uploads/Untitled-2-300x280.jpg" alt="'oceanviz' blender realtime underwater visualization" width="300" height="280" /><p class="wp-caption-text">&#39;oceanviz&#39; blender realtime underwater visualization</p></div>
<div id="attachment_27" class="wp-caption alignnone" style="width: 287px"><img class="size-thumbnail wp-image-27" title="'oceanviz' blender realtime underwater visualization" src="http://mikepan.homeip.net/blog/wp-content/uploads/Untitled-1-277x300.jpg" alt="'oceanviz' blender realtime underwater visualization" width="277" height="300" /><p class="wp-caption-text">&#39;oceanviz&#39; blender realtime underwater visualization</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikepan.com/latest-screenshots/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blender, Memory issues and 64bit</title>
		<link>http://blog.mikepan.com/blender-memory-issues-and-64bit/</link>
		<comments>http://blog.mikepan.com/blender-memory-issues-and-64bit/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 18:35:19 +0000</pubDate>
		<dc:creator>mike pan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://mikepan.homeip.net/blog/?p=19</guid>
		<description><![CDATA[RAMs are cheap, and that blender project you&#8217;ve been working on is taking up too much memory.  So you did the obvious: you bought 2GB of DDR2 memory and put it in the computer, fire up Blender and expect everyting to work as usual, right?
Maybe, maybe not.
Well, if you are still stuck on 32bit for ]]></description>
			<content:encoded><![CDATA[<p>RAMs are cheap, and that blender project you&#8217;ve been working on is taking up too much memory.  So you did the obvious: you bought 2GB of DDR2 memory and put it in the computer, fire up Blender and expect everyting to work as usual, right?</p>
<p>Maybe, maybe not.</p>
<p>Well, if you are still stuck on 32bit for some reason, chances are, you might run into a few memory related problems.  If you are running a 64bit Operating System with 64bit Blender,then you can safely ignore the rest of this post.  In a pure 64bit environment (meaning 64bit CPU, 64bit OS, 64bit app), the memory addressing space is virtually unlimited.   So the more memory you have, the better, 64bit can use it all.</p>
<p><strong>Theory</strong></p>
<p>Addressing Space can be seen as the maximum amount of memory and virtual memory the operating system can utilize. It is independent from the actual amount of RAM a computer has. For 32bit Operating System, the total Addressing space is ALWAYS 4GB, or (2^32 bytes). For 64bit, this number is a LOT bigger: 2^64 bytes is about 16000000 Terabyte.</p>
<p>Think of 32bit as a city where the phone number is 5 digit long.  In such a city, there is approximately <a href="http://www.google.com/search?q=9*10*10*10*10" target="_blank">90,000</a> unique phone numbers, because of this, the number of phones(analogous to physical memory) can not exceed 90,000, it doesn&#8217;t make sense to have more phones than phone numbers, since there will be no way of reaching these phones.  Now, in a 64bit city, their phone number is 10 digit long, that gives them about <a href="http://www.google.com/search?q=9*10*10*10*10*10*10*10*10*10">9 billion</a> unique phone numbers.</p>
<p><strong>32bit Limitations</strong></p>
<p>32bit Windows is designed so that EACH application can only utilize up to half of the 4GB addressing space, or 2GB. (the other half is reserved for the system). Again, this is a software limit inherent to the architecture of the operating system, and has nothing to do with how much RAM is actually installed. This does not cause a problem for day-to-day applications because they usually stay well below this limit. But when working with Blender, especially baking fluids, or rendering high resolution images with composite node, a single application can easily reach 2GB of memory usage. From my testing, Blender crashes at the 1.8GB mark. Remember this is a software limitation due to the design of Windows, you can install 4GB of physical RAM on your computer, and set-aside a 4GB swap file, Blender will still crash at the 1.8GB mark.</p>
<p><strong>Fix</strong></p>
<p>Thankfully <a href="http://msdn.microsoft.com/en-us/library/ms791558(loband).aspx">there is a fix for the problem:</a></p>
<p>The fix forces the system to give up 1GB of additional addressing space to the application.  This way, each application can get up to 3GB, while the OS reserves 1GB for itself.</p>
<p><span style="text-decoration: line-through;">Once you have completed teh above, find a version of Blender that is compiled with the LAA (Large Address Aware) flag. The LAA flag tells the Windows operating system that the application is aware and capable of handling the extra large address space.</span> &#8216;Official&#8217; Blender releases are now compiled with LAA.</p>
<p>So that&#8217;s it. With the above 2 steps, your 32bit Blender should be able to utilize slightly more memory than before.</p>
<p><strong>FAQ</strong><br />
Q: I only have 2GB of physical RAM (or less), should I worry about LAA and /3GB or go 64bit?</p>
<p>A: The short answer is no. It is unlikely that you will truly hit the 1.8GB barrier, since the OS takes up some memory as well, by the time Blender is using 1.8GB of RAM, your computer is probably going very slow, due to the performance hit of using the swap file.  What you should be doing is either optimize the scene or get more physical memory.</p>
<p>Q: Does blender do [rendering, baking, sculpting] faster with more memory?</p>
<p>A: It depends, more memory helps only if you are running out of it.  If Blender is only using 200mb, adding another 4GB of memory will not speed up anything.</p>
<p>Q: I hate you for this lengthy and yet still confusing post!</p>
<p>A: I know.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikepan.com/blender-memory-issues-and-64bit/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.229 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2009-11-23 14:45:53 -->
