You are not logged in.

#151 2012-01-02 10:17:57

sxe
Member
Registered: 2009-06-04
Posts: 103

Re: Quantum Project (KDE4/Qt4 Fork)

Wow, this is so cool. Much more low level stuff then i expected but cool anyway. I'm so exited to see what this project will grow into.

Thx for your work zester and a happy new year everyone.

Offline

#152 2012-01-03 11:20:39

zester
Member
From: Wilkes Barre Pa
Registered: 2011-08-13
Posts: 156
Website

Re: Quantum Project (KDE4/Qt4 Fork)

sxe wrote:

Wow, this is so cool. Much more low level stuff then i expected but cool anyway. I'm so exited to see what this project will grow into.

Thx for your work zester and a happy new year everyone.

This project started out highlevel, and as I progressed it got more and more low level in order to overcome defects & shortcomings of already existing
projects. I found my self running into problems with X that Kde, Gnome, Xfce and Enlightenment  were having when they first started.

Reason's why the Wayland project was started. So I figured I would give Wayland a try but not only could I not get it to work but know one I knew
could eather. Besides I do alot of 2D/3D game development that needs those Nvidia/Ati binary blobs.

Then some FreeBSD friends reminded me that I do my own thing anyways so why should now be any different.

So I figured if Wayland and Compiz could do it why cant I? Doesn't hurt to try.

Not only did my prototype work but only took 1 day to iron out what bugs I had so I could progress to the next step.

Funny thing was I had to actually throttle my framerate because I was hitting over 4000FPS on my nvidia card and that
was causing me to jack my cpu up to 100% usage do to some image manipulation code that is software based. And I
wasn't even double buffering. Thats crazy and totally awesome at the same time.

I ended up not even needing 75% of Qt's graphic stack. And then I realized that all of the parts of Qt that I was tossing with the exception
to QtOpenGL, Qt is only keeping because the Qt community will freak otherwise.

I decided to toss QtOpenGL because it has really really bad performance, QtOpenGL is meant to be a general all in one solution. I on the other
hand use three different OpenGL context's. One GL Context for plain OpenGL, One Context optimized for 2D Graphics & Animations  and One Context
optimized for 3D Graphics & Animations. 

Qt uses XML for it's ui files I am working on giving the developer the option of using XML, SVG, JSON, YAML and MessagePack.

Here is what a ui file might look like in XML.

<?xml version="1.0"?>
<Widget id="MainWindow">
        <Widget id="PushButton1">Button</Widget>
</Widget>

There is no CSS parser library that doesn't require the whole freaking Gtk+ framework so instead I do this to style widgets.

{
      "#MainWindow": {
          "background-color": "#000000ff",
          "border-width": "1",
          "border-style": "dotted",
          "border-color": "#00000000",
          "padding": "5",
          "x": "0",
          "y": "0",
          "r": "0",
          "width": "100",
          "height": "50"
      }
}

If you want to have every button widget use the same style then use a class="button or whatever" attribute and define that in your
style sheet. For those that didn't catch on that stylesheet example is nothing more than JSON markup.

Lol sorry didn't mean to make this response sooo long but I couldn't help my self.

Last edited by zester (2012-01-03 11:30:43)

Offline

#153 2012-01-03 12:17:16

sxe
Member
Registered: 2009-06-04
Posts: 103

Re: Quantum Project (KDE4/Qt4 Fork)

Its really interesting to read all that stuff but i have to admit, that i only understand half of what you are talking about. smile
Hopefully you are not trying to much at the same time. No doubt on you skills but trying to much can kill every project (or developer wink ).

Offtopic: What kind of 2d/3d game development have you done? I have a look at game development by myself at the moment, so i'm interested in that topic too.

Offline

#154 2012-01-03 19:58:47

zester
Member
From: Wilkes Barre Pa
Registered: 2011-08-13
Posts: 156
Website

Re: Quantum Project (KDE4/Qt4 Fork)

sxe wrote:

Its really interesting to read all that stuff but i have to admit, that i only understand half of what you are talking about. smile
Hopefully you are not trying to much at the same time. No doubt on you skills but trying to much can kill every project (or developer wink ).

