What I did today

Discovered the Hough transform.
It’s ingeniously simple, so I tried it out for line detection:

From left to right is the original image -> filtered to binary image -> a view of the hough space for the image -> the image with superimposed hough space mapped to cartesian -> detected lines

This uses the simpler y-intercept form over the Hesse normal form used in the wiki page.
Terrible, hastily-written code for the curious: http://pastebin.java-gaming.org/0e10964752f16

Achieved this:

Got some cool stuff working in XShot. Now I just have to get through the pain I am having with loading resources from the JAR where it works in Eclipse, but not as a JAR.

Here’s a gif:

Is this just for fun? Because puush does this and more. I’d happily switch to your program if you implemented better features though. But… idk if hooking keyboard events is possible in Java. You could certainly try though.

More wonderful ads?

I am doing it for fun, but would also like it to be a viable product. Well, it’s completely free, but you can get what I mean.

Hooking keyboard events is not possible in pure Java, but I’ve seen some libraries for Java out there that interface with native languages and provide that functionality. If you could message me on here with what features you would like to see, that would help tremendously. Or you could come talk to me on IRC at #java-gaming on freenode. There is a list of planned features on Github.

Also, if you or anyone else is interested in contributing, that would also be great. :slight_smile:

Finally put my current game on JGO…

@Riven, if they’re becoming this frequent, perhaps a bad-ad centric topic is in order?
Spamming up WIDT is not very useful.

I’ve been painting little color rectangles, to properly debug collisions and attacks in my game (which incidentally, were a complete mess :P)

Finally got my internship! Backend programming for a huge ecommerce service, I’m really excited!

Fixed a nasty bug with the calculations of a level up - YAY, only took me 30 minutes to find and fix ::slight_smile:

Next 4 days are free for me -> more time for my project and I hope I will be ready to show it to you asap :slight_smile:

Actually this is more what I did yesterday, but I’m finally getting somewhere with lwjgl. :slight_smile:

I can “walk” around with the camera, and rotate the camera left and right. I also implemented a z-order thingy, but it’s not working exactly the way it should (yet).

It’s all very basic, but I’m planning on actually finishing this for once :wink:

Started to play with voxels again, I’ve been out of touch with OpenGL tho, could anyone tell me what the smart way to do shadows is these days?

https://dl.dropboxusercontent.com/u/1668516/shots/voxel-new1.png

Cheers,

Kev

Shadow mapping.

Is there some special form that gets me to a place where I can do shadows across a larger scene?

Kev

Depending on how large your scenes are and your maximum depth buffer precision, you might be able to get away with just simple shadow mapping but for really large scenes typically the CSM or PSSM techniques have been used.

Most games also these days use some form of Ambient Occlusion (or approximation of it, like SSAO). Its an effect which really adds to the scene (especially for voxel style games). A relatively recent and popular algorithm seems to be Scalable Ambient Obscurance.

Thanks kappa.

Kev

Submitted the first draft of my bachelor thesis on the concept of a framework for teaching shader-based OpenGL :slight_smile:

I’ve been bored in class, so I wrote a three-class serialization library. Easily reversible, but still cool.

I rewrote the model renderer’s octree since I had done some optimization on the physics engine’s quadtree that I could carry over. Cut the culling cost of models by a lot and allowed for a few interesting optimizations. I also added proper threading for some trivial parts of the octree updating each frame, one of the few if not the only significant single-threaded part in the entire engine. I then tried to give threading the octree generation and basically hit a wall. With some clever rewriting to eliminate most synchronized() blocks, improved reuse of data between frames, and a few other tricks I might be able to get half-decent scaling out of it, but simply put it’s always difficult or impossible to get good scaling when writing to the same place in memory using multiple cores. In the end I basically said “f*ck it” and simply went with the easiest solution: Multiple octrees! =D Instead of trying to stuff thousands of instances into the same octree, I simply divided up the instances and placed them in 2-4 separate octrees. Building two independent octrees has pretty much perfect scaling, so there’s no problem there, but traversing 4 octrees with 1/4th as many instances in them is slower than 1 octree with all the instances… It’s a simple solution that helped make the octree generation fast enough to run in parallel to better threaded tasks.