<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>The Happy Nihilist</title>
	<atom:link href="http://euphopiab.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://euphopiab.wordpress.com</link>
	<description>Looking for squirrels.</description>
	<lastBuildDate>Fri, 13 Feb 2009 05:35:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='euphopiab.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>The Happy Nihilist</title>
		<link>http://euphopiab.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://euphopiab.wordpress.com/osd.xml" title="The Happy Nihilist" />
	<atom:link rel='hub' href='http://euphopiab.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Finally, a good vector class</title>
		<link>http://euphopiab.wordpress.com/2009/02/13/finally-a-good-vector-class/</link>
		<comments>http://euphopiab.wordpress.com/2009/02/13/finally-a-good-vector-class/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 05:35:04 +0000</pubDate>
		<dc:creator>euphopiab</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://euphopiab.wordpress.com/?p=61</guid>
		<description><![CDATA[Over the last two days I had an adventure into efficient code again. My first project which took a good three hours is a new vector class template of variable data type and size. The code is designed using metafunctions to form efficient inline code. Benchmarks have shown that my code is not only fast, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=61&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Over the last two days I had an adventure into efficient code again. My first project which took a good three hours is a new vector class template of variable data type and size. The code is designed using metafunctions to form efficient inline code. Benchmarks have shown that my code is not only fast, but it is very fast (with proper compiler settings). For example:</p>
<p>VectorFast    28526ps<br />
Ideal         29361ps</p>
<p>This is the time it takes the while loop of each to iterate once (interated for 1000 clock cycles each, then time figured out per cycle). The loops:</p>
<p>start = clock();<br />
while ( clock() &#8211; start &lt; clock_count ) {<br />
accum1 += dot( q1, q2 );<br />
accum1 -= dot( q1, q2 );<br />
count0 ++;<br />
}<br />
start = clock();<br />
while ( clock() &#8211; start &lt; clock_count ) {<br />
accum2 += x1*x2 + y1*y2 + z1*z2;<br />
accum2 -= x1*x2 + y1*y2 + z1*z2;<br />
count1 ++;<br />
}</p>
<p>So, in other words, I win. My benchmark code is not ideal, but it definitely shows good performance. Similar results arise with vector normalization, magnitude, and other operations. The &#8220;secret&#8221;, if you would call it that, is in the code:</p>
<p>template &lt; typename TYPE &gt;<br />
struct UnrollDot {<br />
template &lt; unsigned int INDEX &gt;<br />
static __forceinline TYPE<br />
evaluate( const TYPE* _Left, const TYPE* _Right ) {<br />
return _Left[INDEX]*_Right[INDEX] + UnrollDot&lt;TYPE&gt;::evaluate&lt;INDEX-1&gt;( _Left, _Right );<br />
}<br />
template &lt;&gt;<br />
static __forceinline TYPE<br />
evaluate&lt;0&gt;( const TYPE* _Left, const TYPE* _Right ) {<br />
return _Left[0]*_Right[0];<br />
}<br />
};</p>
<p>template &lt; typename TYPE, unsigned int LEN &gt;<br />
__forceinline TYPE<br />
dot ( const VectorFast&lt; TYPE, LEN &gt;&amp; _Left, const VectorFast&lt; TYPE, LEN &gt;&amp; _Right )<br />
{<br />
return UnrollDot&lt;TYPE&gt;::evaluate&lt;LEN-1&gt;( _Left.ptr(), _Right.ptr() );<br />
}</p>
<p>which forces an unroll, and __forceinline forces, well, inline. I have produced a few pages of similar Unroll structures for all vector operations.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/euphopiab.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/euphopiab.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/euphopiab.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/euphopiab.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/euphopiab.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/euphopiab.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/euphopiab.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/euphopiab.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/euphopiab.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/euphopiab.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/euphopiab.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/euphopiab.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/euphopiab.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/euphopiab.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=61&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://euphopiab.wordpress.com/2009/02/13/finally-a-good-vector-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d6a85350fbd10d3ec6b5e8bda159dfa?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">euphopiab</media:title>
		</media:content>
	</item>
		<item>
		<title>Rays be Damned</title>
		<link>http://euphopiab.wordpress.com/2008/12/27/rays-be-damned/</link>
		<comments>http://euphopiab.wordpress.com/2008/12/27/rays-be-damned/#comments</comments>
		<pubDate>Sat, 27 Dec 2008 23:32:36 +0000</pubDate>
		<dc:creator>euphopiab</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rambles]]></category>

		<guid isPermaLink="false">http://euphopiab.wordpress.com/?p=55</guid>
		<description><![CDATA[My big question has been, &#8220;How much more efficient could using #define statements be than safe, by-the-book code&#8221;. My preliminary code tested (Scalar is defined as double): struct VectorDefines { Scalar x, y, z; VectorDefines( ) { } VectorDefines( const Scalar&#38; _X, const Scalar&#38; _Y, const Scalar&#38; _Z ) : x( _X ), y( _Y [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=55&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>My big question has been, &#8220;How much more efficient could using #define statements be than safe, by-the-book code&#8221;. My preliminary code tested (Scalar is defined as double):</p>
<p>struct VectorDefines {<br />
Scalar x, y, z;<br />
VectorDefines( ) { }<br />
VectorDefines( const Scalar&amp; _X, const Scalar&amp; _Y, const Scalar&amp; _Z ) : x( _X ), y( _Y ), z( _Z ) { }<br />
};</p>
<p>By calling one of each of the following operations once in a loop:</p>
<p>#define ADD(s,l,r)  s.x = l.x + r.x;  s.y = l.y + r.y;  s.z = l.z + r.z<br />
#define DOT(l,r) (l.x*r.x + l.y*r.y + l.z*r.z)<br />
#define CROSS(s,l,r) s.x = l.y*r.z &#8211; l.z*r.y;  s.y = l.z*r.x &#8211; l.x*r.z;   s.z = l.x*r.y &#8211; l.y*r.x;</p>
<p>Against</p>
<p>class VectorIdeal {<br />
Scalar mX, mY, mZ;<br />
public:<br />
inline Scalar&amp; x() { return mX; }<br />
inline Scalar&amp; y() { return mY; }<br />
inline Scalar&amp; z() { return mZ; }<br />
inline const Scalar&amp; cx() const { return mX; }<br />
inline const Scalar&amp; cy() const { return mY; }<br />
inline const Scalar&amp; cz() const { return mZ; }<br />
VectorIdeal( ) { }<br />
VectorIdeal( const Scalar&amp; _X, const Scalar&amp; _Y, const Scalar&amp; _Z ) : mX( _X ), mY( _Y ), mZ( _Z ) { }<br />
};<br />
VectorIdeal operator + ( const VectorIdeal&amp; _Left, const VectorIdeal&amp; _Right ) {<br />
return VectorIdeal( _Left.cx() + _Right.cx(), _Left.cy() + _Right.cy(), _Left.cz() + _Right.cz() );<br />
}<br />
Scalar Dot( const VectorIdeal&amp; _Left, const VectorIdeal&amp; _Right ) {<br />
return _Left.cx()*_Right.cx() + _Left.cy()*_Right.cy() + _Left.cz()*_Right.cz();<br />
}<br />
VectorIdeal Cross( const VectorIdeal&amp; _Left, const VectorIdeal&amp; _Right ) {<br />
return VectorIdeal(  _Left.cy()*_Right.cz() &#8211; _Left.cz()*_Right.cy(),<br />
_Left.cz()*_Right.cx() &#8211; _Left.cx()*_Right.cz(),<br />
_Left.cx()*_Right.cy() &#8211; _Left.cy()*_Right.cx() );<br />
}</p>
<p>Which follows proper code formatting (at least, my way of proper formatting). At first, results were questionable. That is, the define method was taking more time than the proper way (about 1000/800 clock cycles ratio). This was because I was instantiating the vectors in the test code and that expansion was being copied through the defines (which I believe says something about the risk of horrible inefficiency with defines). I fixed that, and the next ratio blew my mind:</p>
<p>Defines : 1031<br />
Ideal : 10630</p>
<p>That is, the defines were supposedly taking ~1/10 the processor time. I was about to go through my next ray-tracer iteration, CIMPR III, and re-hack the code when I remembered that I had run the speed test on Debug compiler settings. D&#8217;oh. Release settings gives:</p>
<p>Defines : 66<br />
Ideal : 69</p>
<p>Or increasing the iterations of the test loop:</p>
<p>Defines : 824<br />
Ideal : 886</p>
<p>So, all is good with the world and I can write safe code.</p>
<p>My second little project was just playing with particles and gradient fields:</p>
<p>http://img176.imageshack.us/img176/5720/47105234py4.jpg</p>
<p>http://img201.imageshack.us/img201/4462/79783795ut6.jpg</p>
<p>Basically the particles start between (-1,-1) and (1,1) and their velocities are modified by a function over R2, in these cases both combinations of trig functions.</p>
<p>The final little project is a physics one simulating a jelly ball. Basically a ring of springs with volume calculation and normal forcing. I even got bored and put in some crappy accumulation anti-aliasing.</p>
<p>Other than that my time is spent working on a ray-tracer, this time with spacial sorting for speed&#8217;s sake. I am just using Octrees for now, but hopefully will man up and figure the kd tree out some day.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/euphopiab.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/euphopiab.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/euphopiab.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/euphopiab.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/euphopiab.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/euphopiab.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/euphopiab.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/euphopiab.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/euphopiab.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/euphopiab.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/euphopiab.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/euphopiab.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/euphopiab.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/euphopiab.wordpress.com/55/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=55&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://euphopiab.wordpress.com/2008/12/27/rays-be-damned/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d6a85350fbd10d3ec6b5e8bda159dfa?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">euphopiab</media:title>
		</media:content>
	</item>
		<item>
		<title>Starting From Scratch</title>
		<link>http://euphopiab.wordpress.com/2008/09/20/starting-from-scratch/</link>
		<comments>http://euphopiab.wordpress.com/2008/09/20/starting-from-scratch/#comments</comments>
		<pubDate>Sat, 20 Sep 2008 07:25:20 +0000</pubDate>
		<dc:creator>euphopiab</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rambles]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[computer graphics]]></category>
		<category><![CDATA[directx]]></category>

		<guid isPermaLink="false">http://euphopiab.wordpress.com/?p=45</guid>
		<description><![CDATA[I have produced a model format which depends upon deflating the various coordinate data and packaging that into a nice container for easy management (including a string name for the planned resource manager/resource packager). The specifications are a WIP, but are as follows (note HTML massacred the nice alignment. Also, the number in brackets is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=45&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have produced a model format which depends upon deflating the various coordinate data and packaging that into a nice container for easy management (including a string name for the planned resource manager/resource packager). The specifications are a WIP, but are as follows (note HTML massacred the nice alignment. Also, the number in brackets is the size in bits):</p>
<p>===================================================================================<br />
STATIC MODEL V0<br />
===================================================================================<br />
[32] 				Identification<br />
This is the identification of the file, &#8220;tm m&#8221;.<br />
[8]				Version<br />
The version of the file format. The value zero indicates this model format.<br />
[8]				Length of Name<br />
The number of characters in the following model name.<br />
[8*Delta]			Name<br />
A character-string of length Delta where Delta is the previous field. This<br />
is used when the file is loaded to reference it upon loading.</p>
<p>[4] 				LOD Count<br />
The number of levels of detail to be specified.<br />
[32*3] 				Minimum Bounding Box<br />
The smallest vertex position coordinates in IEEE floating-point format,<br />
three 32-bit values: x, y, and z respectively.<br />
[32*3] 				Maximum Bounding Box<br />
The biggest vertex position coordinates in IEEE floating-point format,<br />
three 32-bit values: x, y, and z respectively.<br />
{Repeat for Each LOD}<br />
[5]				LOD for Positions<br />
[5]				LOD for Normals<br />
[5]				LOD for UVs<br />
[32] 				Number of Verticies<br />
[32] 				Number of Polygons<br />
{Repeat for Each Vertex}<br />
[LODp*3] 			Vertex Position<br />
The fields of this vector are signed.<br />
[LODn*3] 			Vertex Normal<br />
The fields of this vector are signed.<br />
[LODuv*2] 			Vertex UV<br />
{End Repeat}</p>
<p>{Repeat for Each Polygon}<br />
[Omega*3]			Polygon Vertex Indicies<br />
{End Repeat}<br />
{End Repeat}<br />
[?]				Padding<br />
Aligns to the next byte.<br />
[128]				Checksum<br />
Just an XORing of all bytes up to and including the padding. Gives a high<br />
probability the data is valid if passes.<br />
[8]				EOF Confirmation<br />
The value &#8216;E&#8217;, indicating a safe end of file was reached.</p>
<p>===================================================================================<br />
FAST STATIC MODEL V0<br />
===================================================================================<br />
[32] 				Identification<br />
This is the identification of the file, &#8220;tm m&#8221;.<br />
[8]				Version<br />
The version of the file format. The value one indicates this model format.<br />
[8]				Length of Name<br />
The number of characters in the following model name.<br />
[8*Delta]			Name<br />
A character-string of length Delta where Delta is the previous field. This<br />
is used when the file is loaded to reference it upon loading.</p>
<p>[8] 				LOD Count<br />
The number of levels of detail to be specified.</p>
<p>{Repeat for Each LOD}<br />
[32] 				Number of Verticies<br />
[32] 				Number of Polygons<br />
{Repeat for Each Vertex}<br />
[32*3] 			Vertex Position<br />
Three IEEE 32-bit floating-point values.<br />
[32*3] 			Vertex Normal<br />
Three IEEE 32-bit floating-point values.<br />
[32*2] 			Vertex UV<br />
Two IEEE 32-bit floating-point values.<br />
{End Repeat}</p>
<p>{Repeat for Each Polygon}<br />
[32*3]			Polygon Vertex Indicies<br />
{End Repeat}<br />
{End Repeat}</p>
<p>===================================================================================<br />
2D MATERIAL v0<br />
===================================================================================<br />
[32] 				Identification<br />
This is the identification of the file, &#8220;tm t&#8221;.<br />
[8]				Version<br />
The version of the file format. The value zero indicates this format.<br />
[8]				Length of Name<br />
The number of characters in the following model name.<br />
[8*Delta]			Name<br />
A character-string of length Delta where Delta is the previous field. This<br />
is used when the file is loaded to reference it upon loading.</p>
<p>[4]				Top Diffuse Texture Dimension (Two&#8217;s Exponent)<br />
The base dimension of the texture to be stored. Id est, if the texture<br />
is 512px by 512px, the value 9 is stored (2^9 = 512). The value zero is<br />
invalid, and anything greater than 11 (2^11 = 2048) is most likely invalid.<br />
[1]				Stored MipMaps<br />
If this is 1, mipmaps will be stored, otherwise only the base full texture<br />
is used.<br />
[4]				Compression of Diffuse Map and MipMaps<br />
0 &#8211; No compression<br />
1 &#8211; JFIF (JPEG) lossy compression<br />
2 &#8211; Lossless compression<br />
3 &#8211; Bit depression<br />
4-15 &#8211; Reserved<br />
[4]				Top Emission Map Texture Dimension<br />
Same idea as the diffuse map dimension, but for the emission map (emission<br />
maps are generally lower-quality). The value zero specifies that no emission<br />
map is used.<br />
[1]				Stored MipMaps for Emission<br />
If this is 1, mipmaps will be stored, otherwise only the base full texture<br />
is used. Generally this is not used, but can be for high-quality textures.<br />
If the emission map dimension is zero this is ignored.<br />
[4]				Compression of Emission Maps<br />
Same values as &#8220;Compression of Diffuse Map and MipMaps&#8221; but for the emission<br />
map. If the emission map dimension is zero this is ignored.<br />
[4]				Top Normal Map Texture Dimension<br />
Same idea as the diffuse map dimension, but for the normal map. If zero no<br />
normal mapping is used.<br />
[1]				Stored MipMaps for Normal Map<br />
If this is 1, mipmaps will be stored, otherwise only the base full texture<br />
is used. If the normal map dimension is zero this is ignored.<br />
[4]				Compression of Normal Maps<br />
Same values as &#8220;Compression of Diffuse Map and MipMaps&#8221; but for the normal<br />
map. If the normal map dimension is zero this is ignored.</p>
<p>{Repeat for Each LOD of Diffuse}<br />
[?]				Texture Data<br />
This data depends on the compression field.<br />
{End Repeat}<br />
{Repeat for Each LOD of Emission}<br />
[?]				Texture Data<br />
This data depends on the compression field.<br />
{End Repeat}<br />
{Repeat for Each LOD of Normal}<br />
[?]				Texture Data<br />
This data depends on the compression field.<br />
{End Repeat}<br />
[?]				Padding<br />
Aligns to the next byte.<br />
[128]				Checksum<br />
Just an XORing of all bytes up to and including the padding. Gives a high<br />
probability the data is valid if passes.<br />
[8]				EOF Confirmation<br />
The value &#8216;E&#8217;, indicating a safe end of file was reached.</p>
<p>{END OF FILE}</p>
<p>The philosophy behind the static model is that it will compress well while giving predictable results (LOD-wise). The fast static model is meant to be easily loaded into memory (ideally models are shipped/uploaded with the former and converted to the latter). The texture file is going to employ my own attempt at fourier series (JPEG-like) compression and the loss-less (non-patented) method used by the PNG format. The uncompressed format is for debugging primarily, and bit depression is simply reducing the number of bits per channel. The rest are reserved in case I want to bring along alpha maps or something later. I have not included alpha maps as is because they usually cause a dirty render with depth-sorting, which I don&#8217;t want to deal with at the moment.</p>
<p>Eventually multiple model/material files will be stored in a resource file and compressed further.</p>
<p>I may add my mesh optimization idea into a new model format which would be tasked with loading quickly and having the optimizations pre-calculated.</p>
<p>The resource file, later, will specify exactly what data is already calculated and still must be. For example, to personify the resource loader: &#8220;this model has its LOD and optimizations done, load it quickly. This one is compressed and needs to have its optimizations and LOD calculated and stored for further runs. This one is compressed, but so rarely used just leave it compressed, but on load calculate its LODs every time&#8221;.</p>
<p>Bah, in less than 9 hours I move to UCLA.</p>
<p>OH MY GOD FILTER KEYS FREAKED ME OUT WITH THE BEEP.</p>
<p>Until later, this shall all have to wait.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/euphopiab.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/euphopiab.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/euphopiab.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/euphopiab.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/euphopiab.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/euphopiab.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/euphopiab.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/euphopiab.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/euphopiab.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/euphopiab.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/euphopiab.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/euphopiab.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/euphopiab.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/euphopiab.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=45&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://euphopiab.wordpress.com/2008/09/20/starting-from-scratch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d6a85350fbd10d3ec6b5e8bda159dfa?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">euphopiab</media:title>
		</media:content>
	</item>
		<item>
		<title>2D FEA &#8220;Goo&#8221; Comments</title>
		<link>http://euphopiab.wordpress.com/2008/07/31/2d-fea-goo-comments/</link>
		<comments>http://euphopiab.wordpress.com/2008/07/31/2d-fea-goo-comments/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 04:28:12 +0000</pubDate>
		<dc:creator>euphopiab</dc:creator>
				<category><![CDATA[FEA]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[dynamics]]></category>
		<category><![CDATA[element analysis]]></category>
		<category><![CDATA[fluids]]></category>
		<category><![CDATA[spacial sorting]]></category>

		<guid isPermaLink="false">http://euphopiab.wordpress.com/?p=31</guid>
		<description><![CDATA[I have ceased work on the 2D finite element system using the grid-based optimized searching. My last work has been with generating springs between close elements so they &#8220;stick&#8221; to one another (and can also break apart). This required a pretty nifty spring management system (they are created and deleted on-the-fly cleaning themselves up). I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=31&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have ceased work on the 2D finite element system using the grid-based optimized searching. My last work has been with generating springs between close elements so they &#8220;stick&#8221; to one another (and can also break apart). This required a pretty nifty spring management system (they are created and deleted on-the-fly cleaning themselves up). I again achieve real-time performance (although it drops below 60 fps if more points are added). The following images are from a simulation (thanks to ImageShack.us for the hosting) in order. Blue dots are elements, green lines springs.</p>
<p><a href="http://img337.imageshack.us/img337/228/30272943mi9.png" target="_blank"><img src="http://img337.imageshack.us/img337/228/30272943mi9.th.png" alt="" /></a></p>
<p>At first a grid is generated which begins to fall. Because the grid is perfectly aligned, the points will not move along the x-axis unless nudged, so I sent a free element flying into the base of the &#8220;mass&#8221;.</p>
<p><a href="http://img517.imageshack.us/img517/7977/96563385jb0.png" target="_blank"><img src="http://img517.imageshack.us/img517/7977/96563385jb0.th.png" alt="" /></a></p>
<p>It begins to settle, though the original top corners can still be made out as it deforms to fill the simulation area.</p>
<p><a href="http://img525.imageshack.us/img525/9537/69611184ey8.png" target="_blank"><img src="http://img525.imageshack.us/img525/9537/69611184ey8.th.png" alt="" /></a></p>
<p>All signs of an original shape are gone, and the simulation has reached a low energy state where there is little to no movement.</p>
<p><a href="http://img517.imageshack.us/img517/6603/50341853cd7.png" target="_blank"><img src="http://img517.imageshack.us/img517/6603/50341853cd7.th.png" alt="" /></a></p>
<p>To make sure to demonstrate the re-attachment ability, I add a some elements to the center of the &#8220;mass&#8221; with an initial positive y velocity, sending pieces everywhere.</p>
<p><a href="http://img525.imageshack.us/img525/4908/24591175bd6.png" target="_blank"><img src="http://img525.imageshack.us/img525/4908/24591175bd6.th.png" border="0" alt="" /></a></p>
<p>Finally, the simulation reaches a low energy state again after being mixed up.</p>
<p>For any practical application, this would have to run with orders of magnitude more elements and in 3D. I began work on a 3D version, however it ran far too slow using the FPU to do anything reasonable in real-time and SSE optimizations were causing alignment errors. Given SSE and multi-threading, a theoretical 16x performance may be achieved, however I am ending this as this was only done to prove the grid-based method, which it has done with flying colors. The spacial sorting system remains an efficient way for distance-from-point lookups in n-dimensions with the grid size limitation. Other methods such as KD-tree and OCT-tree are most likely able to achieve greater performance and do so without the grid size limitation.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/euphopiab.wordpress.com/31/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/euphopiab.wordpress.com/31/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/euphopiab.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/euphopiab.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/euphopiab.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/euphopiab.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/euphopiab.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/euphopiab.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/euphopiab.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/euphopiab.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/euphopiab.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/euphopiab.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/euphopiab.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/euphopiab.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/euphopiab.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/euphopiab.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=31&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://euphopiab.wordpress.com/2008/07/31/2d-fea-goo-comments/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d6a85350fbd10d3ec6b5e8bda159dfa?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">euphopiab</media:title>
		</media:content>

		<media:content url="http://img337.imageshack.us/img337/228/30272943mi9.th.png" medium="image" />

		<media:content url="http://img517.imageshack.us/img517/7977/96563385jb0.th.png" medium="image" />

		<media:content url="http://img525.imageshack.us/img525/9537/69611184ey8.th.png" medium="image" />

		<media:content url="http://img517.imageshack.us/img517/6603/50341853cd7.th.png" medium="image" />

		<media:content url="http://img525.imageshack.us/img525/4908/24591175bd6.th.png" medium="image" />
	</item>
		<item>
		<title>Particle Collision Optimization</title>
		<link>http://euphopiab.wordpress.com/2008/07/29/particle-collision-optimization/</link>
		<comments>http://euphopiab.wordpress.com/2008/07/29/particle-collision-optimization/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 10:02:52 +0000</pubDate>
		<dc:creator>euphopiab</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rambles]]></category>
		<category><![CDATA[c plus plus]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[rts]]></category>
		<category><![CDATA[searching]]></category>
		<category><![CDATA[sorting]]></category>
		<category><![CDATA[strep throat]]></category>

		<guid isPermaLink="false">http://euphopiab.wordpress.com/?p=21</guid>
		<description><![CDATA[This is just something that I had in the back of my head. I assumed it would speed things up and, well, it definitely did. The problem is a bunch of particles which are supposed to repel only at a close distance, usually for something like fluid approximation, maybe just basic physics, I don&#8217;t know. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=21&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is just something that I had in the back of my head. I assumed it would speed things up and, well, it definitely did.</p>
<p>The problem is a bunch of particles which are supposed to repel only at a close distance, usually for something like fluid approximation, maybe just basic physics, I don&#8217;t know. I just wanted to do it. Anyway, it was all I did today (given my wonderful strep throat), and the results are promising:</p>
<p style="text-align:center;"><a href="http://img59.imageshack.us/img59/5743/countvsspeedxw4.png"><img class="aligncenter" src="http://img59.imageshack.us/img59/5743/countvsspeedxw4.png" alt="" width="225" height="170" /></a></p>
<p>The red line is is the number of frames per second (peaks at 175, after first five seconds only drops down to 109) and the blue line is the number of particles in the system. The method used is done by solving the new velocity of all particles (given any close interactions), repelling them, solving the new velocity at that position then going back to the original position and using an average of the two new accelerations/velocities, so this is with four system passes (now that I think about it, I could probably combine two&#8230;); however, this is not the purpose of it all.</p>
<p>If every point were checked with every other point, the number of distance checks would be N*N, or at 1,500 particles, 2.25 million. My system seems to only have to perform at most 8 per particle (though it could be anywhere from 0 to infinity). The system is divided into a grid and only adjacent grid blocks are tested for distance.</p>
<p>And finally, it working:</p>
<p style="text-align:center;"><a href="http://img93.imageshack.us/img93/3405/84924756qk5.png"><img class="aligncenter" src="http://img93.imageshack.us/img93/3405/84924756qk5.png" alt="" width="200" height="200" /></a></p>
<p style="text-align:center;">
<p>The blue dots are particles, the red blocks grid sections. The grid blocks get more red the more particles that are in them (I probably should have disabled grid rendering before benchmarking this&#8230; d&#8217;oh). Eventually the screen would fill and the ones that leave would be deleted (quite efficiently, I might add). As you can see, each particle testing only adjacent grid blocks probably averages&#8230; what, 6? Awesomeness, if you ask me. The grid size is also a parameter, including the grid location. The particle processing functions are callbacks. IE I set the first function, iterate the system, set the second function to move the particles, iterate, etc.</p>
<p>My only sadness comes from the fact that if the repel distance (AKA interaction distance) is greater that the size of one grid block, nothing outside the adjacent 9 cells will be considered. This might be useful for a RTS game engine. It is fast and makes it easy to find objects near one another (though it is limited).</p>
<p>This was done using a quad-core Q6600 CPU at 3.1 GHz, though because it is only single-threaded for now it utilizes 25% of that and the memory use peaked at no greater than 11mb. Double precision was used.</p>
<p>Oh man sneezing with strep throat sucks.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/euphopiab.wordpress.com/21/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/euphopiab.wordpress.com/21/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/euphopiab.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/euphopiab.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/euphopiab.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/euphopiab.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/euphopiab.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/euphopiab.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/euphopiab.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/euphopiab.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/euphopiab.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/euphopiab.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/euphopiab.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/euphopiab.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/euphopiab.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/euphopiab.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=21&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://euphopiab.wordpress.com/2008/07/29/particle-collision-optimization/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d6a85350fbd10d3ec6b5e8bda159dfa?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">euphopiab</media:title>
		</media:content>

		<media:content url="http://img59.imageshack.us/img59/5743/countvsspeedxw4.png" medium="image" />

		<media:content url="http://img93.imageshack.us/img93/3405/84924756qk5.png" medium="image" />
	</item>
		<item>
		<title>Mesh Optimization Pt. 1</title>
		<link>http://euphopiab.wordpress.com/2008/07/25/mesh-optimization-pt-1/</link>
		<comments>http://euphopiab.wordpress.com/2008/07/25/mesh-optimization-pt-1/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 06:29:37 +0000</pubDate>
		<dc:creator>euphopiab</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rambles]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[mesh]]></category>
		<category><![CDATA[mesh optimization]]></category>
		<category><![CDATA[opengl]]></category>

		<guid isPermaLink="false">http://euphopiab.wordpress.com/?p=15</guid>
		<description><![CDATA[I am going to test out two methods for optimizing complex mesh rendering. Primarily, I am going to work on a method I have used in the past involving storing multiple polygon lists given the angle the model is viewed from. Essentially the model is stored as size separate versions: top, bottom, left, right, front, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=15&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am going to test out two methods for optimizing complex mesh rendering.</p>
<p>Primarily, I am going to work on a method I have used in the past involving storing multiple polygon lists given the angle the model is viewed from. Essentially the model is stored as size separate versions: top, bottom, left, right, front, rear. If the camera is behind the object, the rear list is called et cetera. This is a crude methods but it is simple and from experience works somewhat well (75% of mesh rendered at a time using 4.5x the memory footprint). The effect is almost linear optimization (dot products are fixed CPU cost).</p>
<p>The second method has two branches. IE, optimization via polygon subtraction and addition with groups based on their dot product with stochastic vectors which are pre-processed and depending on how effective they are (IE how many polygons belong to them) possibly eliminated. Polygons belonging to no group will be added to a list which is rendered every time.</p>
<p>These methods assume the camera at no point enters the bounding volume, in this case AABB, of the object. If the camera does enter that close, a list containing all polygons will be called.</p>
<p>There is also possibility for SSE optimization.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/euphopiab.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/euphopiab.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/euphopiab.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/euphopiab.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/euphopiab.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/euphopiab.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/euphopiab.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/euphopiab.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/euphopiab.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/euphopiab.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/euphopiab.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/euphopiab.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/euphopiab.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/euphopiab.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/euphopiab.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/euphopiab.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=15&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://euphopiab.wordpress.com/2008/07/25/mesh-optimization-pt-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d6a85350fbd10d3ec6b5e8bda159dfa?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">euphopiab</media:title>
		</media:content>
	</item>
		<item>
		<title>Pleasure</title>
		<link>http://euphopiab.wordpress.com/2008/06/16/pleasure/</link>
		<comments>http://euphopiab.wordpress.com/2008/06/16/pleasure/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 20:07:09 +0000</pubDate>
		<dc:creator>euphopiab</dc:creator>
				<category><![CDATA[Rambles]]></category>
		<category><![CDATA[desires]]></category>
		<category><![CDATA[eastern philosophy]]></category>
		<category><![CDATA[nihilism]]></category>
		<category><![CDATA[pain]]></category>
		<category><![CDATA[Philosophy]]></category>
		<category><![CDATA[pleasure]]></category>
		<category><![CDATA[urges]]></category>
		<category><![CDATA[wants]]></category>

		<guid isPermaLink="false">http://euphopiab.wordpress.com/?p=10</guid>
		<description><![CDATA[Perhaps there exists a bright-line which dictates that pleasures inevitably result in more pain.  Perhaps (worldly) pleasures are simply best avoided. Then, however, what becomes of life? Does not the sandwich provide pleasure? It is therefore reasonable to conclude that not all pleasure is to be avoided. How does one differentiate? Can postulation really provide [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=10&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Perhaps there exists a bright-line which dictates that pleasures inevitably result in more pain.  Perhaps (worldly) pleasures are simply best avoided.</p>
<p>Then, however, what becomes of life? Does not the sandwich provide pleasure? It is therefore reasonable to conclude that not all pleasure is to be avoided.</p>
<p>How does one differentiate? Can postulation really provide a means for determining if something will provide more pleasure than pain? Is one not almost constantly a poor observer to make that call?</p>
<p>Biology must have this down on some level. Naturally humans seek pleasure over pain. Humans wish to reproduce and generally that which facilitates this desire is pleasurable.</p>
<p>So, then, does one simply follow biology? Urges? Wants? What if one happens to have enough information to know that the most likely result will be more pain than pleasure? Should one follow urges which are rationalized to be short-lived in pleasure yet long-lived in pain?</p>
<p>Questions into a void, I cast.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/euphopiab.wordpress.com/10/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/euphopiab.wordpress.com/10/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/euphopiab.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/euphopiab.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/euphopiab.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/euphopiab.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/euphopiab.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/euphopiab.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/euphopiab.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/euphopiab.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/euphopiab.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/euphopiab.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/euphopiab.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/euphopiab.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/euphopiab.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/euphopiab.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=10&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://euphopiab.wordpress.com/2008/06/16/pleasure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d6a85350fbd10d3ec6b5e8bda159dfa?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">euphopiab</media:title>
		</media:content>
	</item>
		<item>
		<title>You Say Hate, I Say No</title>
		<link>http://euphopiab.wordpress.com/2008/06/16/you-say-hate-i-say-no/</link>
		<comments>http://euphopiab.wordpress.com/2008/06/16/you-say-hate-i-say-no/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 00:50:54 +0000</pubDate>
		<dc:creator>euphopiab</dc:creator>
				<category><![CDATA[Philosophy]]></category>
		<category><![CDATA[emotion]]></category>
		<category><![CDATA[happiness]]></category>
		<category><![CDATA[hate]]></category>
		<category><![CDATA[materialism]]></category>
		<category><![CDATA[nihilism]]></category>

		<guid isPermaLink="false">http://euphopiab.wordpress.com/?p=6</guid>
		<description><![CDATA[The concept of hatred is absurd to the materialist. The nature of all thing is the state in which they were to always eventually exist. The postulation of alternative outcomes and realities beyond purely theoretical and analytical context is absurd for alternate outcomes and realities could never have come to be in this universe as [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=6&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom:0;">The concept of hatred is absurd to the materialist.  The nature of all thing is the state in which they were to always eventually exist.  The postulation of alternative outcomes and realities beyond purely theoretical and analytical context is absurd for alternate outcomes and realities could never have come to be in this universe as they are now.  The soul-believer may argue alternates with the soul as a hinge, but the materialist may not.  Hatred is grounded in the belief that something is bad, wrong or evil.  These notions may only originate in the comparisons of that which is with that which may have been; however, how things are is all that is and could be.  To the materialist, therefore, notions of hatred are absurd as would be cursing the sun for rising.  This is easily extended to encompass the entirety of discontent with how things may be.  Such things were always to be this way and it is absurd to postulate existence being any other way.</p>
<p style="margin-bottom:0;">To all those who would say that nihilism is evil or hateful I say that their words stand as a testament to their own closed-mindedness and obscured perspective of thought. Perhaps, eventually, people will stop using the labels of &#8220;evil&#8221; and &#8220;bad&#8221; and in their place ask why they feel that way and, ideally, what circumstances and rationalizations (or lack thereof) brought that &#8220;evil&#8221; person to act as they did; the perpetual use of &#8220;evil&#8221; spawns irrational hatred which stands as a massive obstacle in the place of human intellectual development which is directly connected to scientific progress.</p>
<p style="margin-bottom:0;">Surely nihilism is happiness?</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/euphopiab.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/euphopiab.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/euphopiab.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/euphopiab.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/euphopiab.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/euphopiab.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/euphopiab.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/euphopiab.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/euphopiab.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/euphopiab.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/euphopiab.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/euphopiab.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/euphopiab.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/euphopiab.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/euphopiab.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/euphopiab.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=6&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://euphopiab.wordpress.com/2008/06/16/you-say-hate-i-say-no/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d6a85350fbd10d3ec6b5e8bda159dfa?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">euphopiab</media:title>
		</media:content>
	</item>
		<item>
		<title>Only Idiots Feel Insulted</title>
		<link>http://euphopiab.wordpress.com/2008/06/16/only-idiots-feel-insulted/</link>
		<comments>http://euphopiab.wordpress.com/2008/06/16/only-idiots-feel-insulted/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 00:50:43 +0000</pubDate>
		<dc:creator>euphopiab</dc:creator>
				<category><![CDATA[Philosophy]]></category>
		<category><![CDATA[anger]]></category>
		<category><![CDATA[bad vibe]]></category>
		<category><![CDATA[insult]]></category>
		<category><![CDATA[materialism]]></category>
		<category><![CDATA[nihilism]]></category>

		<guid isPermaLink="false">http://euphopiab.wordpress.com/?p=7</guid>
		<description><![CDATA[Consider the scenario where one individual aggressively declares that another individual is unattractive. Naturally the person insulted may become upset. This is absurd for two reasons. Foremost, the first individual is bringing the insult about as a biological desire which resulted from neurological operations. There is no soul to blame, therefore to take offense is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=7&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom:0;">Consider the scenario where one individual aggressively declares that another individual is unattractive.  Naturally the person insulted may become upset.  This is absurd for two reasons.  Foremost, the first individual is bringing the insult about as a biological desire which resulted from neurological operations.  There is no soul to blame, therefore to take offense is synonymous with taking offense to the rock for falling.  Alternatively, one may permit the insult to be measured in two components which necessarily compose the reasoning behind the insult.  It is possible that the first individual truly does believe that the second is unattractive.  In this case the first individual speaks simply their subjective truth and so the second individual need only view the remark as a piece of subjective information which the first individual cannot control.  The second component of the insult would be that which is facilitated specifically to cause insult and contains no subjective truth to the first individual; in this case there is no reason to take offense for the first individual is simply lying to achieve their biological goals which is as absurd as blaming that same rock.</p>
<p style="margin-bottom:0;">What a wonderful thing this grants the nihilist over the moralist. A nihilist is not angry and has no grounds to respond irrationally to insult or be saddened by the petty (or serious, for that matter) remarks of another human.</p>
<p style="margin-bottom:0;">Surely nihilism is happiness?</p>
<p style="margin-bottom:0;">
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/euphopiab.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/euphopiab.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/euphopiab.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/euphopiab.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/euphopiab.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/euphopiab.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/euphopiab.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/euphopiab.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/euphopiab.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/euphopiab.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/euphopiab.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/euphopiab.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/euphopiab.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/euphopiab.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/euphopiab.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/euphopiab.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=7&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://euphopiab.wordpress.com/2008/06/16/only-idiots-feel-insulted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d6a85350fbd10d3ec6b5e8bda159dfa?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">euphopiab</media:title>
		</media:content>
	</item>
		<item>
		<title>Sorry for Apologizing</title>
		<link>http://euphopiab.wordpress.com/2008/06/16/sorry-for-apologizing/</link>
		<comments>http://euphopiab.wordpress.com/2008/06/16/sorry-for-apologizing/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 00:50:30 +0000</pubDate>
		<dc:creator>euphopiab</dc:creator>
				<category><![CDATA[Philosophy]]></category>
		<category><![CDATA[drama]]></category>
		<category><![CDATA[materialism]]></category>
		<category><![CDATA[nihilism]]></category>
		<category><![CDATA[regret]]></category>
		<category><![CDATA[worry]]></category>

		<guid isPermaLink="false">http://euphopiab.wordpress.com/?p=8</guid>
		<description><![CDATA[The idea of regret (and the “apology”) is unfounded. On a social level this practice is reasonable insofar as an expression of sympathy; however, the extension of the practice such that it retains a sort of ethical or moral imperative with meaning is absurd give the premise of materialism. The past could only have reasonably [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=8&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom:0;">The idea of regret (and the “apology”) is unfounded.  On a social level this practice is reasonable insofar as an expression of sympathy; however, the extension of the practice such that it retains a sort of ethical or moral imperative with meaning is absurd give the premise of materialism.  The past could only have reasonably resulted in a single future which makes a notion of acting upon the comparison of multiple possible outcomes or realities unreasonable. One may apologize to the ant for the raindrop which has impaled it out of sympathetic acknowledgment (no doubt driven by biological imperative), but a future in which the raindrop did not hit that very ant is an absurd scenario to postulate for the state of the universe before that moment would have had to be different back to the beginning of space and time.  This is an absurd case as a different beginning of space and time would result in unpredictable and extreme alterations to the entire universe and it is entirely possible that no beginning state exists which could reasonably result in the alternate universe being used for comparison.</p>
<p style="margin-bottom:0;">How liberating this truly is. Religions and morality hold that one should feel unhappy as a result of one&#8217;s actions. This creates a system in which one does as they see is necessary, naturally, and for that is asked to express social regret. This creates a very unnecessarily complex and unhappy situation which can only be known as oppressive. We should move for the future and in it seek the treasures of our existence, not dwell in the past with regret and remorse. How sad is the person who wastes more of their limited time by re-living the supposed &#8220;mistakes&#8221; of the past.</p>
<p style="margin-bottom:0;">Surely nihilism is happiness?</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/euphopiab.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/euphopiab.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/euphopiab.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/euphopiab.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/euphopiab.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/euphopiab.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/euphopiab.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/euphopiab.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/euphopiab.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/euphopiab.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/euphopiab.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/euphopiab.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/euphopiab.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/euphopiab.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/euphopiab.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/euphopiab.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=euphopiab.wordpress.com&amp;blog=3797604&amp;post=8&amp;subd=euphopiab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://euphopiab.wordpress.com/2008/06/16/sorry-for-apologizing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d6a85350fbd10d3ec6b5e8bda159dfa?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">euphopiab</media:title>
		</media:content>
	</item>
	</channel>
</rss>