As I go I am writing a document that explains what I am talking about, has drawings and example's to try. You will understand once you
read that. And I agree with you on trying to much. But in this case there is no difference between an Application and a Game. If you can
rotate a 2D game character then you can rotate everything that you can see on your monitor, including Applications, Windows and Widgets. 

sxe wrote:

Offtopic: What kind of 2d/3d game development have you done? I have a look at game development by myself at the moment, so i'm interested in that topic too.

Well I have done a few different types of games from (3D Pacman, Space and Fantasy Rpg's to Survival Horror) no complete games but thats  because
the art takes so long to complete.

This one model took me 3 days and he is still not fully painted and has no animation yet.
1zdr95e.png
Larger View

This one only took me and hour to model, paint and animate. Video of animation
293zwag.png

This one took a week to get the skin texture just right
a0ud5f.png


Anything art related takes forever.

Last edited by zester (2012-01-03 20:08:52)

Offline

#155 2012-01-03 20:46:24

diegoxter
Member
From: Valencia, Venezuela
Registered: 2011-02-19
Posts: 11
Website

Re: Quantum Project (KDE4/Qt4 Fork)

The larvae video is awesome!
Great models!


"In brightest days, In darkest nights, no evil shall escape my sight!" Sheldon Cooper cuoting Green Lantern.

Offline

#156 2012-01-03 22:14:42

sxe
Member
Registered: 2009-06-04
Posts: 103

Re: Quantum Project (KDE4/Qt4 Fork)

Oh sick, is there anything you are not good at? I bet you cannot sing. wink

Offline

#157 2012-01-03 23:04:37

zester
Member
From: Wilkes Barre Pa
Registered: 2011-08-13
Posts: 156
Website

Re: Quantum Project (KDE4/Qt4 Fork)

sxe wrote:

Oh sick, is there anything you are not good at? I bet you cannot sing. wink

Your right I can't sing, dance or play any instruments. I have no natural talent other than problem
solving.

Offline

#158 2012-01-04 03:15:32

zester
Member
From: Wilkes Barre Pa
Registered: 2011-08-13
Posts: 156
Website

Re: Quantum Project (KDE4/Qt4 Fork)

I love this quote from the ZeroMQ project.

Programming is a science dressed up as art, because most of us don't understand the physics of software, and it's rarely if ever taught. The physics of software is not algorithms, data structures, languages and abstractions. These are just tools we make, use, throw away. The real physics of software is the physics of people.

Specifically, our limitations when it comes to complexity, and our desire to work together to solve large problems in pieces. This is the science of programming: make building blocks that people can understand and use easily, and people will work together to solve the very largest problems.

Offline

#159 2012-01-07 02:20:31

zester
Member
From: Wilkes Barre Pa
Registered: 2011-08-13
Posts: 156
Website

Re: Quantum Project (KDE4/Qt4 Fork)

Figure I could post an update.


Project Manual & Widget Model/Style Prototype.
-------------------------------------------------------------------
I have been working on the project manual, it's built entirely in XML and styled in JSON instead of CSS,
not only is the manual easily parsed with any language that has a XML/JSON parser. But this also
serves as a prototype on how you could layout an application for the display server in XML and theme
it in JSON.

This is the schematic for the display server,
This is probably what X would look like if it was
built today.
alix4p.png
Larger View

The whole project is broken up into modules and sub-modules.
Ideally you would have team's dedicated to developing a particular module,
instead of the whole server at once. This makes it alot easier to not only
develop and maintain the project but also to swap out modules for others.
vidzcz.png
Larger View

The docs are easily theme-able just in case you don't like this style
there will others to choose from.



Paint Brush Library
-------------------------------
I pulled mypaints brushlib and I am working on replacing what gtk specific code there is,
And getting the lib read to be able to be used globaly. This would be usefull if you wanted to
send some one and e-mail with a nice picture you drew. You could just draw the picture right in
the e-mail and send it. Or you could just build a mypaint clone. All mypaints brushes are also usable.


Computer Vision and Point Clouds
-------------------------------------------
I have a working example of head tracking working this is cool to use in a game where you want to sync
your games camera to the motions you make with your head. Example if you make a motion with your head
like you would if you were looking around a corner your games camera will simulate that.

I also have a working example of Augmented Reality this is useful if you have a pair of video glasses you could
throw a black piece of paper on the floor and your game scene would be projected onto the floor.

Another cool example I have been working on is Point Clouds, there used in 3D printing. An example of there usage
would be if you had a 3D model of earth that was to scale. Using a diy drone quadrocopter that had gps and a camera
you could scan in images of the terrain and buildings you came in contact with and using the point cloud library  create 3d textured models. Point Clouds like Computer Vision is used alot in robotics.


Also I have example code for just about every conceivable input device that the linux kernel supports. And none
of it uses X. This brings me closer to being on par with wayland in terms of working on KMS.


Alot of what I am doing right now is writing little example on how to do different things and writing tutorials for those examples.
Just to give you an idea, I have one tutorial that teaches you how to load a 3d model you made in blender the whole example
works out of the box and is like 3 lines of code for the model loading section and a total of like 15 lines of code and that covers creating
a window, scene, camera, light, ... but we don't focus on those parts we only focus on the part for loading a 3d model, The other parts are
covered in different tutorials. The goal is to have tutorials like that for every Library, Class, Function that I use.

Last edited by zester (2012-01-07 02:42:12)

Offline

#160 2012-01-07 09:49:15

sxe
Member
Registered: 2009-06-04
Posts: 103

Re: Quantum Project (KDE4/Qt4 Fork)

Sounds great, could you please upload bigger images? Especially the first one is hardly readable.

Offline

#161 2012-01-07 16:47:25

zester
Member
From: Wilkes Barre Pa
Registered: 2011-08-13
Posts: 156
Website

Re: Quantum Project (KDE4/Qt4 Fork)

sxe wrote:

Sounds great, could you please upload bigger images? Especially the first one is hardly readable.

Sorry about that thought the image was bigger. Here is a larger image of that diagram
Larger View

There are some important key parts missing in the diagram that I will add later.

A. What 2D Graphics Engines  are supported for creating widgets, graphics or whatever?
  1. Qt's Paint System (Graphics, Images, Text, Svg) - Fully working
  2. Cairo and  Pixman - Fully working
  3. Googles Skia - Partially Working (Having trouble with Image and Text)
  4. ImageMagick & GraphicsMagick - Fully Working (With some troubles with alpha transparency)
  5. Imlib2, AGG, Adobe GIL - Haven't even tried to get them working yet.
 

B. What 3D Graphics Engines are supported.
  1. OpenSceneGraph - Fully Working
  2. Horde3D - Partially Working (Everything seams to work overlays display no errors but models not displaying.)
  3. Ogre3D - Not Working (Ogre is tightly coupled to the window system making it really hard to get it in a opengl context)
  4. Irrlicht - Not Working (Same problem as with Ogre3D)


C. What General Graphics Engine's are supported
  1. OpenCV - Fully Working


D. What Multimedia (Audio/Video) is supported
  1. FFMPEG (Libavformat/libavcodec) - Fully Working in OpenSceneGraph
      Note: Working on getting FFMPEG support for all engines.
  2. Libtheora & Libvorbis & Libogg - Was working on SFML2 textures but it broke when I updated arch
      trying to track down the error.
  3. Many common audio formats work out of the box with SFML2

      Multimedia (Audio/Video) formats are a topic of its own ill save for later because I would like to write up something detailed.


E. What Image Formats are Supported
  1. Depends on the support library you are using (Qt, Cairo, Skia support the most common formats, SFML2 has support for some image formats used in games
   and Magick++ (GraphicsMagick) supports over 100+ image formats)

   Image formats are a topic of its own ill save for later because I would like to write up something detailed.


F. Passing data from client to server whats supported?
   1. XML, JSON, YAML, Message Pack, Google Protocol Buffers - Fully working
   2. Encryption and Compression for the above formats - Fully working
   3. Shared Memory and Threads - Fully working
   
   Note: We are not limited to the above, basically it doesn't matter  what data is sent from (server to server, client to server, client to client)
   or how it's sent we just need to tell the receiving end what protocol/port to listen on and what we are sending.



Note: None of this mean that the display system is full working, The above are example programs that all need to be combined into a unified api that
I will then use to start building the system.  I don't even need to have Cairo, Skia, ... working because Qt's paint system works great but there might be others who
want to know how to use Cairo or Skia in OpenGL for what ever reason. That also doesn't mean that any of the above librarys are required to be installed the
system is being designed to be modular it will use the librarys installed.

Last edited by zester (2012-01-07 18:22:18)

Offline

#162 2012-01-08 14:19:53

triplesquarednine
Member
Registered: 2011-04-12
Posts: 630

Re: Quantum Project (KDE4/Qt4 Fork)

This looks really cool, Zester.

I'm very interested in trying this out, once you make some sort of release of your latest code. I've been checking in on this thread from time to time, for a while now (a few months) ~ When do you think you might have a working (pre-alpha?) release for us to try out?

I could see this being a good desktop for my proaudio stuff, assuming their will be some decent ways for managing applications + workspaces ~ i currently use compiz. ie: scale / expo / grid / etc plugins ...

cheerz

Offline

#163 2012-01-08 18:26:34

zester
Member
From: Wilkes Barre Pa
Registered: 2011-08-13
Posts: 156
Website

Re: Quantum Project (KDE4/Qt4 Fork)

triplesquarednine wrote:

This looks really cool, Zester.

I'm very interested in trying this out, once you make some sort of release of your latest code. I've been checking in on this thread from time to time, for a while now (a few months) ~ When do you think you might have a working (pre-alpha?) release for us to try out?

I could see this being a good desktop for my proaudio stuff, assuming their will be some decent ways for managing applications + workspaces ~ i currently use compiz. ie: scale / expo / grid / etc plugins ...

cheerz

It's hard to say, what I can tell you is that I wake up at 8AM and work on it 11:30PM to 12 AM that's around 16 hours a day
and I do that everyday and have been for quite some time now. I really don't focus on just one area I am actually interested
in every area. If your a c++ programmer interested in stuff like this, then you would see stuff sooner than the end user.

This is actually a whole new project and the only people that have any idea, that anyone is even doing anything like this
is the ones that actually read this topic regularly. Soon I hope to have a website up soooo I can go around and do make
the project known.

This is what I am using for proaudio...

RtAudio http://www.music.mcgill.ca/~gary/rtaudio/
RtMidi http://www.music.mcgill.ca/~gary/rtmidi/
STK https://ccrma.stanford.edu/software/stk/index.html
VAMP http://vamp-plugins.org/

Offline

#164 2012-01-09 17:57:26

saito
Member
Registered: 2012-01-09
Posts: 1

Re: Quantum Project (KDE4/Qt4 Fork)

hey, zester.

I have been following your thread. you have some nice ideas and the willingness to implement them.

I am also willing to join you (help and code together).

There are only two premisses:
1) I will be available in a month or so.
2) I will need to talk to you (i.e. irc) and gain a broader perspective on your ideas as I am not sure I gather the full scope of your efforts (last few posts).

