Piko3D

Pixel Perfect Picking in OpenGL 4.2

May 25th, 2014

Hey everyone!

This video is long overdue πŸ˜‰ I implemented picking in the fall of last year πŸ˜‰ But for the video to look nice, I wanted to show that we could pick through transparent objects.
So I had to implement those first, since we didn’t support alpha rendering yet πŸ˜› We still don’t support translucency btw. More on that later πŸ˜‰

Aside from transparency, we now also support additive blending on object level, and emissive rendering on object level. This allows for more visual effects, which our scripters love πŸ˜‰

But back to picking! We first cast a 3D ray through the scene to see which objects we potentially hit. We then render the objects that intersect with the ray, to an offscreen frame buffer object, using some very basic shaders. In this buffer object, we encode an identifier for the object, so that if 2 objects are hit by the ray, we can later figure out which one was rendered in front of the other. We also render the distance from the pixel we render, to the camera, in the frame buffer, so we can calculate the exact world coordinate of the point where we “hit” the object.

We also use a scissor technique to only render the single pixel we hit on the screen. This makes the picking “query” very efficient.
We then read the pixel value back from our frame buffer, to see if the object was hit, and where it was hit. The system does support multiple cameras, view ports and scenes overlapping without issue.

Hope you like the video!

Regards,
Wracky

Revision 2014

April 19th, 2014

Hi everyone!

So! We’re at Revision demo party right now!
We were planning on participating in the Game compo this year, but the night before we needed to submit our entry, everything went wrong, and we were left with not enough time to put the demo together the way we wanted. A shame! It would have been our first entry πŸ˜‰ That said, the game compo was crazy good this year, and a lot of fun to watch.

We might release our little game demo later through this page πŸ˜‰
Aside from that, so far it’s been a really productive weekend as well! We may not have a demo this time, but we’re coding like mad, and working on all the other stuff that we still need to get done. We have now completed our switch to Bullet physics, and Micron is working hard to extend our physics capabilities further. Meanwhile Paramike is doing a big overhaul to make Piko3D much more multi-threaded, so we can make better use of all those extra cores in all your machines πŸ˜€ Β I’m currently working on a lot of different stuff. We now support additive blending and emissive objects (objects that are unaffected by lighting) and I’ve been making a lot of small improvements that make the lives of our game developers a lot easier.

Anywayz! We’re having a blast.

Talk to you later πŸ˜‰
Regards,

Wracky

So.. eehmm… Yeah! Progress report!

March 10th, 2014

Hi everyone!

Thank you for still reading this after we haven’t updated for almost half a year πŸ˜›
We’ve been doing a lot of boring stuff lately! A lot has changed and we have nothing to show for it -_-
Hence the lack of updates.

Here’s what we did:

  • We’ve switched over from ODE physics to Bullet physics. Simply because we were looking for a physics engine which is better maintained, and is more mature in many ways.
  • We’ve implemented FreeImage. Piko3D is growing, from something small into a full fletched game engine. The renderer is getting better, we have positional 3D sounds, and ragdoll physics. We found that it was time to support more than just png files, and picked FreeImage for the job.
  • We’ve refactored part of the render and resource handling to make future features easier to maintain and implement. Font rendering was broken since deferred lighting was implemented, so we fixed that πŸ™‚
  • We’ve moved from SVN over to Mercurial for our version control

Meanwhile, the game folks have given us a lot of feedback on how they are using Piko3D for surprise surprise, their little game prototype! We’ve been working with them in optimizing/fixing Piko3D’s script interface too, but HAH! We’re not showing you the game yet. We want to polish it a bit further before we put it out there.

So there! A whole lot of stuff we did, in the few hours of spare time that are not consumed by gaming πŸ˜‰ and nothing to show for it!! How disappointing! This is kinda how we feel as well, but soon it will be time to show off some of the new features we’re planning in Piko3D.

So stay tuned! and thanks for reading.

Regards,
Wracky.

Our game programmers are finally gaining some momentum!

October 10th, 2013

Hello all!

Still hard at work here! Cisst and Furos, our game programmers (slash artists, we still have a small team πŸ˜‰ ) are finally using our script interface how it’s meant to be used: to create a game! Obviously, this is the reason why we are doing this, so we’re very excited! Cisst has created an awesome first version of a side scrolling game. Furos is creating a platform game. Both are just prototypes, meant to familiarize our game programmers with Piko3D and AngelScript.

Of course, this means that finally all missing features and existing bugs will need to be fixed πŸ˜‰ To motivate us, Furos has even created a meme for one of their biggest peeves while creating their prototypes:

Arrays
So, uh, coming up: Arrays in AngelScript in Piko3D! πŸ˜€

Cheers!

Paramike

Piko3D on next-gen hardware!

August 15th, 2013

Hi all,

We have ported Piko3D to the newest hardware. The results can be seen here:

Next-gen hardware!

