On Mon, Dec 3, 2012 at 11:39 PM, David Seikel <onef...@gmail.com> wrote:
> On Sun, 2 Dec 2012 12:25:40 +1000 David Seikel <onef...@gmail.com>
> wrote:
>
>> On Sat, 1 Dec 2012 18:19:52 -0200 Bruno Dilly <bdi...@profusion.mobi>
>> wrote:
>>
>> > On Sat, Dec 1, 2012 at 3:41 AM, David Seikel <onef...@gmail.com>
>> > wrote:
>> > > On Wed, 28 Nov 2012 13:15:42 -0200 Bruno Dilly
>> > > <bdi...@profusion.mobi> wrote:
>> > >
>> > >> On Wed, Nov 28, 2012 at 11:30 AM, David Seikel
>> > >> <onef...@gmail.com> wrote:
>> > >> > On Wed, 28 Nov 2012 10:46:00 -0200 Bruno Dilly
>> > >> > <bdi...@profusion.mobi> wrote:
>> > >> >
>> > >> >> On Mon, Nov 26, 2012 at 10:59 PM, David Seikel
>> > >> >> <onef...@gmail.com> wrote:
>> > >> >> > On Mon, 26 Nov 2012 14:55:26 -0200 Bruno Dilly
>> > >> >> > <bdi...@profusion.mobi> wrote:
>> > >> >> >
>> > >> >> >> Hi David,
>> > >> >> >>
>> > >> >> >> On Mon, Nov 26, 2012 at 1:36 PM, David Seikel
>> > >> >> >> <onef...@gmail.com> wrote:
>> > >> >> >> > On Mon, 26 Nov 2012 12:47:16 -0200 Bruno Dilly
>> > >> >> >> > <bdi...@profusion.mobi> wrote:
>> > >> >> >> >
>> > >> >> >> >> we're are now making ephysics API more stable, almost
>> > >> >> >> >> all the features intended to go in are already
>> > >> >> >> >> implemented, so we are moving to the next step:
>> > >> >> >> >> adding support to physics on Edje.
>> > >> >> >> >
>> > >> >> >> > I'm gonna take a step back and consider the big picture
>> > >> >> >> > from my own point of view before delving into the
>> > >> >> >> > details.
>> > >> >> >> >
>> > >> >> >> > First the simple question - have you considered Edje Lua
>> > >> >> >> > as well as Embryo?  I'll be happy to write the Edje Lua
>> > >> >> >> > bindings.
>> > >> >> >>
>> > >> >> >> I'm planning to work with Embryo because it's used by most
>> > >> >> >> of the scripts in our repository, and I always pick Embryo
>> > >> >> >> for private projects done here on Profusion, so I know it
>> > >> >> >> much better than Lua. But would be great to support physics
>> > >> >> >> on both.
>> > >> >> >
>> > >> >> > I'll add similar Edje Lua bindings after the Embryo bindings
>> > >> >> > are sorted out.
>> > >> >> >
>> > >> >> >> > Now the hard part.
>> > >> >> >> >
>> > >> >> >> > I'm heavily involved in SecondLife (SL) / OpenSim style
>> > >> >> >> > online 3D virtual worlds.  Think MMOG where the users can
>> > >> >> >> > edit the world in world in real time, and it's not
>> > >> >> >> > really a game, more a generic platform.
>> > >> >> >> >
>> > >> >> >> > I'm working on both client and server side software.  I
>> > >> >> >> > REALLY REALLY want to convert the existing crap client
>> > >> >> >> > and server code into something more sane based on EFL.
>> > >> >> >> > So obviously 3D graphics, 3D physics, and scripting of
>> > >> >> >> > the world are important to me.
>> > >> >> >> >
>> > >> >> >> > Bullet physics I think is the way to go, so I'm on the
>> > >> >> >> > same page here.
>> > >> >> >> >
>> > >> >> >> > I know you have considered 3D stuff, so again, kinda on
>> > >> >> >> > the same page here.  Though I wonder if ephysics is
>> > >> >> >> > suitable for this sort of work?
>> > >> >> >>
>> > >> >> >> EPhysics is focused on 2D games and GUI effects.
>> > >> >> >>
>> > >> >> >> Does it support 3 dimensions ?
>> > >> >> >>
>> > >> >> >> Yes, you can set velocities, impulses, forces in all three
>> > >> >> >> axis. The same for angular stuff. It will move in the 3d
>> > >> >> >> scene, deform in 3 dimensions, collide, etc.
>> > >> >> >>
>> > >> >> >> But... it was not focused on that, so some stuff that is
>> > >> >> >> really easy using ogre, for example,
>> > >> >> >> won't be on EPhysics. Using ogre you can add a new entity
>> > >> >> >> just loading a mesh.
>> > >> >> >
>> > >> >> > I've already been working with a library (libg3d, not to be
>> > >> >> > confused with g3d) for loading arbitrary meshes in dozens of
>> > >> >> > formats, locally or across the network. I'm not sure, but I
>> > >> >> > think Ogre is not so good at that, Irrlicht is a bit better,
>> > >> >> > but libg3d is better still.
>> > >> >> >
>> > >> >> >> Right now we don't support such thing. It's planned to be
>> > >> >> >> done in the future to create shapes.
>> > >> >> >>
>> > >> >> >> But things like applying textures will be harder yet,
>> > >> >> >> that's another thing to be improved
>> > >> >> >> to make ephysics useful for such scenarios. The way it is
>> > >> >> >> now, you would need to create an evas object for each face
>> > >> >> >> you would like to see rendered explicitly. It would
>> > >> >> >> be needed more improvements to set what points of a image
>> > >> >> >> texture would mapped by
>> > >> >> >> each face. And even the support to have evas objects per
>> > >> >> >> face is only implemented
>> > >> >> >> for primitive shapes.
>> > >> >> >
>> > >> >> > Ah, so no UV mapping yet.  Evas object per face means a cube
>> > >> >> > has six of them?  That gets a bit heavy for high poly count
>> > >> >> > arbitrary meshes.  I guess your primitive shapes are simple
>> > >> >> > cubes and things, not SL style proceducal primitives?
>> > >> >>
>> > >> >> Evas map supports only four points.
>> > >> >> So we need an evas object per face.
>> > >> >> For meshes we create many proxies automatically and set to
>> > >> >> parts of the evas object associated to that using
>> > >> >> evas_map_point_image_uv_set
>> > >> >>
>> > >> >> You are right about our primitive shapes.
>> > >> >>
>> > >> >> >
>> > >> >> >> I will make a blog post (dedicated to you =) ) with current
>> > >> >> >> state of ephysics, and what
>> > >> >> >> should be expected until the end of this year. So it would
>> > >> >> >> be easier to see what's is easy to do with it right now,
>> > >> >> >> and it will be more accessible to other people too.
>> > >> >> >
>> > >> >> > I read and commented on that.
>> > >> >> >
>> > >> >> >> >
>> > >> >> >> > For graphics I have been looking at Ogre and Irrlicht.
>> > >> >> >> > Irrlict has my preference at the moment, mostly coz it's
>> > >> >> >> > relatively light weight and has good support for old
>> > >> >> >> > hardware, including a decent software renderer.  People
>> > >> >> >> > using unsuitable hardware for SL is a common problem.
>> > >> >> >> > Typically lots of people use student / business class
>> > >> >> >> > laptops, not the sort of things that are designed for 3D
>> > >> >> >> > games. Irrlicht has it's own 2D GUI stuff, but obviously
>> > >> >> >> > I'd be ripping that out and using EFL.  Perhaps ephysics
>> > >> >> >> > would be a better choice for EFL based software?
>> > >> >> >>
>> > >> >> >> EPhysics has a glue for using Bullet with Evas that will do
>> > >> >> >> the job for most GUI effects
>> > >> >> >> you may want (2D games as well). But for 3D games and
>> > >> >> >> related most probably you'll
>> > >> >> >> be interested in one of this well established 3D engines.
>> > >> >> >> Ogre has OgreBullet to make
>> > >> >> >> it easier to develop stuff using Bullet Physics (not sure
>> > >> >> >> if this project is well maintained).
>> > >> >> >> I know people use to do merge Lua in the recipe as well.
>> > >> >> >
>> > >> >> > I'm guessing ephysics does not have fancy scene management
>> > >> >> > stuff for big scenes, or fancy things like particles, height
>> > >> >> > maps, sky boxes, clouds, etc?
>> > >> >>
>> > >> >> No, nothing of these.
>> > >> >>
>> > >> >> >
>> > >> >> >> I don't know much about Irrlicht.
>> > >> >> >
>> > >> >> > I'll likely experiment with it next weekend.
>> > >> >> >
>> > >> >> >> > So I guess my basic question is - would your ideas for
>> > >> >> >> > ephysics be suitable for online 3D virtual worlds, or is
>> > >> >> >> > it limited to simple, mostly 2D games?  Perhaps some
>> > >> >> >> > combination of ephysics and Irrlicht is the way I should
>> > >> >> >> > go?
>> > >> >> >>
>> > >> >> >> Uhmm... lights can be another limitation. I'm not sure
>> > >> >> >> these engines provide ray tracing,
>> > >> >> >> but we don't. We are stuck to evas map light calculations.
>> > >> >> >> No light reflection, refraction.
>> > >> >> >> Since light don't diffuse when reflecting other surfaces
>> > >> >> >> makes the contrast of light / shadow
>> > >> >> >> a bit ugly for such cases. Bodies between the light source
>> > >> >> >> and others won't produce shadows
>> > >> >> >> as well.
>> > >> >> >
>> > >> >> > Proper raytracing is usually not used for real time stuff,
>> > >> >> > but it's starting to come.  SL needs water reflections and
>> > >> >> > refraction, and only recently got proper shadows.  Ogre does
>> > >> >> > great water, not sure about Irrlicht yet.
>> > >> >> >
>> > >> >> >> We just support a single camera right now, no zoom in / out
>> > >> >> >> support, rotation ,etc. I know
>> > >> >> >> blender support such things. It's doable, but it's not
>> > >> >> >> planned to be done for now.
>> > >> >> >
>> > >> >> > One of the good things about SL is it's camera controls.  I
>> > >> >> > pride myself in being expert with them, so this is very
>> > >> >> > important to me.
>> > >> >> >
>> > >> >> >> I've never worked with any 3d engine, so not sure how far
>> > >> >> >> we are of the state of art of such
>> > >> >> >> frameworks, and what features you would need. If you will
>> > >> >> >> have time to work on EPhysics / Evas
>> > >> >> >> to support your needs, I'm here to help, but I'm not sure
>> > >> >> >> how far we could go to satisfy your needs
>> > >> >> >> and can be a bit frustrating for you if you have to migrate
>> > >> >> >> to Irrlicht after all.
>> > >> >> >>
>> > >> >> >> When you study a bit more about Ogre / Irrlicht and I show
>> > >> >> >> the current status of EPhysics we could evolve with this
>> > >> >> >> discussion and evaluate how far we could go.
>> > >> >> >>
>> > >> >> >> I can't see how EPhysics would help you using these
>> > >> >> >> graphical engines. If you are going to use Irrlicht or
>> > >> >> >> Ogre, I would say to forget about EPhysics.
>> > >> >> >
>> > >> >> > Well, my intention is to EFLize the SL stuff.  That includes
>> > >> >> > integrating some decent 3D graphics engine.  I'll look at
>> > >> >> > things like Irrlicht and the other stuff I'm looking at.
>> > >> >> > Might be a good idea to merge them with ephysics.  I suspect
>> > >> >> > Irrlicht and ephysics could complement each other, no reason
>> > >> >> > why the GUI can't have physics as well as the complex 3D
>> > >> >> > world it's on top of.  B-)
>> > >> >>
>> > >> >> Yeah, you may be correct.
>> > >> >> We can try to elaborate more about what these libraries
>> > >> >> provide and that could be
>> > >> >> added to ephysics or evas.
>> > >> >>
>> > >> >> But for the next weeks I'll be focused on Edje.
>> > >> >
>> > >> > Fair enough.  Nothing is moving quickly for me anyway, so no
>> > >> > hurry.
>> > >>
>> > >> oh, nice
>> > >>
>> > >> >
>> > >> >> When do you plan to start to EFLize the SL stuff ?
>> > >> >
>> > >> > I started last December and January with the EFL based LSL
>> > >> > script engine.  That progressed quite fast, but got held up on
>> > >> > the actual interfacing to the existing OpenSim system.  The
>> > >> > person that said they where going to do that vanished.
>> > >> > OpenSim is C#, and I really was looking forward to someone
>> > >> > else handling that side of things. I don't like C# much.  lol
>> > >> >
>> > >> > Guess I'll have to do the C# stuff myself.  Oh well.
>> > >> >
>> > >> > Since then I've mostly been busy with paid work and other
>> > >> > things. Slowly but surely I'm getting back into SL stuff.
>> > >> > That's why I plan on starting to work with Irrlicht next
>> > >> > weekend, see if I can embed it into an Elementary window.
>> > >> > Can't call it Errlicht, that name is already taken for the
>> > >> > Eiffel bindings for Irrlicht.
>> > >>
>> > >> yeah, it would be a good name, indeed.
>> > >>
>> > >> >
>> > >> > I did manage a prototype SL user / grid manager with a little
>> > >> > animated 3D image in elementary though.  I think it bit rotted.
>> > >> >
>> > >> > Also, I had ephysics and effb compiled on Ubuntu 10.04, but now
>> > >> > that I've upgraded to 12.04 it wont compile.  Mind you there
>> > >> > seems to be four basic ways to compile bullet, maybe I picked
>> > >> > the wrong one? I'll have to try that again soon.  I'll aim for
>> > >> > an elementary window with Irrlicht 3D world and ephysics 2D GUI
>> > >> > soon, even if it does not do much.
>> > >>
>> > >> I'm using ubuntu 12.04 too, and it is working fine (I'm using
>> > >> bullet rev2537). Built with cmake, looks like autotools is not
>> > >> well maintained.
>> > >
>> > > I'm using the latest release of Bullet 2.81 rev2613.  There were
>> > > warnings that using GLUT was obsolete, and that I should use
>> > > OpenGL instead, even though it detected both.  You would think it
>> > > would just use OpenGL then.  Told it to not use GLUT, and now
>> > > ephysics compiles and runs fine.  I also installed OpenCL for it
>> > > to use, but I don't think that's why it failed last time.  Yes,
>> > > built with cmake.
>> > >
>> > > Now it's the weekend, I'll squish together Elementary, ephysics,
>> > > Irrlicht, and other stuff to see what I can get.
>> >
>> > Oh, good news =)
>
> Just to keep you informed, since you seemed interested, here is the
> results of my weekends experiments.

