Tag Archives: Programming

Look at my balls

So, I’ve been quite busy lately with a new job and such.  And as a consequence I haven’t had any time for Gorgon recently.  But I finally sat down this evening and did a little work (not much mind you, and certainly nothing of note) on Gorgon 2.x.

I’ve uploaded the Ball Demo to the site so people can have a look at it.  I’d appreciate any feedback (please post the feedback to the forums, thank you).

Please note the following before running it:

  1. It’ll probably crash.  It’s in development after all.
  2. You NEED Windows Vista Service Pack 2, or Windows 7 (Windows 8 -might- work, but don’t count on it).
  3. It will run on Direct 3D 9 capable video devices.  However, it requires Direct X 11 be installed on the system (hence the OS requirements).

To run it, just run the BallDemo.exe and pray (oh, and ensure that the zip file isn’t ‘blocked’ by Windows, .NET assemblies hate that shit).  It defaults to windowed mode with a resolution of 1280×800 although you can modify the BallDemo.config file to change to a resolution you like.

Let me know what your performance is like.

Gorgon – 1.1.4529.31450

There’s a new version of Gorgon uploaded.  There’s not a huge amount in this release regarding the actual graphics library, just a few bug fixes.

However, there are two important changes:

  1. The project/solution files for the library source code were converted to Visual Studio 2010.  This means that in order to compile the Gorgon library, you will need Visual Studio 2010.  The library still uses .NET 3.5 SP1, so Visual Studio 2008 will continue to work when using the library assembly.
  2. Most important of all: There’s been a new library added called GSound (Gorgon Sound).  Written by ShadowDust702.  New forums have been added to reflect this new addition.

You can download Gorgon from here.

Does anyone really want Direct3D 9 video card support?

I am sick as a pig. I hate having a fucking cold.

So, I figured out the issue that prompted all of this and it took damn near forever. Apparently feature level 9.x devices can’t copy GPU data to resources (e.g. textures) that have a shader binding flag set to CPU accessible resources. And apparently the D3DX functions to save the texture does exactly that. It copies the GPU texture to a CPU staging texture and writes that out (makes sense, reading from the video device is a no-no). Unfortunately my device object just says “fuck it” and promptly dies when this happens, which seems like a driver problem. Anyway, it’s fixed now. Not that it matters, but it was painful and could have meant the end to Direct3D 9 video card support in Gorgon (which no one probably really cares about anyway).

Unfortunately the fix comes at a price. Part of that price is increased memory usage. It’s painful enough to have to create temporary textures when converting to a format that’s not able to accept anything by standard RGBA 32 bit formatting, but with the feature level 9.x there needs to be another temporary texture that doesn’t have a shader binding flag. It’s kind of gross. The other part is that the only way to get it without a shader binding is to create the texture as a render target (unordered access views would have been nice, but they’re for Direct3D 11 devices only), so that limits the number of formats that can be used when saving.

Anyway, thought I’d throw that out there.

You’re so primitive.

So, I’m moving to a new place tomorrow and work on Gorgon v2 is going to halt for a bit until I get my life back in order.  In the meantime, here’s a screenshot of the primitives (rectangles, lines, etc…) that have been making me insane (click it to see a larger version):

You can see the line (barely, I know, you can see it when it’s running for sure) and the rectangle, but I’ve gotten ellipses to work as well. Now, what’s the big deal you ask? (You are asking that, I demand it). And I’ll tell you.  Unlike the previous incarnation where the primitives were generated one pixel at a time (very inefficient), this time it’s using polygons to generate the primitives. So a line is using the line drawing on the video card, the rectangle and unfilled ellipse are using the line drawing as well and the filled ellipse is using triangles.  So all in all, they’re MUCH faster than the previous version.   For more details click the thingy at the bottom there…

Continue reading

So, here’s some more proof that I’ve been working on the next version of Gorgon:

https://www.youtube.com/watch?v=GFO6ZMdV2-A

As per the description on the youtubes:

An example showing the new version of Gorgon.