Just a bit of fun ofcourse πŸ˜‰ We are working on GUI functionality: Wracky is working on raypicking, I (Paramike) am working on support for more image types and support for non-power of two images.

Micron is finishing up our animation/physics blend, and is almost finished. It’s pretty awesome, if we say so ourselves πŸ˜‰

Stay tuned!

– Paramike

Advanced features in Visual Studio 2010 Express

August 8th, 2013

Hey everyone,

We mostly use Visual Studio 2010 express edition for Piko3D development. We’ve been using this version of visual studio for a couple of years now, and we were always annoyed by what we perceived to be, limited functionality of the program.

With a default installation, a lot of the standard features you find in the full version of Visual studio are disabled.
For instance, amongst others, the following features are disabled:

  • Attaching the debugger to running processes
  • Memory windows, for viewing program memory,
  • Cancel build steps
  • Pause a running program
  • Restart a running program
  • The entire “Build” menu in the main menu bar.

We always thought this was pretty annoying! Turns out, each one of these features IS available!
And I only noticed it yesterday. I’ve been cursing at Microsoft time and time again for the what I thought “absence” of these features, and it turns out they are there all along! We all installed visual studio 2012 with “Basic Settings” … Turns out you need “Expert Settings” for all of this to be available!

Expert setting visual studio

I’ve seen a lot of people online looking for these options in the Express editions of Visual studio, so I thought I’d make a post.
You can find the “Expert mode” in the Tools menu, under “Settings”

Regards,
Wracky.

Physics: Animation and Ragdoll

July 1st, 2013

Hey everyone!

We have another video for you to watch. Micron worked his ass off to get animation and physics to work together! We’re still improving, but we now have support for Bone animations with Physics, and Ragdoll support! And it looks awesome πŸ™‚

Currently, this is all done with ODE, but we’re thinking about switching to Bullet physics, since ODE seems a bit dead in the water.

If you paid attention, you can see that the video also shows the real time spotlight shadows I implemented. They’re very simple at the moment, but they look good already. I’m currently working on Directional lights and I hope we can have a new lighting video up soon πŸ™‚

Keep ya posted!

Regards,
Wracky

Basic OpenAL Implementation

January 3rd, 2013

Hey everyone!

No we’re not dead. Just didn’t have a lot to show you πŸ˜‰
But here’s some new stuff! And more is on the way!

I’ve been doing some debugging recently, started working on our own file format, but most of all,
debugging is a lot better now! I wrote a logger, and a better exception handler, and error messages.
Piko3D now writes logs, and it no longer crashes upon error πŸ˜›

In the mean time, Paramike finished the first part of our OpenAL implementation! And it’s awesome πŸ˜‰
Everything you see in the video is done in Angelscript. We added things like a camera “Look at” option, and “join”, which
syncs 2 object positions πŸ™‚ Useful for attaching sound sources to objects πŸ™‚

In the mean time! Micron has been working on a debug renderer, so that he could actually see what he was doing while implementing bone animation, and I have to say it is coming along nicely! We’ll show you more next time!

Sorry for the delays guys. I hope we can do more updates soon. If I can keep myself away from star/mine craft for long enough πŸ˜›
But things are looking good!

For now! Enjoy our OpenAL: Doppler effect video!

Talk to you later!

Wracky

Deferred Lighting: Point- and Spotlights

August 2nd, 2012

Hey everyone!

Time for another update!

I’ve implemented spotlights, and optimized the light rendering a bit. Point- and spotlights now have proper falloff, and can be animated.
We’ve put a video together for thisone, showing you the state of our renderer up until now.
It is possible to set the “shininess” for separate object, so you might notice our little spaceship to be a bit more shiny than the rest
of the scene.

This is all just simple test models and geometry I had laying around. Perhaps for our next video, we’ll have some more eye candy models,
and I hope proper textures, to show you. πŸ˜‰
Next up: Shadows and Transparencies!

Until next time!
Wracky.

P.S. Oh yeah, and we’re all kinda hooked on minecraft.. so progress is slow atm πŸ˜›

First steps in Deferred lighting!

April 24th, 2012

Hey everyone!

deferred lighting

Deferred lighting with position, normal and diffuse buffer.

Got some news for ya!
We’re still hard at work, and I actually have some screenshots to post! Hurray!Β The new renderer is starting to work nicely, and we actually have a half decent structure for drawing stuff now!

Aside from that, Our OpenAL implementation is almost finished, we have support for bones, just no animations yet πŸ˜‰Β So we’re working on animations and I believe Micron is looking into Inverse Kinematics, so should be exciting.

Our deferred renderer is currently in the stage of just simple lights. No transparencies yet, and no shadows or any post filter effects. Post filtering should be fairly simple to add to it later though.

Well that’s it for now! Hope you enjoy our new screenshots πŸ˜‰

Best regards,

Wracky.

 

« Newer PostsOlder Posts »

Creative Commons License
This work by piko3d.net is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Netherlands License
Powered by WordPress