Jump to content

BJS 1.13: New features and demos - Lines and dragdrop


Recommended Posts

You have the PG demo --> tutorial pattern well-figged, Dad72.  But we might want to ask DK (or ANY other contributors) to add more features to it, first.  If we let the demo 'mature' a bit, then we don't need to adjust the new tutorial so often (when features get added). 


And one might ask one's self... "Is it a drag and drop demo, or a 'basic pointer events' demo?"  I think it is a pointer events demo, used to implement a drag and drop system.


Ok, how about SHIFTED drag and drop, which moves the shape up/down on the Y axis?  And how about CONTROL drag and drop, which rotates the object?  How do we determine which axis to rotate around?  Oh no!  :)


Although DK's drag and drop demo does not use the ActionManager or any bucky keys, I think we may see a day when our ActionManager must 'honor the buckies'.


Info:  'Buckies' is a rare term which originated at Stanford University. It is an easy way to refer to control, shift, and alt/meta keys.  A 'single bucky' keypress would be control-s, a 'double bucky' keypress would be control-alt-s or maybe shift-control-s, and a 'triple bucky' is mostly unheard-of these days, but DID once exist.  Control-leftclicks or shift-leftclicks might be called 'bucky clicks' or 'bucky picks', and control/shift drags might be called 'bucky drags'.  You certainly don't NEED to use these terms, but you CAN, of course, especially if you want to revive an old tradition.  :)


Pointer events are fine, but they don't address the full power of the mouse, joystick, and gamepad... which are each important controllers for games, be they webGL or otherwise.  As ugly as this thought is, I think BJS will, someday, need to TRY to honor the full w3c event model - http://www.w3.org/TR/2012/WD-DOM-Level-3-Events-20120906.


I know it hurts, but this IS a game system... and so, I won't be the last person to raise these issues.  If the ActionManager has 40 triggers in the future, then I guess that's just the way it has to be, unless someone has some better ideas.


Meantime, DK's drag and drop (basic pointer events) demo is working nice! Great job, koshy by goshy!  ;)


It might need a tutorial or wiki, but it is not very complicated, as you can see by his code.  IF (D)elta(k)osh (or other contributors) can be talked-into adding control-drag and shift-drag for Y-position and Y-rotation, then the demo will become more complex, and a complementary tutorial will certainly be warranted.  (Just my lame opinion.)  :)

Link to comment
Share on other sites

All you coding experts will have to excuse my ignorance on the playground improvements, but what exactly is being "dragged and dropped" javascripts/html with scripts into the left window or .babylon files into the right window? Or something completely different?


If it is javascripts - what is the benefit over "copy/paste" ?


cheers, gryff :)

Link to comment
Share on other sites

'Buckies' is a rare term which originated at Stanford University.


A blender user would be quite at home multiple keys eg: with the camera selected, Ctrl+Alt+0 - sets the camera view to the current view.


cheers, gryff :)

Link to comment
Share on other sites

Yeah, that's a double bucky alright.  :)  I bet Dad72 and his CastorEngine can use all the bucky power he can get.  Much of his editor is in HTML, though, and there, full bucky power is available, especially with the help of jQuery. 


Using buckies when the focus is on the canvas... that's a whole new ballgame. 


Events.  erf.  I'm not very good at working with them OR talking about them.  As best I can tell, 'gesture events' are built atop 'pointer events' which are built atop 'events'.  Gesture and pointer events are mostly targeted toward mobile devices (touch stuff). 


If you look at the spaceship (or any other) demo on the BJS main website, and open its camera control panel... you'll see touch camera, device orientation camera, gamepad camera, virtual joysticks camera, and anaglyph camera... all the latest greatest, but not freeCamera or arcRotate.  This is because Deltakosh and Davrous are Microsoft employees, and Microsoft is doing a huge 'mobile device market' push, and the two David's are spreading Microsoft disease throughout Babylon.js and they hate us desktop users.


hehe.  Okay, maybe its not all that bad.  But mobile device mania is infiltrating BJS... and really, the only GOOD mobile device user... is a DEAD mobile device user.  :D


