On Wed, 20 Jul 2016 14:23:37 +0000 Oleksander Zazubrina
<cf...@outlook.com> wrote:

> Hello, everyone.
> 
> 
> In an attempt to bring physics to Evas.Canvas3D, we got some results,
> see demo's: https://phab.enlightenment.org/M11/25/
> 
> But it also brings some issues, that in my opinion, should be
> revealed.
> 
> 
> First is building dependences between evas and ephysics:
> 
> 1. As evas.canvas3d is a part of evas in current build configuration
> impossible initialise ephysics functions in evas.canvas3d modules,
> that have possibility call need function through evas.canvas3d
> functionality.
> 
>     Exactly, it would be nice create and encapsulate ephysics world
> object in evas.canvas3d.scene object  ( though calling
> ephysics_world_init)
> 
>     Possible decisions: endure initialisation of ephysics functions
> beyond evas module (implementation new module like engines in
> evas.modules) or implementation separate wrapper that can take
> evas.canvas3d object and operate with ephysics functions.
> 
> 
> Second is differences in calculation (rotation, position etc)
> 
> 2.  Calculations at current ephysics module base on
> pixels(Evas.Coord, int), but in evas.canvas3d we use Evas.Real,
> double. Also a some functionality useless for evas.canvas3d like
> operation with evas.stack, evas.map and so on.
> 
> Possible decisions: rewrite need ephysics functions with Evas.Real
> types or implementation new module ephysics 3D. In may opinion last
> one can cover  many possible issues in this development line.

Combining ePhysics and Canvas3D is a good thing to do, things like
games and 3D worlds need physics on the 3D objects.  How that is done
I'm not sure, but some consistency of things like Evas.Coord and
Evas.Real would be good.

In any 3D environment that is bigger than a screen, pixels isn't gonna
be good, so double is best for that.  That would be an API change for
ePhysics though.  Which should be debated by people actually using it.

> And there is not stable working application(often segfault in thread
> see log bellow) after put ephysics data in evas.canvas3d and did
> initialisation function in current evas.modules (gl_generic)
> 
> Log:
> CProfileManager::Start_Profile(char const*) ()
> in /usr/local/lib/libLinearMath.so.2.82
> btSoftRigidDynamicsWorld::solveSoftBodiesConstraints(float) ()
> in /usr/local/lib/libBulletSoftBody.so.2.82
> btSoftRigidDynamicsWorld::internalSingleStepSimulation(float) ()
> in /usr/local/lib/libBulletSoftBody.so.2.82
> btDiscreteDynamicsWorld::stepSimulation(float, int, float) ()
> in /usr/local/lib/libBulletDynamics.so.2.82 _th_simulate
> (data=0x1647d80, th=0x164b780)
> in 
> /home/shcherbina/Documents/gitpush/3D/develop/evas3d_upstream/src/lib/ephysics/ephysics_world.cpp:634
> _ecore_direct_worker (work=0x164b780)
> in 
> /home/shcherbina/Documents/gitpush/3D/develop/evas3d_upstream/src/lib/ecore/ecore_thread.c:425
> _eina_internal_call (context=0x164b940)
> in 
> /home/shcherbina/Documents/gitpush/3D/develop/evas3d_upstream/src/lib/eina/eina_thread.c:125
> start_thread (arg=0x7fffe4ef2700)
> in /build/eglibc-oGUzwX/eglibc-2.19/nptl/pthread_create.c:312 clone
> ()
> in 
> /build/eglibc-oGUzwX/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111
> 
> I'll be glad to hear everyone's opinion.

The demo of my SledjHamr project included ePhysics objects running on
top of Evas.Canvas3D, and has done for a long time, years if I recall
correctly.  Only recently (last time I updated EFL a week ago or so) was
there any problem, the ePhysics objects no longer move.  Recent changes
might be responsible for both that and your segfault.

-- 
A big old stinking pile of genius that no one wants
coz there are too many silver coated monkeys in the world.

Attachment: signature.asc
Description: PGP signature

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to