Additionally, I have some ideas of my own. Maybe we can discuss them. But let's see how it goes.

Let me know what you think.
saito

Offline

#165 2012-01-11 14:25:04

zester
Member
From: Wilkes Barre Pa
Registered: 2011-08-13
Posts: 156
Website

Re: Quantum Project (KDE4/Qt4 Fork)

saito wrote:

hey, zester.

I have been following your thread. you have some nice ideas and the willingness to implement them.

I am also willing to join you (help and code together).

There are only two premisses:
1) I will be available in a month or so.
2) I will need to talk to you (i.e. irc) and gain a broader perspective on your ideas as I am not sure I gather the full scope of your efforts (last few posts).

Additionally, I have some ideas of my own. Maybe we can discuss them. But let's see how it goes.

Let me know what you think.
saito

Sure you can email me at steven.l.starr@gmail.com

Offline

#166 2012-01-11 17:28:34

zester
Member
From: Wilkes Barre Pa
Registered: 2011-08-13
Posts: 156
Website

Re: Quantum Project (KDE4/Qt4 Fork)

For those interested, I am working on the (SceneGraph with Signal/Slot support using  Poco C++ Librarys)

The Poco C++ Library's are a light weight alternative to (QtCore, QtNetwork, QtSql, QtXml) or Boost
Has a bunch of different build configurations but the one's I am interested in are ....

  • Linux

  • ARM-Linux

  • Android

  • FreeBSD

  • Mac

  • iPhone

  • iPhoneSimulator

  • Windows

