Archive for December, 2008

h1

still alive

December 30, 2008

I’m doing science and I’m still alive!

really, I’m just in a funk, so I haven’t posted lately.

h1

lighting problems: resolved

December 27, 2008

Just a quick post: lighting issues are RESOLVED.  When you set the ambient source to color for Direct3D it multiplies and OpenGL adds.  So I just have to do that part manually for Direct3D and everyone’s happy as a clam.

h1

RAVEN materials + inhuman art + freaky art

December 26, 2008

I have to say it’s quite awesome that my Grey fanart wound up on the Inhuman site’s fanart page.  I did a thing with grey killing people/trees with a menorah.  That’s because he loves the slaughter portion of the holiday season.  heah yo go my buddayo…

Okay then.  Now that that’s over with, let me tell you about a sweetass development with the engine.

I got simple materials and lighting to work in Direct3D and OpenGL!  Transparent in terms of which API of course.

This next screenshot is simple proof you can choose which:

u can choose d3d or gl zomg

u can choose d3d or gl zomg

NOW.  Direct3D:

Direct3D 9 HW L&T in RAVEN

Direct3D 9 HW L&T in RAVEN

And in OpenGL.  OpenGL’s glColorMaterial(GL_AMBIENT_AND_DIFFUSE) appears to give me a slightly brighter ambiance than Direct3D’s D3DRS_COLORVERTEX and D3DRS_AMBIENTMATERIALSOURCE / D3DRS_DIFFUSEMATERIALSOURCE set to the first vertex color FVF.  Not sure why, maybe it has to do with how D3D mixes the ambient color?  Or is that part of the HW L&T pipeline?  I can’t remember T_T.  Whatever, I’ll get this figured out.

opengl_hwlt

OpenGL HW L&T

Oh hey.  I made another art picture yay!

Gynophobia by ~ninjarat1 on deviantART

h1

physics talk abstract and slides

December 25, 2008

So now that my talk is done and over with, I guess I promised earlier to post my abstract/slides. SO IM POSTING THEM JESUS DONT KILL ME OKAY KAYTHX.

They’re here, and you must use the video signal analysis in your brain to interpret the pictures. No one ever gets that and they’re all like ROFLMAO I CANT SEE WTF. silly silly people.

download: physics_talk_08_ccis.7z

That takes care of that.

h1

new artwork – Anima Supremacist

December 23, 2008

I have slaved for…time…or something like that, to bring you all a new piece of artwork! I haven’t been in a terribly artistic mood for quite a long while, probably not since before I started this blog! Well. I am now officially done with a new piece. The first piece to be posted on the intarwebs really. Be kind.

It is called Anima Supremacist. I was thinking about Jungian psychology again, and I do that quite often as the crazy parts tend to apply to me, (PTSD here yay,) when I had an idea for a picture. Basically it would be kind of an archetypal breakdown of the concept of the Anima or Animus destroying the mask of our selves, the False Self. The self is basically characterized by Jung as the Anima (masculine) or Animus (feminine) and each of us have both, a man’s feminine side and a woman’s masculine side.  The False Self is quite simply an impostor Anima generated for the purpose of politics, left hemisphere communication which mostly involves language skills, fabrication, and parroting. The False Self is especially necessary in a closed in and unkind society wherein conformity is required, and even to a small extent in simple social exchanges such as the common:

Dude 1: How are you?

Dude 2: Fine.

Dude 2 may have been miserable, but more important than the communique of the Anima is the socially conformant dialogue, so there is no social faux paw.  I must admit, I DETEST this kind of cheap talk with no meaning or content that is required to exist in a society.  My perfect world is one where we are all wetwired in to a server hub which can relay pure data untranslated from one brain to the next, moving only concepts as data packets, and the need for language is diminished entirely.

But psychologists agree that there is such a thing as an unhealthy False Self.  I think it is a spectrum, where the mental health damage caused by the False Self is directly proportional to it’s size and control over the Anima.  Therefore I have worked long and hard to kill my False Self, and I think I am finally gaining some ground.  The phrase “be your self” is quite profound, and it kills me inside to hear it used by all these rediculous pop icons and teeny boppers when they really mean “be your self by asserting your independent ability to act like everyone else or you’re not cool.”  Of course this is THE EXACT OPPOSITE of being your self.  *spits*  I actually just spat right then.

But on to the artwork.  It’s this awesome eye thing consuming a comm tower. And before anyone asks me, yes, the tower was somewhat influenced by the Citadel from HL2.  Now, without further ado, the image.

Anima Supremacist by ~ninjarat1 on deviantART

I hope you enjoy it.  🙂

h1

omg done lol

December 23, 2008

YOU CAN READ THE ARTICLE BECAUSE IT IS DONE I WANT COOKIES NOW BUT RUSTY NAILS WILL SUFFICE

FAAAALLLCOOOON PUUUUUUNNNNNNCH!!!111!1!!!!1!

so, yeah, read the article.

h1

new article wip Direct3D 9 on the fly geometry

December 22, 2008

