|
Monitoring app for work. You can roll over anything to get info, but if you are one of the people who is doing overview monitoring of our systems, you know what it all means, so thus the minimalism.
|
# ? May 27, 2008 15:48 |
|
|
# ? May 9, 2024 23:30 |
|
Here is something I got finished with not too long ago. I work in the Serious Game / Simulation Industry and this screen shot is from a product we are working on to train US Army Combat Medics. This is a screen shot that I took right before I added in blood pooling, so you're not getting to see the big glop of red pouring out of his leg.
|
# ? May 27, 2008 18:04 |
|
MrMoo posted:That's quite pretty, it would be nice to group categories together like Apple. Unfortunately I don't have the imagination to create a unique style set: Yeah, it might end up looking more like Spotlight by the time I'm done.
|
# ? May 27, 2008 18:16 |
|
Dromio posted:
That looks really cool and awesome, man.
|
# ? May 27, 2008 18:43 |
|
This is an implementation I did of the Signed-Distance Field pre-processing and Shading techniques presented in the paper "Improved Alpha-Tested Magnification For Vector-Textures and Special Effects" that Valve put out. It's nothing too spectacular to look at, but the concept is pretty neat (and flexible). Basically, most game text-rendering systems either (a) render their fonts at a fixed point size to a texture and just scale them up or down as needed, or (b) render each character that is needed at any given point-size, outline/shadow mode, etc, on demand to one of several swap textures which are updated each frame. The problem with the former method is that the text scales horribly, so if you deviate too far from the target point size (either larger or smaller) you end up with a blurry mess; the problem with the second mode is that it requires you to do a lot of work each frame to managed your texture memory usage, often having several versions if the same glyphs in your cache textures because you need them at different point sizes/rendering modes. The "Signed Distance Field" method basically pre-processes a high resolution version of the characters, then shrinks the sampled data down and stores it in a single, small, compact texture. Essentially, each pixel in the texture corresponds to how "far" (in texels) that given point is from the edge of the character -- that's the 'distance' part. The 'signed' part comes from the fact that you split the range of possible values such that a value < 0.5 is outside the edge, while > 0.5 is inside the edge. You then map and render these characters as you normally would a set of glyphs in an atlas texture, with the only exception that you then need a shader to interpret the values so that you get smooth results. This has the obvious advantages over prior methods of needing less texture memory; however, it's also superior to both in that, by virtue of the mathematical properties of the signed distance field and bi-linear texture interpolation, it scales up and down far better than simply rendering the character itself to a texture and scaling that. There's also the added bonus of the fact that you now have continuous "distance-from-edge" information in the texture, which allows you to get neat things like outlining and drop shadows essentially for free. This is all a lot of for a fairly unexciting picture, however it's still a pretty cool technique -- especially considering how simple it is, conceptually. It's part of a larger tech demo I am working on for a job portfolio, so I may post some other elements later on once they get more polished.
|
# ? May 29, 2008 14:21 |
|
Nuke Mexico posted:
Can you explain the advantage of using this technique over a vector based approach (i.e. rendering triangles based on the splines)?
|
# ? May 29, 2008 14:40 |
|
Adhemar posted:Can you explain the advantage of using this technique over a vector based approach (i.e. rendering triangles based on the splines)? You also have the advantage of dividing the work more effectively between your vertex- and fragment- units, which is important because one has to keep in mind that the graphics hardware is a pipeline, so a bottleneck in one stage means that the other stages are likely just sitting idle. For this system, I'm generating 2 triangles and 4 vertices (indexed) per character, and doing (hopefully) an equal amount of work on the vertex and fragment processing stages; depending on your implementation, a vector-to-geometry system could be anywhere from 8 to 50 triangles per character, and likely doing almost nothing at all on the fragment processors. That's a lot of CPU and memory overhead to composite those triangles together into one render list, and REALLY a lot of overhead if you're issuing a separate draw command for each character. Of course, none of this really matters if text rendering is not a bottleneck for you; I just happen to find this implementation to be fairly flexible, straightforward, and all-around eloquent. It's also worth noting that this technique has the additional benefit of being able to work with ANY alpha-tested texture that can be converted into a high-resolution binary (white-or-black) image. For example, you can use this method to create HUD elements from source textures that scale nicely and can drop shadows/pulse/glow. It would also be very useful for alpha-tested polygons of, say, a brush/grass/tree system, for example, as a way of creating leaves which have crisp, smooth edges even under close inspection without using a large amount of texture memory for them. It's really just a good all-around solution for solving the problem of aliasing in alpha-testing.
|
# ? May 29, 2008 15:31 |
|
Nuke Mexico posted:First, you can get smooth anti-aliasing on your font edges (by manipulating the alpha of the texel based on the distance field instead of just having a hard cut-off) as well as being able to include things like outlining and drop shadows with very little additional cost. You can also, in general, generate much higher quality glyphs with a texture-based system than you could with a direct vector-to-geometry approach, unless you wanted to allocate a fairly sizable amount of triangles towards rendering text. Thanks a lot for the info. I've been slowly developing an engine out of a codebase I've used for a few projects now, adding features as I need them, and I haven't needed a font rendering system so far as I've been running it inside a GUI app. I've been thinking about taking it to the next level and making it into something that can run full-screen, so I've been thinking about a modern font rendering technique to implement. After reading that paper by Valve I might give it a go, it seems clever and pretty straightforward. There's a chapter by Jim Blinn in GPU Gems 3 (chapter 25), where they render vector art such as text straight from the spline curves, on the GPU. I haven't read it in detail yet, but maybe Valve's technique is more practical.
|
# ? May 29, 2008 16:45 |
|
Adhemar posted:Thanks a lot for the info. I've been slowly developing an engine out of a codebase I've used for a few projects now, adding features as I need them, and I haven't needed a font rendering system so far as I've been running it inside a GUI app. I've been thinking about taking it to the next level and making it into something that can run full-screen, so I've been thinking about a modern font rendering technique to implement. After reading that paper by Valve I might give it a go, it seems clever and pretty straightforward. Every game I know of/worked on uses bitmapped/textured fonts, if an appeal-to-authority is worth anything
|
# ? May 29, 2008 16:54 |
|
Nuke Mexico posted:Every game I know of/worked on uses bitmapped/textured fonts, if an appeal-to-authority is worth anything I know, but I don't necessarily want to do what every other game is doing.
|
# ? May 29, 2008 21:03 |
|
Adhemar posted:I know, but I don't necessarily want to do what every other game is doing. You could use voxel-based fonts. I don't think there are many doing that.
|
# ? May 30, 2008 00:11 |
|
PlaneGuy posted:You could use voxel-based fonts. I don't think there are many doing that. You had me at "voxel."
|
# ? May 30, 2008 01:28 |
|
Now updated with album art thumbnails in playlists! Fetched in a background thread and updated on the fly when it's found. I'm having way too much fun with this, considering it targets such a small "niche" of users with Windows Mobile devices and MPD servers. Now if I could only find a way to coax some fancy transition animations from GDI+ on CF.NET. . . Dromio fucked around with this message at 21:14 on May 30, 2008 |
# ? May 30, 2008 19:17 |
|
Nuke Mexico posted:Can someone explain to me the optical illusion reasons why the Lorem ipsum text moves when my eyes move around it, or is it just that my hangover isn't quite as cured as I thought it was?
|
# ? May 30, 2008 21:42 |
|
more falafel please posted:Can someone explain to me the optical illusion reasons why the Lorem ipsum text moves when my eyes move around it, or is it just that my hangover isn't quite as cured as I thought it was? I think it is just your hangover :p
|
# ? May 30, 2008 21:56 |
|
more falafel please posted:Can someone explain to me the optical illusion reasons why the Lorem ipsum text moves when my eyes move around it, or is it just that my hangover isn't quite as cured as I thought it was? I can't explain it, but I see it too and I'm not hungover.
|
# ? May 30, 2008 22:12 |
|
I see it too, but then again I'm really, really tired.
|
# ? May 30, 2008 22:30 |
|
Zagrod posted:
I'm thinking of using physx bindings through Ogre for a project I'm working on. Have you found physx to be fast on physics? Is there any comparisons you can draw as to speed and ease of use between physx and other physics engines?
|
# ? May 31, 2008 00:16 |
|
I'm currently rebuilding my 3d engine from scratch. I used it last year for my honors thesis at university, but there were so many things that I wanted to change by the end that I just decided to rebuild it from scratch. Here are some shots of the stuff I have been working on. General Scene: Screen Space Ambient Occlusion Pass (still need a bit more work / tweaking): I'm doing this ill in OpenGL. Currently the engine supports Bullet physics, and a nice configurable render pipeline where I can change how elements plug in and plug out. I have just started working on the game side of the engine so I'll actually be able to use it for something other then pretty tech renders.
|
# ? May 31, 2008 01:25 |
|
Stramit posted:I'm currently rebuilding my 3d engine from scratch. I used it last year for my honors thesis at university, but there were so many things that I wanted to change by the end that I just decided to rebuild it from scratch. Here are some shots of the stuff I have been working on. Looks very cool. What kind of scene/map format are you using?
|
# ? May 31, 2008 01:37 |
|
Just a quick peek at our Django Dash project:
|
# ? May 31, 2008 10:25 |
|
tripwire posted:I'm thinking of using physx bindings through Ogre for a project I'm working on. Have you found physx to be fast on physics? Is there any comparisons you can draw as to speed and ease of use between physx and other physics engines? Unfortunately, no as this is my first time working with a physics engine. Also, my simulation is pretty small, there are few objects which aren't terribly complicated in shape - so I can't really say how fast would it be for your project, if you're planning something in a bigger scale. As far as ease of use goes it's OK. However, at least for me, you have to do a lot of cross-checking in documentation. For example, there's a whole lesson on Springs and Dampers, along with a compiled example, but when you go to another page about it, they tell you its deprecated and you need to use Distance Joints. Zagrod fucked around with this message at 13:35 on May 31, 2008 |
# ? May 31, 2008 13:32 |
|
I am just finishing an encryption application for Windows that is pretty nifty.quote:DataSafe v1.0 http://flickr.com/photos/aweiler/sets/72157605397499044/ Select the file you want to encrypt, and drag it onto the giant 'ENCRYPT' panel. Type in a strong password; note that my password is extremely strong at 4 characters long. Watch your data get encrypted via AES! This also works with folders and multi-file selection. There are a couple settings that can be changed through the app.config file, but it's all pretty simple stuff. Like the quote says, I would love to get some beta testers to try this out and find any bugs that might exist.
|
# ? Jun 3, 2008 00:47 |
|
Zagrod posted:Unfortunately, no as this is my first time working with a physics engine. Also, my simulation is pretty small, there are few objects which aren't terribly complicated in shape - so I can't really say how fast would it be for your project, if you're planning something in a bigger scale. Thanks, good stuff to know. Are you able to use the GPU to speed vector math/physics yet? Have they got around to enabling that, because I seem to remember that being like the killer selling point of it.
|
# ? Jun 3, 2008 03:19 |
|
Sir Davey posted:sweet lookin waveform view Hey I'm late on this train but could you share the technique you are using to draw the waveform,preferably some of the code or some other similar stuff. I'm working on a two track editor, but I'm frankly quite terrible with graphics.
|
# ? Jun 4, 2008 07:05 |
|
Evil posted:I am just finishing an encryption application for Windows that is pretty nifty. This was one of my first "real" programming projects when I was in high school, except replace "AES" with "sum of ASCII values of characters in the password mod 256 XOR'd with each byte". Kept the porn away from my parents though, and isn't that what programming is really about?
|
# ? Jun 4, 2008 23:29 |
|
Alex007 posted:I'm coding a web-based MMO forthe Urban Dead goons who are sick of Urban Dead Just a question... does clicking the link do anything other than bring up the popup menu? I'd suggest just having the menu popup with no arrow. it flows better. I like what you've done. it looks neat!
|
# ? Jun 5, 2008 06:58 |
|
A Web front-end for NodeBox's Colors library, built with Appengine. It's at http://colorspinner.appspot.com if anybody wants to mess around with it. EDIT: VVV Thanks, fixed it. Anode fucked around with this message at 03:47 on Jun 9, 2008 |
# ? Jun 6, 2008 01:07 |
|
(Xbox 360 game. I do graphics/multiplayer programming.)
|
# ? Jun 6, 2008 13:36 |
|
Anode posted:
Seems broken atm
|
# ? Jun 7, 2008 13:43 |
|
duck monster posted:Seems broken atm
|
# ? Jun 7, 2008 13:45 |
|
Here is something I've been working on. It is a road trip planning site which you enter the source, destination, and a distance you would be willing to detour during the trip. It then maps the trip and all locations within your search radius. There will be filters for types of places( parks, bowling alleys, strip clubs, etc ). Has anyone seen sites that do this same thing? I've found similar sites, but none that actually do this exactly.
|
# ? Jun 8, 2008 03:01 |
|
Barrackas posted:Couple of pics from my Java3D terrain program (done for my dissertation) What's your dissertation topic? And is this Ph.D., or undergrad, or what? Wuen Ping posted:Yes, we are using Ogre. I was very resistant to using it at first, because when I first looked at it, it did stupid things like reinvent a substantial portion of the STL. Fortunately, those kinds of defects have been remedied, and now I can go on record as saying it is fantastic to work with. What other engines did you look at before starting the project? I have a friend working on a game project using Crystal Space. He loves it, and apparently thought Ogre sucked balls compared to it, so I'm curious to hear an opinion from the other end.
|
# ? Jun 8, 2008 03:46 |
|
Wuen Ping posted:Yes, we are using Ogre. I was very resistant to using it at first, because when I first looked at it, it did stupid things like reinvent a substantial portion of the STL.
|
# ? Jun 8, 2008 23:32 |
|
OneEightHundred posted:I've heard a good number of horror stories about lovely STL implementations, which is probably why practically every major engine I look at has its own versions of STL-ish classes. which is kind of hilarious since that usually makes the problem worse, not better
|
# ? Jun 9, 2008 12:34 |
|
Nuke Mexico posted:which is kind of hilarious since that usually makes the problem worse, not better This. Also, the usual motivation for reimplementing part of the STL wasn't implementation quality, it was disagreements over the way the STL does things. For instance, Qt reimplements most (all?) of the STL containers, plus a few more, all with Java-style iterators. This is actually billed as a selling point in their marketing docs! Clearly, this is the work of a genius.
|
# ? Jun 9, 2008 14:38 |
|
Wuen Ping posted:This. Also, the usual motivation for reimplementing part of the STL wasn't implementation quality, it was disagreements over the way the STL does things. For instance, Qt reimplements most (all?) of the STL containers, plus a few more, all with Java-style iterators. This is actually billed as a selling point in their marketing docs! Clearly, this is the work of a genius. NIH syndrome at its worst
|
# ? Jun 9, 2008 15:52 |
|
Nuke Mexico posted:NIH syndrome at its worst I thought the primary goal was to reduce memory consumption for KDE 4, although the root cause seems to be a plethora of STL containers within their widgets.
|
# ? Jun 9, 2008 16:06 |
|
MrMoo posted:I thought the primary goal was to reduce memory consumption for KDE 4, although the root cause seems to be a plethora of STL containers within their widgets. One of the few reasonable STL re-implementations was done for the pupose of exposing more memory-management options, i.e. using a pool- or cached allocator of some point, so I might be able to buy that. There's almost never any excuse for re-implementing your own vector or linked list or hash table yourself "because it is faster" because it almost certainly never is.
|
# ? Jun 9, 2008 16:31 |
|
|
# ? May 9, 2024 23:30 |
|
Nuke Mexico posted:because it almost certainly never is. Read and weep, pretty lame discussion here: http://lists.trolltech.com/qt4-preview-feedback/2004-09/msg00019.html
|
# ? Jun 9, 2008 17:29 |