Okay, maybe that's a bit harsh, too.  But we need maximum vigilance in reminding the two David's that this is NOT Microsoft, and that Microsoft is an evil corporation with aspirations of world dominance, and that the coolest webGL games are DESKTOP/LAPTOP webGL games.  :)  And those mobile Oculus Rift and similar headgear-wearing yuppies... they will all get hit by buses and beer trucks, eventually.  hehe.


That drag and drop demo... drags mesh... in the scene... along X and Z only, so far.  The playground doesn't do .babylon files, nor will it retrieve off-site materials/textures.  CORS cross-domain security considerations or something like that.  Darn.


No, the playground is more a place for testing simple non-.babylon file things.  JC's work on outputing Blender scenes into non-.babylon files... might pay-off for the playground someday, though.  Still, though, unless the Blender models are simple, the editor will be packed tight with miles and miles of vertexData defining the Blender models.  They certainly won't be simple createScene functions.


I have railroaded this thread off-topic again, haven't I/we?


How about that http://www.babylonjs.com/?LINES demo, eh?  (back on topic)


Party on!

Link to comment
Share on other sites

Yeah this line mesh will be usefull at some point !


Just looked at the drag'n'drop demo, these scene.pointerX and scene.pointerY instructions has been implemented in BJS long time ago or they're very new ? It's the first time I notice them...

Link to comment
Share on other sites

But mobile device mania is infiltrating BJS...


Hmm Wingnut that's a bit exaggerated... Look at the 16th playground example, a demo with a video texture is clearly desktop oriented, try to launch this on your mobile phone and you'll be a bit disapointed.


Furthermore, DK doesn't have any android device to test BJS functionalities... quite difficult to target mobile market without the abilty to test on the most widespread plateform... ^_^

Link to comment
Share on other sites

One area where line mesh might be useful is hair. 


I bet you won't get a good result drawing hair with lines of this kind. These Mesh.CreateLine seems not to be lit, and without specular or shadows no hair at all, only a big uniform area...

Hair is something really difficult to draw in 3D, these lines would be good enough to check hair movement in physic simulation (not drawing all of them of course), but without a proper shader you won't be able to obtain a convincing final result.

Link to comment
Share on other sites

VP... nod.  I agree.  I was just having some fun with the two David's... giving them a little razzing for working at Microsoft.  Of course it was far exaggerated.  That seemed to be the only way to make it funny... which is what I was after.  But my comedy writers aren't the best.  :)

Link to comment
Share on other sites

Great idea a KeyPressed trigger.


And, maybe you could add in the wiki these answers you post in the fire simulate events topic :

(wiggy, a little update ?)


you can just call actionManager.processTrigger(trigger)




1.You can call it like this for instance: pickResult.pickedMesh.actionManager.processTrigger(BABYLON.ActionManager.OnPickTrigger, ActionEvent.CreateNew(pickResult.pickedMesh));


2. AN individual ACtion can be called like this: action.execute()

Link to comment
Share on other sites

'wiggy'?  Are you talking to ME?  (Wingy).  :)


I think ANYONE can edit the tutorials... once you are a member of github.  Yes, that includes you, vp!  heh


But, boy, the ActionManager wiki is a powerful tutorial, and I'm scared to do any major edits in that golden orb.  Maybe Deltakosh will add that stuff.


A bit off-topic... Deltakosh and I have done a little talking about what belongs in a basic tutorial... and what belongs in an advanced tutorial, and about basic things being separated from 'optional' things.  Are fake triggers and forced action executes... advanced/optional things?  Should we tell about those things in the ActionManager tutorial (making it longer and more intimidating for youngsters)... or should we let users discover advanced/optional things... via the API docs?  *shrug*


Generally, I work with very basic tutorials, and often I feel I am not qualified to talk about even the simple things.  I am naturally talkative, and that can be trouble for 'basic' tutorials.  I like to tell new users about all the nice tools, but I can scare new users by telling too much.  This is something I struggle with.  Also, if we teach many things, then we have to do lots of tutorial updates when those many things... change.  That is lots of work.