I’m commencing work on a cool article regarding on-the-fly geometry code. In OpenGL it’s really a snap (glBegin(), glEnd(), glVertex(), glNormal(), etc.) but in Direct3D it’s fucking impossible. You cannot do any of it on the fly. You consolidate everything down to a single call, (a few complex ones for vertex buffers) that requires all this pain-in-the-ass setup, and it’s STILL less efficient. I don’t get you fucking people at M$. ARB can do it, so you definitely can.

But anyway… I created a little class called GeometryInterfaceD3D9. It takes OpenGL style on-the-fly commands, then does the work for you. It’s not really fully optimized to the extent you can with D3D, but it works, and emulates OpenGL very well. Just avoid quads at all costs, because while I technically added emulation for them (quad primitives not available in D3D9 wtf?) they are DEADLY SLOW. I could fix this with a bit more preprocessing, but for now it just does multiple calls to RenderPrimitiveUP(), so it is, as I said, ridiculously slow. THIS IS NOT THE FINAL ITERATION, I WILL FIX IT KAY ZOMG.

The reason was that the main Renderer class and children RendererOpenGL and RendererD3D9 were initially designed for these calls. Then I eventually realized that this is not how you do it at all with Direct3D. But I firmly believe that these on-the-fly geometry instructions are the clean way of doing the API. So, I accepted a less efficient implementation on RendererD3D9. Don’t worry about the lack of efficiency there. Just as VertexBuffer and VertexBufferVBO are efficiency optimized for OpenGL, VertexBufferD3D9 will be optimized for Direct3D. And of course, all the specific implementations are invisible to the user of the library, so it is important to add layers that unify the API. So far this is going well.

Anyway. I will add most of this above text to the article page, and also the code. Please check it out when it is complete.

h1

non sleep forever lawls

December 21, 2008

I feel very sleepy. But I can’t fall asleep. It’s 2:30 in the morning, because that’s how I roll. BLLAAAARRRGHGH.

I’m not to sure why I started this post, except that I’m idle while I fail at sleep. In the meantime, if you don’t think this whole comic is kickass, there’s something way too ungeeky about you for me.

h1

good times were had

December 19, 2008

Several presentations were given. One on the fact that people don’t give a shit about online security because they’re irrational and shortsighted, all they want is convenience. So if you’re planning on being an evil business man, don’t bother with online store security. I should have known.

Then the new ZFS file system by Sun for virtual server storage was presented, and compared to EXT3. I actually learned a lot from that presentation, like how RAID is used in parity checking. Also, the ZFS file system actually just uses a data pool for all drives and volumes (making volumes a thing of the past) managed by the ZIF I/O system, which is integrated with the actual partition manager. Partitions become invisible and irrelevant, and all the super blocks are managed by “uber blocks”. It’s all very interesting, JFGI.

I totally awesomified everything with the physics presentation. I feel like…. really good. It went really smoothly. Interesting because I had a nervous breakdown right beforehand and fucking puked. In the bathroom, but I do have a horrible fear of public speaking.

But then the Othello game team presented, and they were actually really good. The most amazing of the AI scripts shown by the advanced non-linear algorithms class was the one by Iain. It took the game timer and computed how many seconds it has to make this move (realistic approximation) then spends exactly that amount of time. It does a possible moves benefit/penalty difference tree search, but to speed it up it does alpha beta pruning to remove sub trees with first layer search expensive nodes to within a certain tolerance (each new layer search given the most promising avenues in Layman’s terms.) The result is a beautifully executed compromise between the fastest computed and most predictive model, where for each new search layer moves are eliminated until the best is given or time runs out in which case the best of the moves so far in the search is used. This means that the longer it is given, the better the move it will make, but because it is entirely scalable to time as it is ACTIVELY AWARE of time, it will always make a move at least one layer of predictive strategy deep, but ALMOST ALWAYS MORE.

Yeah. Fucking genius. It beat EVERYONE, and their relatively puny AI programs.

So, yeah, I would say that I may have been the highlight, but it was hard to to Iain’s AI program. I was blown away.

THERE.

Then, we headed down to Eric’s Aaron’s house (I don’t have their names down yet blargh!) and played rock band for a while. I got to sing Metallica lol. After a while we went to a dinner with Dr. Liow and some other professors I don’t know, Chinese food for all! It was pretty sweet. We talked about how awesome Chrono Trigger is and why A* is still quite often the best pathfinder if you prune the search properly for large maps with area zoning. Also, there was some discussion as to why romance novels are low grade girl porn, and agreed to have another AI face off. Plus there was specifically Colombian coffee at the place, that is my favorite variety! It was all around awesome. Then on the way home we were almost killed in an accident because of the freezing rain. But we didn’t hit anybody or vice-versa. We DID do some awesome donuts though.

h1

cs lab ho!

December 18, 2008

I’m currently up in the CS lab. I got my physics test running on their machines. I have the Ubuntu portion of my laptop working with their smart boards. I am now in complete control of this galaxy! Or not.

But man, I’m psyched! This is it, man! 13:00 I’m giving my talk. Then I’m watching several others, including the Othello game presentations.

The CS students are in here freaking out because everything in Othello suddenly broke down, and fixing all kinds of weird crashes related to timing and the AI scripts. T_T But it’s quite amusing. It doesn’t suck as bad as it could, but I’m sitting here all smug because all my stuff works just fine. hehe… 😀