View previous topic :: View next topic |
Author |
Message |
ouasse
Joined: 30 Jul 2007 Posts: 90 Location: Paris, France
|
Posted: Wed May 05, 2010 12:27 am Post subject: retrostation demo released |
|
|
Hi people,
I am very proud to announce the release of my PS3 demo called retrostation.
I know it is a bit late compared to sony's decision to completely remove the Install Other OS functionality from the new firmware release of latest April 1st. However, I started this project more than two years ago, so I definitely wouldn't stop this until it is done. I also know about people who still haven't updated their system, because they are aware of what they will lose, so this is a way to show them what they can do with a ps3 system, even without hardware 3D acceleration.
The demo is an animation of different kinds of 3D objects. Some of these have been designed by Mic of Dune, who did a really good job. Others are coming from old Atari ST demos. I let you try and find out from which demos they come from ! Objects of the last kind are algorithmically generated: blobs and text in separately-animated pieces.
The music has been composed by Dma-Sc of Sector One, who also did a great job in the final design of the whole animation. I personally also use my own demoscene nickname in the demo, which is Zerkman of Sector One.
The demo runs on any PS3 system with a linux OS installed on it. It runs in framebuffer mode. Ensure you set the screen mode to 720p 1280*720, and disabled the Xorg server before running the demo.
I hope you'll like the demo as much as I liked making it.
Download the binary from the pouët.net website.
Edit: You can now download the video using ftp.
enjoy !
Last edited by ouasse on Thu May 06, 2010 10:00 pm; edited 2 times in total |
|
Back to top |
|
|
rapso
Joined: 28 Mar 2005 Posts: 147
|
Posted: Wed May 05, 2010 9:42 pm Post subject: |
|
|
is it maybe possible to upload some movie of that? (youtube?).
can you tell us some more details about the implementation? drawing on spus? :) _________________ Sony stole my linux|amazon stole my PS3 :( |
|
Back to top |
|
|
jimparis
Joined: 10 Jun 2005 Posts: 1179 Location: Boston
|
Posted: Thu May 06, 2010 5:18 am Post subject: |
|
|
He has a link to the movie... |
|
Back to top |
|
|
ouasse
Joined: 30 Jul 2007 Posts: 90 Location: Paris, France
|
Posted: Thu May 06, 2010 5:24 pm Post subject: |
|
|
rapso wrote: | can you tell us some more details about the implementation? drawing on spus? :) |
Yes, almost all the drawing, rotation matrix stuff, 2D projection work is done by the spus. For the blob effect, I also use a marching cubes algorithm that runs on the spus aswell. The image post-treatment (motion blur, fade in/out) is also done by the spu's.
Basically, the spu engine proceeds in the following steps (on each spu) :
- Retrieve a set of rotation matrices (basically, less than 5 or 6 are necessary).
- Retrieve a subset (all if 1 spu only) of the triangles to be displayed. For procedural triangle generation (blobs), the triangles are generated directly by the routine working on the spes.
- For each triangle, apply its rotation/translation matrix on it (according to a matrix id in triangle data). Perform 2D projection, and if the triangle is visible (back-face culling test), add a pre-computed flattened data structure (containing starting 2D coordinates and slopes, color data, Z buffer data ...) to a shared list in main memory.
When all triangles are processed by the spes, the screen memory is divided into horizontal stripes (typically, 4 or 8 pixels high). Then, for each stripe (parallelized among the spes):
- Retrieve the 2D triangles data that intersect with the stripe
- Draw all triangles on a buffer in local store, also using a z-buffer in local store.
- When all triangles are drawn, send the local store buffer to the corresponding location of the stripe in main memory.
Then, simple motion blur/fade in/out is performed if required.
Everything is done in parallel in the spe's (rotation/projection, stripe drawing, procedural generation of the blobs). Wherever double buffering can be used, it's used. All my triangle (3D and 2D) data structures fit in 128-byte blocks and are 128-byte memory-aligned in both main memory and local store, which optimizes mfc data transfers.
If some of you people are interested, I can release the engine part in the form of a library under a LGPL license. Maybe some of cou can get involved it its development ;) |
|
Back to top |
|
|
ps2devman
Joined: 09 Oct 2006 Posts: 265
|
Posted: Thu May 06, 2010 9:39 pm Post subject: |
|
|
Well done Zerkman!
For sure, any sample source using spu's is helpful... or compiled flexible library, at least. But just knowing your strategies is helpful already. Thx!
(as for me, I'm still lacking free time, and still crying about my plasma+vgabox config that only renders well under 1080i... but got surprised that FF13 supported perfectly 1080i, playing it was great!)
(about the old .ogg torrent, just rename it to .ogm and mplayer should be able to play it if you have the codecs) |
|
Back to top |
|
|
mooriel
Joined: 29 May 2009 Posts: 6
|
Posted: Mon May 10, 2010 11:28 pm Post subject: Re: retrostation demo released |
|
|
Great!!!!!
You wrote a 3D engine for Cell/b.e. from scratch.
It's parallelized with many core.
It's SIMDized.
I know it is horribly hard work.
You are a real hacker! |
|
Back to top |
|
|
Ameen
Joined: 14 Jun 2009 Posts: 12 Location: Bahrain
|
Posted: Tue May 11, 2010 4:15 am Post subject: |
|
|
I salute you sir..
I really would like to see the source if you managed to release it later.
Thank you. |
|
Back to top |
|
|
ouasse
Joined: 30 Jul 2007 Posts: 90 Location: Paris, France
|
Posted: Tue May 11, 2010 5:24 pm Post subject: |
|
|
I'm currently working on a release of the engine. Should be available under LGPL soon. |
|
Back to top |
|
|
ouasse
Joined: 30 Jul 2007 Posts: 90 Location: Paris, France
|
Posted: Tue May 25, 2010 7:22 am Post subject: |
|
|
Hi,
The source code of the engine is now released as the LGPL project "Freezer". I hope it will be of some use to some of you people.
http://github.com/fgalea/freezer |
|
Back to top |
|
|
ps2devman
Joined: 09 Oct 2006 Posts: 265
|
|
Back to top |
|
|
mooriel
Joined: 29 May 2009 Posts: 6
|
Posted: Tue May 25, 2010 9:52 pm Post subject: |
|
|
Thank you for releasing the great project!
I'm looking into your source code.
It's very interesting and exciting! |
|
Back to top |
|
|
speedxl
Joined: 07 Aug 2008 Posts: 26
|
|
Back to top |
|
|
ouasse
Joined: 30 Jul 2007 Posts: 90 Location: Paris, France
|
Posted: Thu May 27, 2010 5:17 pm Post subject: |
|
|
Thank you for your interest.
I'd like to know about your experience in setting up the library, and compiling (and running !) the example programs. If you get into any trouble, please tell which distro you're using and if it's 32-bit or 64-bit.
The documentation will be updated soon, but you can try and have a look at the examples, which are really straightforward.
Thanks. |
|
Back to top |
|
|
ps2devman
Joined: 09 Oct 2006 Posts: 265
|
Posted: Sun May 30, 2010 7:31 pm Post subject: |
|
|
I've installed ubuntu 10.04 but cell-sdk packages are currently broken for ubuntu.
I've retrieved 'libspe2' from sourceforge.net, do you think that may be enough? |
|
Back to top |
|
|
ouasse
Joined: 30 Jul 2007 Posts: 90 Location: Paris, France
|
Posted: Mon May 31, 2010 6:05 am Post subject: |
|
|
No, you need gcc for SPU.
You can just try and install the gcc-spu ubuntu package, maybe this one is not broken. |
|
Back to top |
|
|
ouasse
Joined: 30 Jul 2007 Posts: 90 Location: Paris, France
|
Posted: Wed Jun 02, 2010 5:55 pm Post subject: |
|
|
A preliminary and uncomplete Freezer API documentation is available on freezer.sector1.fr. Not consequent enough yet for writing your own programs though ;) I finish it as soon as possible. |
|
Back to top |
|
|
ouasse
Joined: 30 Jul 2007 Posts: 90 Location: Paris, France
|
Posted: Thu Jun 10, 2010 5:41 pm Post subject: |
|
|
The API documentation is now complete. Some installation indications still have to be written (there are some on the github wiki however), as well as a quick tutorial. But but reading the example files and the documentation, you should be able to do your own stuff in a quite straightforward way. |
|
Back to top |
|
|
ps2devman
Joined: 09 Oct 2006 Posts: 265
|
Posted: Sat Jun 12, 2010 3:39 pm Post subject: |
|
|
Many thanks! |
|
Back to top |
|
|
|