Slashdot Mirror


OpenGL in PHP

Neophytus writes "Submitted as an entry into the .geek PHP5 tournament a proof of concept openGL implementation in PHP has been released by Peter 'iridium' Waller. The demonstration (download) shows four items being rendered in realtime by PHP at a not unreasonable 59FPS. The author welcomes feedback with practical uses for this technology." Update: 06/09 01:10 GMT by T : iridiumz0r, author of this entry, adds a link to this informative page responding to a number of comments in the discussion below.

12 of 286 comments (clear)

  1. PHP OpenGL on SourceForge by mdrejhon · · Score: 5, Interesting

    Very impressive -- A while back I heard about PHPOpenGL.

    But he didn't even use this at all! Pretty self contained, even to the gzipped uuencoded DLL file embedded in this PHP script whose sole purpose is to create the window that this PHP demo needs for the 3D graphics.

    1. Re:PHP OpenGL on SourceForge by iridiumz0r · · Score: 5, Interesting

      I didn't think anyone would submit it. I didn't. But, I suppose I'm not suprised it reached it if someone were to submit it.

  2. vsync by shamilton · · Score: 4, Interesting

    59 fps? Sounds like vertical sync at 60 hz. Anybody have any real performance figures?

    --
    "[A] high IQ is like a Jeep; you will still get stuck, just farther from help!" --Just d' FAQs, c.g.a
  3. Actually faster FPS by Wallslide · · Score: 3, Interesting

    I have a 3ghz P4, Radeon 9700 Pro, and 1gb of RAM, and I get about 180FPS constant

  4. Rendering 3D graphs of a slashdotting by mhesseltine · · Score: 4, Interesting

    While my subject is half-joking, it would be cool to be able to have a running traffic chart generated by a PHP script that you could use to monitor a particular server.

    Maybe tie this in with the 3D portscanning/IDS system mentioned a few days ago and make it a remote application?

    --
    Overrated / Underrated : Moderation :: Anonymous Coward : Posting
  5. Perfect application by Capt'n+Hector · · Score: 5, Interesting

    I've joined a group at LBNL (berkeley lab) that could use this. They have a database of molecular data, and they need a way to visualize it using a web interface.

    --
    Quid festinatio swallonis est aetherfuga inonusti?
    Africus aut Europaeus?
  6. PHP Simple DirectMedia Layer Extension by Anonymous Coward · · Score: 3, Interesting

    You'd be surpised what get's prototyped in PHP e.g. http://sourceforge.net/projects/phpsdl/ - "PHP SDL module is a wrapper/binding of Simple DirectMedia Layer for PHP. The goal of this project is to allow rapid prototyping of multimedia applications using PHP."

    Usually doesn't get beyond the prototype though.

  7. How about a new set off 'On Demand' products? by randomErr · · Score: 4, Interesting

    Here's a couple of ideas:
    - GPS terrain mapping: stream a live map in real time with low bandwidth
    - Shrek Chat Live!: Have hires avatars render while you speak. Kinda like that Microsoft chat but with good chat buddies.
    - Quantum Encryption: Have a whole 3d movie but just use three texture map hidden in the movie are your keys.

    --
    You say things that offend me and I can deal with it. Can you?
  8. Re:Using the right tool for the job by killjoe · · Score: 4, Interesting

    I am curious, why don't you consider php to be the right tool? It's a turing complete language, it's object oriented, it supports inheritance (and mixin type multiple inheritance), it has exception handling, assertions, a large library and a large community.

    So why not php? What makes php a poor choice as opposed to say perl, python, ruby, vb.net or any other scripted language?

    --
    evil is as evil does
  9. Interesting... by cr0sh · · Score: 3, Interesting
    Let me first say I know this is client-side and not server-side.

    I have recently been playing around with Python, PyGame and OpenGL (I love the NeHe tutorial conversions done for PyGame) - I have been pretty pleased with the speed (OpenGL does all the heavy lifting - with a proper culling algorithm and scene graph implementation, speed could go up more with more complex scenes), especially on the machine I am using, which is low-end by many people's definition (P-3/450 w/GeForce 2 - definitely not a gaming machine, but works well enough for me).

    Now, I don't know much about OpenGL yet, but is it possible to render to a file instead of the graphics buffer? If it were, then this thing could (in theory) go server-side (provided the server has the proper APIs and DLL, of course) - then render to a file for display by a web server.

    Such a system could be useful for online data visualization services or other similar systems (mapping, network visualization, etc)...

    --
    Reason is the Path to God - Anon
  10. Avoiding DLL Hell by tji · · Score: 3, Interesting

    I love his method for avoiding DLL problems.. the dll file is incoded in the program's source code, and is written out at run time:

    ---
    if ( is_file( "SimpleWndProc.dll" ) ? filesize( "SimpleWndProc.dll" ) != 2560 : 1 )
    {
    $dll = "eNrtVU9IFGEUf7NpTbZue1hCYqlvQT3JslsG0clt/aho1XHND OnguDutY+uMzh80"
    . "KDrYQTPJS1TUoWMEdSpYrEOEsQl66yD9gT1ILCHhIcqDML35Z la3IgO7mQ9+733v"
    . "fe9733vffN+blu4p2AEAFQjLAsiBQ03wd3qD8B2c9sHT3fOhH JeYD53pk3UyqKkZ"
    . "TRwgKVFRVIP0SkQzFSIrpLmtgwyoaSlcXV1V68YYevv9/ZFnd 8fKcQwxe2tirBHl"
    . "80fXmUzKqT577k+5CBQgwWEluZm11AvgC+3hKr3gcQu0ye+Cu Jo99qxPlyQ7AFfx"
    [snip]
    . "kdWIJ8pHfdFAdH90uzf+D/QDFVAQCA==";

    $dllout = fopen( "SimpleWndProc.dll", "wb" );

    if ( !$dllout )
    die( "Unable to extract SimpleWndProc.dll" );

    fwrite( $dllout, gzuncompress( base64_decode( $dll ) ) );
    fclose( $dllout );
    ---

    ( He said in the comments that it required a DLL file to work for various reasons, and I guess he wanted to have everything contained in one file... But, it's still pretty funny. )

  11. Re:The animation can't be interactive. by unixbum · · Score: 3, Interesting
    Could somebody who knows WTF they are doing tell me if it's possible without using an applet to get this to open a socket back?

    PHP has had client-oriented socket functions since PHP3. More recently, server-orinted socket functions have made it into PHP.

    Not to troll, but IMO PHP is a rapidly advancing language and a force to be reconcilied with.