Has no dependencies other than your standard C library with the exception for
the XML and Database(SQL) modules. Note: The SceneGraph doesn't use XML or a Database
that was just a feature comparison.

The SceneGraph is used for the Display Server, Client Applications and doesn't depend on any particular
Graphics Library. Will work with OpenGL, OpenGL ES, QPainter, Cairo & Pixman, .... , or No Graphics Library at all!

Use cases for the Display Server...
1. Keeping track of all Open Windows/Applications
2. Keeping track of Window Stacking Order(Layer), Size, Position, Rotation, ...
3. Session Management
4. ...

Use cases for a Client Application...
1. Keeping track of all child Widgets an Application has (Buttons, Sliders, Combo Boxes, ....) 
2. Keeping track of Widget Stacking Order(Layer), Size, Position, Rotation, ...
3. ...

Can be used for 2D Games or even rendering for a custom Office Suite.

Note: Usage for a 3D application is minimal it all depends on what your doing, that's mainly
because we are using a std::vector container to hold our data. And for a 3D game you would
more than likely want to use an octree or kdtree container.

Currently the SceneGraph can...
1. Get it's parent object.
2. Set it's parent object.
3. Add child object's.
4. Remove child object's.
5. Set an objects name.
6. Get objects name.
7. Search for an object by it's name.
8. Get a list of all child object's.
9. Get and Set object's (X & Y Position, Width & Height, Rotation and Layer)