So, I 'lean on' the API docs often... telling users in the Playpen Series tutorials... to "go there for more information". But in the same breath, the docs don't tell what the functions and properties DO, or when to use them... so that also leaves new users with questions.  A forum search for certain keywords, or even a web search, can be useful... helping users find others who have the same questions as they do.  This is why I talk a lot... on the forum.  This is why The Wingnut Chronicles is long and packed with demos and zips.  Its over 12000 reads, so it must be doing SOMETHING for SOMEONE.


This is why I encourage all experimenters... to talk about their discoveries and projects.  That way the web and forum search engines can find those topics.  (We are building a 'knowledge base'.)  I don't know what the right approach is,  but I do know that I am talkative, and for a Playpen Series tutorial editor, that can be trouble with a capital 'T'.  :)  Comments welcome.


All of this should go into the Tutorial Talk thread.  I have railroaded SO MANY threads off-topic in this forum.  How?  By being talkative. Oh goody.  And being talkative... also shows everyone how truly un-educated I am.  Oh goody 2.0.  But also, many have taught me things... lots of things... corrected my misconceptions, and I am glad for that. I am proud to be among all of you, and this excellent team effort.


Now, back on subject... keypresses?  Interesting.  Including control-picks, alt-picks, and shift-picks, on all three mouse buttons?  Wow!  That would be something.  The ActionManager is going to have a 90 meter long tutorial, soon.  :)  I think we are going to need an extra clickable button... next to each item in the Scene Selector pulldown for the playground.  For example, click the little button next to Actions (in the scene selector pulldown), and it loads the scene selector pulldown with a list of 20 ActionManager playground demos.  Maybe that's for later.


Oh, that's right.  This topic is not about the ActionManager... it is about the drag'n'drop demo and the lines demo.  See how I am?  Pathetic. heh


By the way, does anyone want to easily download the same "big 3 files" that the playground uses?  They are kept pretty fresh, thanks to DK.


hand.js        <= right-click... save link/target

babylon.js   <= right-click... save link/target

cannon.js    <= right-click... save link/target


Grab those files for home, and make us a universal grid() function with the new lines system.  Then paste your createScene() function (containing your new grid() function) into the playground, and save it.  We have always needed two new basic shapes in BJS... grid and arrow.  C'mon team... lets get them done, contributed, and installed in 1.13, eh?  Yay team!  ;)  (Actually, I do not know if the BJS used by the playground, is new enough to contain the new LINES system, but maybe.)  What's that?  You need documentation for the new LINES system before you can use it?  Well pfft.  Party on!

Link to comment
Share on other sites

I've just tried to change the material of the lines (just the color, of course, because applying a texture wouldn't make sense), but this is not working.

var lines = BABYLON.Mesh.CreateLines("lines", [    new BABYLON.Vector3(-10, 0, 0),        new BABYLON.Vector3(10, 0, 0),        new BABYLON.Vector3(0, 0, -10),        new BABYLON.Vector3(0, 0, 10)], scene);var matos = new BABYLON.StandardMaterial("test_material", scene);matos.diffuseColor = new BABYLON.Color3(1, 0, 0);matos.specularColor = new BABYLON.Color3(0, 1, 0);lines.material = matos;

Can we change lines color ?

Link to comment
Share on other sites

Ah ah ah !!!

Did someone notice that it took only 2 minutes to Deltakosh to debug the problem at the beginning of this topic !?! (and consider the time needed to switch from the browser to the dev environnement, debug feature, then test it on Chrome, then go back to the forum to post "Fixed") :lol:


Man! Man oh man! This guy is not real ! :D


Crap it works on IE :) I didn't test on Chrome




Link to comment
Share on other sites

Oh yeah, deltakosh is just amazing.  Friggin' genius, nice guy, accommodating, patient... too cool.  Once, I saw him add a feature to the playground... while I was still typing the request for the feature.  I think maybe he's psychic.  He's helped me get down the trail SO MANY times... it's just ridiculous.  And answer the same questions in the forum, over and over, and never get grumpy about it.


Yeah, he's my hero.  He's lots of people's hero.  I'm proud and honored to get to e-hang around with him.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...