Yeah, I'm interested, indeed.

>
> Adding ephysics and Irrlicht source code into my existing Elementary
> test bed worked out well, except for one major problem.
>
> Since that proggy had not been worked on for some time, it had bit
> rotted after changes to Elementary, so I had to fix that up first.
> Elementary itself had bit rotted, it grew a new bug, which I reported,
> and apparently discomfiter had already reported.  Perhaps the recent
> naviframe changes fixed that now?  I'll update SVN later and see.
>
> Then I cut and pasted stuff from the ephysics no gravity test, so there
> was something with ongoing activity to test with.  That went smoothly.
> I changed it to reuse the existing main window, and to use the size of
> that window, not the hard coded sizes no gravity test had originally.
> The result is two ephysics objects slowly bouncing around on top of the
> Elementary widgets, and bouncing off each other, all in one window.
> Note, one of those Elementary widgets is an OpenGL widget for testing,
> since I knew I'd be adding 3D stuff to it eventually.
>
> Finally I grafted the Irrlicht hello world tutorial onto this proggy.
> It involves a loop animated woman and a bit of GUI that says "hello
> world".  I removed the GUI bit, since the whole point of this is to use
> EFL as the GUI, leaving the mesh women.  I split the hello world main()
> routine up into bits (init(), render(), shutdown()), got rid of the
> main(), and called the bits from the right places in my main C proggy.
> Irrlicht does not have a main loop, you are expected to write your own,
> so it fits in well with EFLs implicit main loop.  I just added the
> render code from the examples main loop to the callback that renders the
> Elementary 3D widget.  Irrlicht, like Bullet, is a C++ library, so
> their hello world proggy is C++.  So now my proggy has a C and a C++
> file.  I left the Irrlicht stuff with it's own window.  This worked
> well.
>
> Now for the major problem.  Both EFL and Irrlicht are cross platform
> libraries that jealously guard their inner windows.  So there was no
> easy method to get EFL and Irrlicht to both share the one window.  I've
> not yet found a way to get to the raw windows pointers used by EFL,
> though Irrlicht does have a way to get that.  I've not found any way to
> tell EFL "use this window I already made".  Irrlicht has a way of using
> an externally created window, but the docs say it only supports MS
> Windows for now.  I assume this means Linux and Mac support for that is
> planned.  The main Irrlicht developer is a MS Windows developer, so
> Windows versions have a tendency to get implemented first.  There are
> more Irrlicht developers now, and I think one of them at least tends to
> do Linux stuff first.  What I would prefer is to have EFL manage the
> window, and have Irrlicht just use the EFL created one.
>
> So the end result is one program, two source files (C and C++), two
> windows (EFL and Irrlicht).  One shared window is the goal, then I can
> see how to get all this stuff to interact with each other.  With a
> Irrlicht based 3D world as the background, Elementary widgets over the
> top for the GUI, and ephysics to get them to bounce off each other.
> It's entirely possible that some in world objects could be ephysics
> objects at least part time, I'll see once I have it all interacting and
> get to the "actually make the thing useful" stage.
>
> I'm still investigating solutions for this shared window problem, but
> the weekend is over and I got a busy week to deal with now.  Something
> for next weekend.
>
> My end goal, if I can get EFL and Irrlicht to play nice with each
> other, will be to integrate them.  I suspect the best way would be
> similar to ephysics, write a C EFL wrapper around the C++ Irrlicht

Right, I suppose it would be the way to go.

> library.  Irrlicht is very easy to use, cross platform, has a decent
> software renderer, and you can extend it for those things it can't do.

Thank you for the email, and good luck with the shared window issue.
I couldn't propose a solution for that. I would need to investigate it
better too.

Regards

>
> --
> A big old stinking pile of genius that no one wants
> coz there are too many silver coated monkeys in the world.
>
> ------------------------------------------------------------------------------
> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> Remotely access PCs and mobile devices and provide instant support
> Improve your efficiency, and focus on delivering more value-add services
> Discover what IT Professionals Know. Rescue delivers
> http://p.sf.net/sfu/logmein_12329d2d
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>



-- 
Bruno Dilly
Lead Developer
ProFUSION embedded systems
http://profusion.mobi

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to