Nice thing about this approach is that Adding a Button to a Gui Application, or Adding a Sprite to a Game
or parenting a Child(Application) to a Root(Window) for a Window Manager, all uses the same concept and
api.


Desktop Panel Example:
Note: This is just an example of
how you might do something like this eventually.

int main()
{
    // Create Application Window
    Widget mainWindow;

    // Get a reference to the Display Server 
    Widget mwParent = mainWindow.getParent();

    // Set mainWindow's size and position on the desktop.
    mainWindow.setSize(mwParent.getWidth(), 50);
    mainWindow.setPosition(0, mwParent.getHeight() -50);

    // Create Horizontal Layout Container & add it to mainWindow
    HLayout hLayout;
    mainWindow.addLayout(hLayout);

    // Get all of the Display Servers Children(windows), create a button for each one and 
    // add the button to hLayout.
    for (i = 0;   i  < mwParent.getChildCount();   i++) {
       hLayout.addWidget(new Widget(mwParent.getChildIcon(i), mwParent.getChildTitle(i));
    }
  
    // If we wanted to reparent our window to one allready on the desktop.

    // Get a reference to an application already created(Desktop Panel at top of display) and reparent 
    // our window we just created to that. Note: when we do this the window we just created, its
    // transformations(Size and Position) are cleared.
    
    mainWindow.setParent(mwParent.getChildByName("TopDesktopPanel"));  
     
    // If we wanted to parent our window to a specific widget in the Top Desktop Panel we might ...
    Widget mwParentChild = mwParent.getChildByName("TopDesktopPanel");
    mainWindow.setParent(mwParentChild.getChildByName("hLayout"));  

    mainWindow.show();
}

Simple and strait forward.... smile

Last edited by zester (2012-01-11 17:57:52)

Offline

#167 2012-01-11 18:46:36

zester
Member
From: Wilkes Barre Pa
Registered: 2011-08-13
Posts: 156
Website

Re: Quantum Project (KDE4/Qt4 Fork)

If your wondering how my Prototype Hydra Display Server compairs to Wayland.

Hydra:
    The Good.
        1. 3,865 times faster than Wayland's best benchmark
        2. Network Transparent
        3. Supports rendering via OpenGL or OpenGL ES
        4. Providing remote access via "rendering command stream"
        5. Focuses on NextGen and Best of the Best Tech.
        6. Can make use of (Cuda, or Vendor Provided OpenCL Drivers)
        7. Hardware and Software Acceleration Supported
       
    The Bad.
        1. Largely Incomplete
        2. Doesn't support legacy  (Gui Toolkits, Applications or Features)
        3. Only guarantee's supports for (Nvidia, Ati, Intel, PowerVR, ...) Drivers


Wayland:
    The Good.
        1. Largely Complete
        2. Supports Legacy (Gui Toolkits, Applications and Features)
        3. Supports lots of different open source video drivers

    The Bad.
        1. Very poor performance.
        2. Doesn't  support (Nvidia, Ati, PowerVR Binary Drivers)
        3. Doesn't have network transparency yet.
        4. Doesn't support remote access yet.
        5. Currently only supports rendering via OpenGL ES
        6. Can make use of (Software based OpenCL only)
        7. Only Supports software acceleration.


It really depends on the person and your own personal tastes. I personally pay alot of money for my nvidia cards so I want to be able to use every feature
possible that the  card provides, regardless if the driver is closed source or not.

Last edited by zester (2012-01-11 18:59:01)

Offline

#168 2012-01-11 19:33:19

zester
Member
From: Wilkes Barre Pa
Registered: 2011-08-13
Posts: 156
Website

Re: Quantum Project (KDE4/Qt4 Fork)

And one last post for the day.

I would like to introduce to you some cool library's that I am using.
There all Graphics related, and used in house by Disney, Sony Imageworks and Lucas Films.

There also all opensource BSD licensed.


These are some of the NextGen "pimp-slap" Wayland, Qt, Gtk+, Kde, Gnome features I was talking about.


OpenImageIO

OpenImageIO is a library for reading and writing images, and a bunch of related classes, utilities, and applications. Main features include:

Extremely simple but powerful ImageInput and ImageOutput APIs for reading and writing 2D images that is format agnostic -- that is, a "client app"
doesn't need to know the details about any particular image file formats. Specific formats are implemented by DLL/DSO plugins.

Format plugins for TIFF, JPEG/JFIF, OpenEXR, PNG, HDR/RGBE, Targa, JPEG-2000, DPX, Cineon, FITS, BMP, ICO, RMan Zfile, Softimage PIC, DDS, SGI, PNM/PPM/PGM/PBM, Field3d, WebP. PTex, More coming! The plugins are really good at understanding all the strange corners of the image formats, and are very careful about preserving image metadata (including Exif, GPS, and IPTC data).

An ImageCache class that transparently manages a cache so that it can access truly vast amounts of image data (thousands of image files totaling hundreds of GB) very efficiently using only a tiny amount (tens of megabytes at most) of runtime memory. Additionally, a TextureSystem class provides filtered MIP-map texture lookups, atop the nice caching behavior of ImageCache.

Available under the BSD license, so you may modify it and use it in both open source or proprietary apps.


OpenColorIO

OpenColorIO (OCIO) is a complete color management solution geared towards motion picture production with an emphasis on visual effects and computer animation. OCIO provides a straightforward and consistent user-experience across all supporting applications while allowing for sophisticated back-end configuration options suitable for high end production usage. OCIO is compatible with the Academy Color Encoding Specification (ACES) and is LUT format agnostic supporting many popular formats.

OpenColorIO is released as version 1.0 and has been in development since 2003. OCIO represents the culmination of years of production experience earned on such films as SpiderMan 2 (2004), Surf’s Up (2007), Cloudy with a Chance of Meatballs (2009), Alice in Wonderland (2010), and many more. OpenColorIO is natively supported in commercial applications like Katana, Mari, Silhouette FX and others coming soon.

OpenColorIO is free and is one of several open source projects actively sponsored by Sony Imageworks.

Available under the BSD license, so you may modify it and use it in both open source or proprietary apps.


PTex

Ptex is a texture mapping system developed by Walt Disney Animation Studios for production-quality rendering:

Ptex was used on virtually every surface in the feature film Bolt, and is now the primary texture mapping method for all
productions at Walt Disney Animation Studios.

No UV assignment is required! Ptex applies a separate texture to each face of a subdivision or polygon mesh.

The Ptex file format can efficiently store hundreds of thousands of texture images in a single file.

The Ptex API provides cached file I/O and high-quality filtering - everything that is needed to easily add Ptex support
to a production-quality renderer or texture authoring application.

Available under the BSD license, so you may modify it and use it in both open source or proprietary apps.



Alembic

Alembic is an open computer graphics interchange framework. It contains tools for collaboration management and a generic,
extensible, data representation scheme. Alembic distills complex, animated, scenes into non-procedural, application-independent,
baked geometric results. This distillation of scenes into baked geometry is exactly analogous to the distillation of lighting and
rendering scenes into rendered image data.

Alembic is being used on the new (Men in Black 3, The Amazing Spiderman, Arthur Chrismas)

Alembic is focused on efficiently storing the computed results of complex procedural geometric constructions. It is very specifically not
concerned with storing the complex dependency graph of procedural tools used to create the computed results. For example, Alembic
will efficiently store the animated vertex positions and animated transforms that result from an arbitrarily complex animation and
simulation process, one which could involve enveloping, corrective shapes, volume-preserving simulations, cloth and flesh simulations,
and so on. Alembic will not attempt to store a representation of the network of computations (rigs, basically) which were required to
produce the final, animated vertex positions and animated transforms.

Available under the BSD license, so you may modify it and use it in both open source or proprietary apps.

Last edited by zester (2012-01-11 19:40:37)

Offline

#169 2012-01-11 19:43:36

sxe
Member
Registered: 2009-06-04
Posts: 103

Re: Quantum Project (KDE4/Qt4 Fork)

Why is the performance of your prototype that much better compared to wayland and X?
I mean, i cannot believe the other devs are simply to stupid. wink Is it because of the compatibility they have to keep?

Offline

#170 2012-01-11 20:05:30

zester
Member
From: Wilkes Barre Pa
Registered: 2011-08-13
Posts: 156
Website

Re: Quantum Project (KDE4/Qt4 Fork)

sxe wrote:

Why is the performance of your prototype that much better compared to wayland and X?
I mean, i cannot believe the other devs are simply to stupid. wink Is it because of the compatibility they have to keep?

1. X is software accelerated and renders at like 24 - 30 frames per sec.
2. Wayland doesn't support hardware acceleration via Ati, Nvidia closed source drivers. It uses Mesa's OpenGL ES
and even on the desktop that is slow.


3. I am rendering via Hardware Accelerated OpenGL(Nvidia, Ati Drivers) sitting on a single X root window.
4. If I was rendering via Mesa OpenGL ES on KMS then the performance would be as bad as waylands also.
5. And yes its because of the legacy compatibility.
6. I am using a faster networking library than X or Wayland to communicate with my display server.

It just comes down to Drivers and the Transport Protocol. But honestly we both are at opposite ends trying to reach the same point. smile 
There top priority was my bottom priority and vise-verse.

There priority is the opensource Nvidia(Nouveau)/Ati drivers. Me I can't get any of my Nvidia card's to work with the Nouveau driver.


Sooooo

Nouveau + Software Mesa OpenGL ES + Wayland IPC mechanism(Re-Implementation of X protocol)
vs
Binary Nvidia Driver + OpenGL + ZeroMQ(Fastest Networking (INPROC & IPC) Library on the planet)

And instead of supporting rendering Gtk+ or Qt's widget frameworks, I only support there Raster/Vector paint api's
soooo I am getting rid of alot of overhead.



In one way that sucks but in another that is good. 

For instance getting a OpenSceneGraph window in a Hydra app is like 15 lines of code and works with
the displays internal threading.

now doing the same with Qt

Is over 300 lines of code and Qt's threading model conflicts with OpenSceneGraphs so you have to
drop in some extra boiler-plating.

I only have to render via OpenGL

Qt has to render its XLIB/XCB code then go threw the whole thread syncing
and then renders the OpenGL code.


So I was like screw all that ....


Also out of the box I am only supporting the best features...

Example: Png, WebP, Exr, Ptex, WebM(VP8 & Vorbis), Theora,
Dirac, Flac, Speex, Vorbis, Ogg, Matroska. Alembic

That covers your Standard and HD (Audio / Video/ Image) Codecs & Containers
and Image alone there all Lossless so you can convert Png to WebP to Exr or in reverse
with no loss in quality.

I still need a General Mesh and Archival Mesh format (OpenCTM and Collada) come to mind.

Soo 3D Model formats might be....
Collada:  Archival/Conversion Format(You convert Collada to Alembic or OpenCTM)
Alembic: for Video/Animation Production
OpenCTM: for Games

Just need a Bone System now and we would be set.

Last edited by zester (2012-01-11 21:07:32)

Offline

#171 2012-01-11 22:00:22

zester
Member
From: Wilkes Barre Pa
Registered: 2011-08-13
Posts: 156
Website

Re: Quantum Project (KDE4/Qt4 Fork)

Crap I forgot to mention the differences of Wayland and Hydras performance on X

Wayland uses only OpenGL ES for rendering, the only way to use OpenGL ES on the
desktop is with Mesa that goes for any system Windows, Mac, Linux unless you have
a driver that supports OpenGL ES like the PowerVR driver that comes with BeagleBoard,
Gumstix, iPhone, Android, ..... It's a mobile only thing.  Well Mesa is software only you
can get hardware acceleration via the opensource nvidia driver I think.  But that doesn't compare
to Nvidia or Ati's binary driver.

So as you can see being that waylands rendering api is OpenGL ES only at the moment the only
way they can even render anything on the desktop is with Mesa and that is purely a software only library.

I can do OpenGL ES also but my situation with that is the same as waylands, so I only use OpenGL
for the desktop and OpenGL ES for Mobile

They use OpenGL ES on KMS because its alot faster. I am not sure how well full OpenGL works on KMS or
if it does at all. I havent seen a single artical/tutorial/example code on full OpenGL on KMS on the net.






Sorry I drank wayyyyyy toooo much coffee today, can you tell?

Last edited by zester (2012-01-11 22:04:46)

Offline

#172 2012-01-11 22:32:51

zester
Member
From: Wilkes Barre Pa
Registered: 2011-08-13
Posts: 156
Website

Re: Quantum Project (KDE4/Qt4 Fork)

I just couldn't resist.... Here is a little rant

Did you ever wonder why we don't have any opensource games/screensavers/art based on characters like

1. Cinderella
2. Snow White & the seven dwarfs
3. Alice in Wonderland
4. Winnie the Pooh
5. .....

You might say well Disney will sue you!


Ummmm wrong Disney has zero rights to any of those characters or even 90% of the characters in there movies or
that there know for. Only one of the storyline's on that list actually has an owner and that's Winnie the Pooh those rights
are held by the original authors family. And they are not going to sue you for making and opensource child's game, wallpaper,
screensaver. And even if you make a closed source application the royalty's  are like 2% of profit.


This is what we call a Misconception of a Pre-Conceived Notion.

Last edited by zester (2012-01-11 22:34:30)

Offline

#173 2012-01-11 23:46:18

Diaz
Member
From: Portugal
Registered: 2008-04-16
Posts: 366

Re: Quantum Project (KDE4/Qt4 Fork)

It would be a good idea to read about your ideas and all the development stuff in a blog. have you though about it? I'd put it imediatly in my feeds reader wink

I think what you're doing is really interesting and just sharing with the arch community is not enough ^^

Offline

#174 2012-01-12 00:27:15

zester
Member
From: Wilkes Barre Pa
Registered: 2011-08-13
Posts: 156
Website

Re: Quantum Project (KDE4/Qt4 Fork)

Diaz wrote:

It would be a good idea to read about your ideas and all the development stuff in a blog. have you though about it? I'd put it imediatly in my feeds reader wink

I think what you're doing is really interesting and just sharing with the arch community is not enough ^^

http://zestersblog.blogspot.com/

Offline

#175 2012-01-12 00:40:30

Teho
Member
Registered: 2010-01-30
Posts: 200

Re: Quantum Project (KDE4/Qt4 Fork)

How would Hydra project work on existing distributions in relation to toolkits, display servers, session managers, desktop environments etc? The project seems somewhat interesting but I still cannot fully grasp what it tries to accomplish.

Offline

Board footer

Powered by FluxBB