On Mon, 18 Jul 2016 09:08:15 +0000 Oleksander Zazubrina
<cf...@outlook.com> wrote:

> Hi everyone.
> 
> I create this topic to clarify necessity implementation this
> feasibility in evas.canvas3d. Main plot:
> - use surface primitive as proxy for elementary button
> - get pick coordinate from user (mouse down)
> - calculate intersection point ray and triangle
> - use predefine radius and calculated point to build bounding sphere
> - use built sphere to got vertexes(more careful point to vertex) of
> target mesh that should be changed
> - use predefine values (functions, offsets, etc) that need to
> recalculate vertexes of mesh
> - recalculate normals
> As a result I think it will possible show deformation in place of
> mouse click
> - after mouse up mesh can be restored from default mesh of surface.
> 
> I am glad to hear every point of view.

Dynamic transformation of meshes will be important for many things.

At the moment we only have frame based animations of meshes.  In my
SledjHamr 3D virtual world project, I have to implement the same
animation of avatars as used by Second Life (SL) and OpenSim (OS),
which use BVH based skeleton animations.  So mesh deformation rather
than frame animation will work better here.

One of the other SledjHamr developers wants to go a step further and
apply BHV style animations to primitives, as well as other interesting
things.  She wrote about that here
http://sledjhamr.org/ClientHamr/BVJ.html

I plan to add some sort of puppeteer animation as well, so it's not all
just fixed animations.

There are flexible prims and wavy cloth in SL / OS.  Both deform
meshes in response to wind and gravity.  I recall Ephysics has a
demonstration of wavy widgets.

Then there are things like procedural meshes.  I'm thinking water that
splashes and things like that.  Also a great idea I intend to add.
Clouds in SL / OS are based on procedural meshes that move, grow, and
shrink in cloud like ways.  This isn't simply deformations though.
This involves creating meshes on the fly, sometimes very quickly.

SL and OS include real time in world editing of primitives and avatars,
and I intend to add in world editing of meshes as well.  Both need to
deform and edit meshes in real time.

SL / OS also offer real time editing of terrains, which is what I'm
using surfaces for.  The method used to pass points to surfaces is
horribly slow, passing each individual point via a function call that
can't be made inline.  Better off passing in an array, then loop through
it.  Avoids a function call with five arguments per each point.  SL /
OS uses height maps based on RAW image files.  I intend to implement
things like "feed a video instead of a fixed image, to the terrain
system, to generate an earthquake" type stuff.

SL / OS also has what they call "sculpties", where the three colour
channels of an image file are used to supply the x, y, and z
coordinates of each point.  A friend of mine scripted sculpties to
create animated meshes by changing the image used for the points.

Deformed meshes means the mesh changes shape, and it's bounding box
might change as a result.  Procedural meshes will need to generate
their bounding box.  Currently in Evas.Canvas3D, if I generate my own
mesh, I have to copy some code out of EFL so that I can calculate the
bounding box.  We should expose that better.

So making deformable meshes as fast and flexible as possible would be
great.  Including recalculating the bounding box.

On the other hand, the sort of temporary deformation you mention, in
response to button clicks, that's a bit of a gimmick really.  Like
bouncy windows, and other UI animations.  EFL is all about that sort of
thing, usually driven by Edje.  So that idea fits in well with the rest
of EFL.  I'm all for that, but might not use it myself.  All the other
uses of deformable meshes are way more important to me.

-- 
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