Currently this is just a simple sprite test using 1024 multi-textured sprites via shaders on Direct3D 11 hardware. It also shows a new feature that’s being planned (but not promising anything) to use the 3D stuff to allow perspective corrected sprites.

This video also shows depth for the sprites by walking a camera into the sprite cloud.

Currently getting about 1200 FPS with this (the selective multi-texturing really slows shit down).

MSAA (Gorgon v2.x – Dorian)

So, to prove that I actually do work on stuff, I’ve uploaded a new video to the youtubes.  This one shows off the ability to use MSAA in the new version of Gorgon.

https://www.youtube.com/watch?v=DhqrL3iVjDU

To get this effect, in v1.x of Gorgon, you’d draw a series of fading sprites (Alpha of 0 from the start position to an Alpha of 255 for the current position).  However, in this example I’ve used MSAA to simulate motion blur on a sprite.  Nifty eh?  On top of the nifty effect we also get full screen anti-aliasing, which is something the previous incarnation of Gorgon didn’t have.

Before you ask: no, motion blur will not be included as a function of the library, that’ll be up to the developer to implement.

The future.

I recently played around with my own library (see an earlier post about the sun effect) and I found it… well, lacking.  In my day job I do a lot of framework/library code for re-use amongst my co-workers and I’ve learned a great deal over the last few years of doing that professionally.  There’s a huge difference between writing a database/application framework and a graphics library, but, I’ve always been amazed how concepts from one architecture will map to another and as I developed Gorgon in my own time, I ported concepts to the framework code I write for my job and vice versa.  One major difference is that our framework code at the office is always evolving from project to project (granted, the pace of evolution has slowed somewhat), while Gorgon was written, and aside from bug-fixes, it never evolved because I never really used it except to prototype small things from time to time.  Until I wrote the Sun thingy….

Continue reading

Issue… where’s my tissue?

I became aware of an issue with the FromStream method on the Image object a few days after I posted the new installer.  It’s been corrected and put in the SVN repository.

Please note that it is not included in the 1.1.4119.34319 installer, and won’t be until I release a new version.  Sorry about that, but I’m a busy boy these days.

New version of Gorgon – 1.1.4119.34319

Yep, finally.  I’ve rolled up all the updates/fixes that were in the subversion repository and put up a new version of Gorgon.  Version 1.1.4119.34319 is the latest version and you can get it from here.  You can view the change log in this forum post.

Enjoy.

Kids… take my advice… don’t grow up

I’m sure people think Gorgon is dead.  Well, it’s not dead, but certainly not active either.  I’m pretty much done with writing for it (bugs being an exception).  If you’re interested in helping maintain it, please let me know via the forums.  My day job and my social life (which I’d neglected for too long) are a priority right now and I have very little motivation (or time)  to write anything related to Gorgon (or anything else).

That said, I do check the forums every day (at least twice a day).  So if you have a bug, or need a question answered, I will try to help.  Again, because of my “schedule” I may be a bit late in the replies (although ShadowDust702 has been doing a fine job of answering questions while I’m out drinki… er.. working).

Speaking of forums, forum member Cycor posted some code to convert GIF animations into Gorgon sprite animations.  You can view the code here (sorry for the late acknowledgment).

User stuff

So I’ve been meaning to do this for a while, but laziness and real life gets in the way.  Anyway, one of the forum members, Zeraan, has created a nifty little asteroids clone called Asteroids of Beyaan.  You can check out the project (which includes a link to the game itself) in the forums.  I’ve also added screenshots for the game in the screenshots section of the site under the user contributed screenshots section.

I’ve also added two new (well, not so new seeing as they’ve been there for a long time) screenshots for the RPC project by ShadowDust702.  Those too can be found in the screenshots/user contributed section.  Check the project description for a download (demo/test version) link.

New version: Gorgon v1.1.3638.20767

sitelogoSo I’ve finally gotten off of my lazy ass and uploaded a new version of Gorgon.  This version contains all the bugfixes, and enhancements that have appeared in the Subversion repository over the last few months.

You can read about the changes here.

Then you’ll probably want to download it.